If the @arg type is %G_OPTION_ARG_CALLBACK, then @arg_data
must point to a #GOptionArgFunc callback function, which will be
called to handle the extra argument. Otherwise, @arg_data is a
pointer to a location to store the value, the required type of
the location depends on the @arg type:
- %G_OPTION_ARG_NONE: %gboolean
- %G_OPTION_ARG_STRING: %gchar*
- %G_OPTION_ARG_INT: %gint
- %G_OPTION_ARG_FILENAME: %gchar*
- %G_OPTION_ARG_STRING_ARRAY: %gchar**
- %G_OPTION_ARG_FILENAME_ARRAY: %gchar**
- %G_OPTION_ARG_DOUBLE: %gdouble
If @arg type is %G_OPTION_ARG_STRING or %G_OPTION_ARG_FILENAME,
the location will contain a newly allocated string if the option
was given. That string needs to be freed by the callee using g_free().
Likewise if @arg type is %G_OPTION_ARG_STRING_ARRAY or
%G_OPTION_ARG_FILENAME_ARRAY, the data should be freed using g_strfreev().
If the @arg type is %G_OPTION_ARG_CALLBACK, then @arg_data must point to a #GOptionArgFunc callback function, which will be called to handle the extra argument. Otherwise, @arg_data is a pointer to a location to store the value, the required type of the location depends on the @arg type: - %G_OPTION_ARG_NONE: %gboolean - %G_OPTION_ARG_STRING: %gchar* - %G_OPTION_ARG_INT: %gint - %G_OPTION_ARG_FILENAME: %gchar* - %G_OPTION_ARG_STRING_ARRAY: %gchar** - %G_OPTION_ARG_FILENAME_ARRAY: %gchar** - %G_OPTION_ARG_DOUBLE: %gdouble If @arg type is %G_OPTION_ARG_STRING or %G_OPTION_ARG_FILENAME, the location will contain a newly allocated string if the option was given. That string needs to be freed by the callee using g_free(). Likewise if @arg type is %G_OPTION_ARG_STRING_ARRAY or %G_OPTION_ARG_FILENAME_ARRAY, the data should be freed using g_strfreev().