goption: try to be helpful in goption args/flag checks

When complaining about ill defined GOptionEntries include the name of the option
group and entry in the warning.
This commit is contained in:
Stefan Sauer
2012-02-26 21:20:24 +01:00
parent e4738839ed
commit 2161bf254f

View File

@@ -2178,14 +2178,16 @@ g_option_group_add_entries (GOptionGroup *group,
if (c == '-' || (c != 0 && !g_ascii_isprint (c))) if (c == '-' || (c != 0 && !g_ascii_isprint (c)))
{ {
g_warning (G_STRLOC ": ignoring invalid short option '%c' (%d)", c, c); g_warning (G_STRLOC ": ignoring invalid short option '%c' (%d) in entry %s:%s",
group->entries[i].short_name = 0; c, c, group->name, group->entries[i].long_name);
group->entries[i].short_name = '\0';
} }
if (group->entries[i].arg != G_OPTION_ARG_NONE && if (group->entries[i].arg != G_OPTION_ARG_NONE &&
(group->entries[i].flags & G_OPTION_FLAG_REVERSE) != 0) (group->entries[i].flags & G_OPTION_FLAG_REVERSE) != 0)
{ {
g_warning (G_STRLOC ": ignoring reverse flag on option of type %d", group->entries[i].arg); g_warning (G_STRLOC ": ignoring reverse flag on option of arg-type %d in entry %s:%s",
group->entries[i].arg, group->name, group->entries[i].long_name);
group->entries[i].flags &= ~G_OPTION_FLAG_REVERSE; group->entries[i].flags &= ~G_OPTION_FLAG_REVERSE;
} }
@@ -2193,7 +2195,8 @@ g_option_group_add_entries (GOptionGroup *group,
if (group->entries[i].arg != G_OPTION_ARG_CALLBACK && if (group->entries[i].arg != G_OPTION_ARG_CALLBACK &&
(group->entries[i].flags & (G_OPTION_FLAG_NO_ARG|G_OPTION_FLAG_OPTIONAL_ARG|G_OPTION_FLAG_FILENAME)) != 0) (group->entries[i].flags & (G_OPTION_FLAG_NO_ARG|G_OPTION_FLAG_OPTIONAL_ARG|G_OPTION_FLAG_FILENAME)) != 0)
{ {
g_warning (G_STRLOC ": ignoring no-arg, optional-arg or filename flags (%d) on option of type %d", group->entries[i].flags, group->entries[i].arg); g_warning (G_STRLOC ": ignoring no-arg, optional-arg or filename flags (%d) on option of arg-type %d in entry %s:%s",
group->entries[i].flags, group->entries[i].arg, group->name, group->entries[i].long_name);
group->entries[i].flags &= ~(G_OPTION_FLAG_NO_ARG|G_OPTION_FLAG_OPTIONAL_ARG|G_OPTION_FLAG_FILENAME); group->entries[i].flags &= ~(G_OPTION_FLAG_NO_ARG|G_OPTION_FLAG_OPTIONAL_ARG|G_OPTION_FLAG_FILENAME);
} }