+2004-09-01 Anders Carlsson <andersca@gnome.org>
+
+ * glib/goption.c: (g_option_context_free), (print_help),
+ (g_option_context_parse):
+ Handle option contexts without a main group.
+
+ * tests/option-test.c: (empty_test2), (main):
+ Add test case for that.
+
2004-08-30 Anders Carlsson <andersca@gnome.org>
* glib/goption.c: (g_option_context_parse):
+2004-09-01 Anders Carlsson <andersca@gnome.org>
+
+ * glib/goption.c: (g_option_context_free), (print_help),
+ (g_option_context_parse):
+ Handle option contexts without a main group.
+
+ * tests/option-test.c: (empty_test2), (main):
+ Add test case for that.
+
2004-08-30 Anders Carlsson <andersca@gnome.org>
* glib/goption.c: (g_option_context_parse):
+2004-09-01 Anders Carlsson <andersca@gnome.org>
+
+ * glib/goption.c: (g_option_context_free), (print_help),
+ (g_option_context_parse):
+ Handle option contexts without a main group.
+
+ * tests/option-test.c: (empty_test2), (main):
+ Add test case for that.
+
2004-08-30 Anders Carlsson <andersca@gnome.org>
* glib/goption.c: (g_option_context_parse):
+2004-09-01 Anders Carlsson <andersca@gnome.org>
+
+ * glib/goption.c: (g_option_context_free), (print_help),
+ (g_option_context_parse):
+ Handle option contexts without a main group.
+
+ * tests/option-test.c: (empty_test2), (main):
+ Add test case for that.
+
2004-08-30 Anders Carlsson <andersca@gnome.org>
* glib/goption.c: (g_option_context_parse):
+2004-09-01 Anders Carlsson <andersca@gnome.org>
+
+ * glib/goption.c: (g_option_context_free), (print_help),
+ (g_option_context_parse):
+ Handle option contexts without a main group.
+
+ * tests/option-test.c: (empty_test2), (main):
+ Add test case for that.
+
2004-08-30 Anders Carlsson <andersca@gnome.org>
* glib/goption.c: (g_option_context_parse):
g_list_foreach (context->groups, (GFunc)g_option_group_free, NULL);
g_list_free (context->groups);
- g_option_group_free (context->main_group);
+ if (context->main_group)
+ g_option_group_free (context->main_group);
free_changes_list (context, FALSE);
free_pending_nulls (context, FALSE);
g_print ("%s\n", _("Application Options:"));
- for (i = 0; i < context->main_group->n_entries; i++)
- print_entry (context->main_group, max_length, &context->main_group->entries[i]);
+ if (context->main_group)
+ for (i = 0; i < context->main_group->n_entries; i++)
+ print_entry (context->main_group, max_length, &context->main_group->entries[i]);
while (list != NULL)
{
list = list->next;
}
- if (context->main_group->pre_parse_func)
+ if (context->main_group && context->main_group->pre_parse_func)
{
if (!(* context->main_group->pre_parse_func) (context, context->main_group,
context->main_group->user_data, error))
}
}
- if (!parse_long_option (context, context->main_group, &i, arg,
+ if (context->main_group &&
+ !parse_long_option (context, context->main_group, &i, arg,
argc, argv, error, &parsed))
goto fail;
{
parsed = FALSE;
- if (!parse_short_option (context, context->main_group,
+ if (context->main_group &&
+ !parse_short_option (context, context->main_group,
i, &new_i, arg[j],
argc, argv, error, &parsed))
{
list = list->next;
}
- if (context->main_group->post_parse_func)
+ if (context->main_group && context->main_group->post_parse_func)
{
if (!(* context->main_group->post_parse_func) (context, context->main_group,
context->main_group->user_data, error))
list = list->next;
}
- if (context->main_group->error_func)
+ if (context->main_group && context->main_group->error_func)
(* context->main_group->error_func) (context, context->main_group,
context->main_group->user_data, error);
g_option_context_free (context);
}
+void
+empty_test2 (void)
+{
+ GOptionContext *context;
+
+ context = g_option_context_new (NULL);
+ g_option_context_parse (context, NULL, NULL, NULL);
+
+ g_option_context_free (context);
+}
+
int
main (int argc, char **argv)
{
/* Test parsing empty args */
empty_test1 ();
+ empty_test2 ();
return 0;
}