return 0;
}
+
+char **
+do_available_all_groups (void)
+{
+ size_t i;
+ char **groups = NULL;
+ int size = 0, alloc = 0;
+
+ for (i = 0; optgroups[i].group != NULL; ++i) {
+ if (add_string (&groups, &size, &alloc, optgroups[i].group) == -1)
+ return NULL;
+ }
+
+ if (add_string (&groups, &size, &alloc, NULL) == -1)
+ return NULL;
+
+ return groups; /* caller frees */
+}