~ubuntu-branches/ubuntu/trusty/glib2.0/trusty-proposed

« back to all changes in this revision

Viewing changes to docs/reference/glib/xml/option.xml

  • Committer: Bazaar Package Importer
  • Author(s): Sebastien Bacher
  • Date: 2010-03-23 19:25:52 UTC
  • mfrom: (3.4.9 experimental)
  • Revision ID: james.westby@ubuntu.com-20100323192552-istna8c33bw6harh
Tags: 2.23.6-1ubuntu1
* Resync on Debian
* debian/patches/01_gettext-desktopfiles.patch:
  - updated to use gettext for X-GNOME-Fullname too
* debian/patches/71_gio_launch_handler.patch:
  - new gio default launch handle feature required for wncksync
* debian/control.in, 
  debian/patches/80-gtester-subunit.patch:
  - gtester-report subunit support
* debian/libglib2.0-0.symbols:
  - updated the symbols list for the gio launcher handler

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?xml version="1.0"?>
2
 
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
3
 
               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
4
 
<!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
5
 
<!ENTITY version SYSTEM "version.xml">
6
 
]>
7
 
<refentry id="glib-Commandline-option-parser">
8
 
<refmeta>
9
 
<refentrytitle role="top_of_page" id="glib-Commandline-option-parser.top_of_page">Commandline option parser</refentrytitle>
10
 
<manvolnum>3</manvolnum>
11
 
<refmiscinfo>GLIB Library</refmiscinfo>
12
 
</refmeta>
13
 
 
14
 
<refnamediv>
15
 
<refname>Commandline option parser</refname>
16
 
<refpurpose>parses commandline options</refpurpose>
17
 
</refnamediv>
18
 
 
19
 
<refsynopsisdiv id="glib-Commandline-option-parser.synopsis" role="synopsis">
20
 
<title role="synopsis.title">Synopsis</title>
21
 
 
22
 
<synopsis>
23
 
 
24
 
#include &lt;glib.h&gt;
25
 
 
26
 
enum                <link linkend="GOptionError">GOptionError</link>;
27
 
#define             <link linkend="G-OPTION-ERROR--CAPS">G_OPTION_ERROR</link>
28
 
<link linkend="gboolean">gboolean</link>            (<link linkend="GOptionArgFunc">*GOptionArgFunc</link>)                   (const <link linkend="gchar">gchar</link> *option_name,
29
 
                                                         const <link linkend="gchar">gchar</link> *value,
30
 
                                                         <link linkend="gpointer">gpointer</link> data,
31
 
                                                         <link linkend="GError">GError</link> **error);
32
 
                    <link linkend="GOptionContext">GOptionContext</link>;
33
 
<link linkend="GOptionContext">GOptionContext</link> *    <link linkend="g-option-context-new">g_option_context_new</link>                (const <link linkend="gchar">gchar</link> *parameter_string);
34
 
<link linkend="void">void</link>                <link linkend="g-option-context-set-summary">g_option_context_set_summary</link>        (<link linkend="GOptionContext">GOptionContext</link> *context,
35
 
                                                         const <link linkend="gchar">gchar</link> *summary);
36
 
const <link linkend="gchar">gchar</link> *       <link linkend="g-option-context-get-summary">g_option_context_get_summary</link>        (<link linkend="GOptionContext">GOptionContext</link> *context);
37
 
<link linkend="void">void</link>                <link linkend="g-option-context-set-description">g_option_context_set_description</link>    (<link linkend="GOptionContext">GOptionContext</link> *context,
38
 
                                                         const <link linkend="gchar">gchar</link> *description);
39
 
const <link linkend="gchar">gchar</link> *       <link linkend="g-option-context-get-description">g_option_context_get_description</link>    (<link linkend="GOptionContext">GOptionContext</link> *context);
40
 
const <link linkend="gchar">gchar</link> *       (<link linkend="GTranslateFunc">*GTranslateFunc</link>)                   (const <link linkend="gchar">gchar</link> *str,
41
 
                                                         <link linkend="gpointer">gpointer</link> data);
42
 
<link linkend="void">void</link>                <link linkend="g-option-context-set-translate-func">g_option_context_set_translate_func</link> (<link linkend="GOptionContext">GOptionContext</link> *context,
43
 
                                                         <link linkend="GTranslateFunc">GTranslateFunc</link> func,
44
 
                                                         <link linkend="gpointer">gpointer</link> data,
45
 
                                                         <link linkend="GDestroyNotify">GDestroyNotify</link> destroy_notify);
46
 
<link linkend="void">void</link>                <link linkend="g-option-context-set-translation-domain">g_option_context_set_translation_domain</link>
47
 
                                                        (<link linkend="GOptionContext">GOptionContext</link> *context,
48
 
                                                         const <link linkend="gchar">gchar</link> *domain);
49
 
<link linkend="void">void</link>                <link linkend="g-option-context-free">g_option_context_free</link>               (<link linkend="GOptionContext">GOptionContext</link> *context);
50
 
<link linkend="gboolean">gboolean</link>            <link linkend="g-option-context-parse">g_option_context_parse</link>              (<link linkend="GOptionContext">GOptionContext</link> *context,
51
 
                                                         <link linkend="gint">gint</link> *argc,
52
 
                                                         <link linkend="gchar">gchar</link> ***argv,
53
 
                                                         <link linkend="GError">GError</link> **error);
54
 
<link linkend="void">void</link>                <link linkend="g-option-context-set-help-enabled">g_option_context_set_help_enabled</link>   (<link linkend="GOptionContext">GOptionContext</link> *context,
55
 
                                                         <link linkend="gboolean">gboolean</link> help_enabled);
56
 
<link linkend="gboolean">gboolean</link>            <link linkend="g-option-context-get-help-enabled">g_option_context_get_help_enabled</link>   (<link linkend="GOptionContext">GOptionContext</link> *context);
57
 
<link linkend="void">void</link>                <link linkend="g-option-context-set-ignore-unknown-options">g_option_context_set_ignore_unknown_options</link>
58
 
                                                        (<link linkend="GOptionContext">GOptionContext</link> *context,
59
 
                                                         <link linkend="gboolean">gboolean</link> ignore_unknown);
60
 
<link linkend="gboolean">gboolean</link>            <link linkend="g-option-context-get-ignore-unknown-options">g_option_context_get_ignore_unknown_options</link>
61
 
                                                        (<link linkend="GOptionContext">GOptionContext</link> *context);
62
 
<link linkend="gchar">gchar</link> *             <link linkend="g-option-context-get-help">g_option_context_get_help</link>           (<link linkend="GOptionContext">GOptionContext</link> *context,
63
 
                                                         <link linkend="gboolean">gboolean</link> main_help,
64
 
                                                         <link linkend="GOptionGroup">GOptionGroup</link> *group);
65
 
enum                <link linkend="GOptionArg">GOptionArg</link>;
66
 
enum                <link linkend="GOptionFlags">GOptionFlags</link>;
67
 
#define             <link linkend="G-OPTION-REMAINING--CAPS">G_OPTION_REMAINING</link>
68
 
                    <link linkend="GOptionEntry">GOptionEntry</link>;
69
 
<link linkend="void">void</link>                <link linkend="g-option-context-add-main-entries">g_option_context_add_main_entries</link>   (<link linkend="GOptionContext">GOptionContext</link> *context,
70
 
                                                         const <link linkend="GOptionEntry">GOptionEntry</link> *entries,
71
 
                                                         const <link linkend="gchar">gchar</link> *translation_domain);
72
 
                    <link linkend="GOptionGroup">GOptionGroup</link>;
73
 
<link linkend="void">void</link>                <link linkend="g-option-context-add-group">g_option_context_add_group</link>          (<link linkend="GOptionContext">GOptionContext</link> *context,
74
 
                                                         <link linkend="GOptionGroup">GOptionGroup</link> *group);
75
 
<link linkend="void">void</link>                <link linkend="g-option-context-set-main-group">g_option_context_set_main_group</link>     (<link linkend="GOptionContext">GOptionContext</link> *context,
76
 
                                                         <link linkend="GOptionGroup">GOptionGroup</link> *group);
77
 
<link linkend="GOptionGroup">GOptionGroup</link> *      <link linkend="g-option-context-get-main-group">g_option_context_get_main_group</link>     (<link linkend="GOptionContext">GOptionContext</link> *context);
78
 
<link linkend="GOptionGroup">GOptionGroup</link> *      <link linkend="g-option-group-new">g_option_group_new</link>                  (const <link linkend="gchar">gchar</link> *name,
79
 
                                                         const <link linkend="gchar">gchar</link> *description,
80
 
                                                         const <link linkend="gchar">gchar</link> *help_description,
81
 
                                                         <link linkend="gpointer">gpointer</link> user_data,
82
 
                                                         <link linkend="GDestroyNotify">GDestroyNotify</link> destroy);
83
 
<link linkend="void">void</link>                <link linkend="g-option-group-free">g_option_group_free</link>                 (<link linkend="GOptionGroup">GOptionGroup</link> *group);
84
 
<link linkend="void">void</link>                <link linkend="g-option-group-add-entries">g_option_group_add_entries</link>          (<link linkend="GOptionGroup">GOptionGroup</link> *group,
85
 
                                                         const <link linkend="GOptionEntry">GOptionEntry</link> *entries);
86
 
<link linkend="gboolean">gboolean</link>            (<link linkend="GOptionParseFunc">*GOptionParseFunc</link>)                 (<link linkend="GOptionContext">GOptionContext</link> *context,
87
 
                                                         <link linkend="GOptionGroup">GOptionGroup</link> *group,
88
 
                                                         <link linkend="gpointer">gpointer</link> data,
89
 
                                                         <link linkend="GError">GError</link> **error);
90
 
<link linkend="void">void</link>                <link linkend="g-option-group-set-parse-hooks">g_option_group_set_parse_hooks</link>      (<link linkend="GOptionGroup">GOptionGroup</link> *group,
91
 
                                                         <link linkend="GOptionParseFunc">GOptionParseFunc</link> pre_parse_func,
92
 
                                                         <link linkend="GOptionParseFunc">GOptionParseFunc</link> post_parse_func);
93
 
<link linkend="void">void</link>                (<link linkend="GOptionErrorFunc">*GOptionErrorFunc</link>)                 (<link linkend="GOptionContext">GOptionContext</link> *context,
94
 
                                                         <link linkend="GOptionGroup">GOptionGroup</link> *group,
95
 
                                                         <link linkend="gpointer">gpointer</link> data,
96
 
                                                         <link linkend="GError">GError</link> **error);
97
 
<link linkend="void">void</link>                <link linkend="g-option-group-set-error-hook">g_option_group_set_error_hook</link>       (<link linkend="GOptionGroup">GOptionGroup</link> *group,
98
 
                                                         <link linkend="GOptionErrorFunc">GOptionErrorFunc</link> error_func);
99
 
<link linkend="void">void</link>                <link linkend="g-option-group-set-translate-func">g_option_group_set_translate_func</link>   (<link linkend="GOptionGroup">GOptionGroup</link> *group,
100
 
                                                         <link linkend="GTranslateFunc">GTranslateFunc</link> func,
101
 
                                                         <link linkend="gpointer">gpointer</link> data,
102
 
                                                         <link linkend="GDestroyNotify">GDestroyNotify</link> destroy_notify);
103
 
<link linkend="void">void</link>                <link linkend="g-option-group-set-translation-domain">g_option_group_set_translation_domain</link>
104
 
                                                        (<link linkend="GOptionGroup">GOptionGroup</link> *group,
105
 
                                                         const <link linkend="gchar">gchar</link> *domain);
106
 
</synopsis>
107
 
</refsynopsisdiv>
108
 
 
109
 
 
110
 
 
111
 
 
112
 
 
113
 
 
114
 
 
115
 
 
116
 
 
117
 
<refsect1 id="glib-Commandline-option-parser.description" role="desc">
118
 
<title role="desc.title">Description</title>
119
 
<para>
120
 
The GOption commandline parser is intended to be a simpler replacement for the
121
 
popt library. It supports short and long commandline options, as shown in the 
122
 
following example:
123
 
</para>
124
 
<para>
125
 
<literal>testtreemodel -r 1 --max-size 20 --rand --display=:1.0 -vb -- file1 file2</literal>
126
 
</para>
127
 
<para>
128
 
The example demonstrates a number of features of the GOption commandline parser
129
 
<itemizedlist><listitem><para>
130
 
  Options can be single letters, prefixed by a single dash. Multiple
131
 
  short options can be grouped behind a single dash.
132
 
</para></listitem><listitem><para>
133
 
  Long options are prefixed by two consecutive dashes.
134
 
</para></listitem><listitem><para>
135
 
  Options can have an extra argument, which can be a number, a string or a 
136
 
  filename. For long options, the extra argument can be appended with an 
137
 
  equals sign after the option name.
138
 
</para></listitem><listitem><para>
139
 
  Non-option arguments are returned to the application as rest arguments.
140
 
</para></listitem><listitem><para>
141
 
  An argument consisting solely of two dashes turns off further parsing, 
142
 
  any remaining arguments (even those starting with a dash) are returned 
143
 
  to the application as rest arguments.
144
 
</para></listitem></itemizedlist>
145
 
</para>
146
 
<para>
147
 
Another important feature of GOption is that it can automatically generate 
148
 
nicely formatted help output. Unless it is explicitly turned off with 
149
 
<link linkend="g-option-context-set-help-enabled"><function>g_option_context_set_help_enabled()</function></link>, GOption will recognize the 
150
 
<option>--help</option>, <option>-?</option>, <option>--help-all</option>
151
 
and <option>--help-</option><replaceable>groupname</replaceable> options 
152
 
(where <replaceable>groupname</replaceable> is the name of a <link linkend="GOptionGroup"><type>GOptionGroup</type></link>) 
153
 
and write a text similar to the one shown in the following example to stdout.
154
 
</para>
155
 
<para>
156
 
<informalexample><screen>
157
 
Usage:
158
 
  testtreemodel [OPTION...] - test tree model performance
159
 
 
160
 
Help Options:
161
 
  -h, --help               Show help options
162
 
  --help-all               Show all help options
163
 
  --help-gtk               Show GTK+ Options
164
 
 
165
 
Application Options:
166
 
  -r, --repeats=N          Average over N repetitions
167
 
  -m, --max-size=M         Test up to 2^M items
168
 
  --display=DISPLAY        X display to use
169
 
  -v, --verbose            Be verbose
170
 
  -b, --beep               Beep when done   
171
 
  --rand                   Randomize the data
172
 
</screen></informalexample>
173
 
</para>
174
 
<para>
175
 
GOption groups options in <link linkend="GOptionGroup"><type>GOptionGroup</type></link><!-- -->s, which makes it easy to
176
 
incorporate options from multiple sources. The intended use for this is
177
 
to let applications collect option groups from the libraries it uses,
178
 
add them to their <link linkend="GOptionContext"><type>GOptionContext</type></link>, and parse all options by a single call
179
 
to <link linkend="g-option-context-parse"><function>g_option_context_parse()</function></link>. See <link linkend="gtk-get-option-group"><function>gtk_get_option_group()</function></link> for an example.
180
 
</para>
181
 
<para>
182
 
If an option is declared to be of type string or filename, GOption takes
183
 
care of converting it to the right encoding; strings are returned in UTF-8,
184
 
filenames are returned in the GLib filename encoding. Note that this only
185
 
works if <link linkend="setlocale"><function>setlocale()</function></link> has been called before <link linkend="g-option-context-parse"><function>g_option_context_parse()</function></link>.
186
 
</para>
187
 
<para>
188
 
Here is a complete example of setting up GOption to parse the example
189
 
commandline above and produce the example help output.
190
 
</para>
191
 
<para>
192
 
<informalexample><programlisting>
193
 
static gint repeats = 2;
194
 
static gint max_size = 8;
195
 
static gboolean verbose = FALSE;
196
 
static gboolean beep = FALSE;
197
 
static gboolean rand = FALSE;
198
 
 
199
 
static GOptionEntry entries[] = 
200
 
{
201
 
  { "repeats", 'r', 0, G_OPTION_ARG_INT, &amp;repeats, "Average over N repetitions", "N" },
202
 
  { "max-size", 'm', 0, G_OPTION_ARG_INT, &amp;max_size, "Test up to 2^M items", "M" },
203
 
  { "verbose", 'v', 0, G_OPTION_ARG_NONE, &amp;verbose, "Be verbose", NULL },
204
 
  { "beep", 'b', 0, G_OPTION_ARG_NONE, &amp;beep, "Beep when done", NULL },
205
 
  { "rand", 0, 0, G_OPTION_ARG_NONE, &amp;rand, "Randomize the data", NULL },
206
 
  { NULL }
207
 
};
208
 
 
209
 
int 
210
 
main (int argc, char *argv[])
211
 
{
212
 
  GError *error = NULL;
213
 
  GOptionContext *context;
214
 
 
215
 
  context = g_option_context_new ("- test tree model performance");
216
 
  g_option_context_add_main_entries (context, entries, GETTEXT_PACKAGE);
217
 
  g_option_context_add_group (context, gtk_get_option_group (TRUE));
218
 
  if (!g_option_context_parse (context, &amp;argc, &amp;argv, &amp;error))
219
 
    {
220
 
      g_print ("option parsing failed: %s\n", error->message);
221
 
      exit (1);
222
 
    }
223
 
 
224
 
  // ...
225
 
 
226
 
}
227
 
</programlisting></informalexample></para>
228
 
<para>
229
 
</para>
230
 
</refsect1>
231
 
 
232
 
<refsect1 id="glib-Commandline-option-parser.details" role="details">
233
 
<title role="details.title">Details</title>
234
 
<refsect2 id="GOptionError" role="enum">
235
 
<title>enum GOptionError</title>
236
 
<indexterm zone="GOptionError"><primary sortas="OptionError">GOptionError</primary></indexterm><programlisting>typedef enum
237
 
{
238
 
  G_OPTION_ERROR_UNKNOWN_OPTION,
239
 
  G_OPTION_ERROR_BAD_VALUE,
240
 
  G_OPTION_ERROR_FAILED
241
 
} GOptionError;
242
 
</programlisting>
243
 
<para>
244
 
Error codes returned by option parsing.</para>
245
 
<para>
246
 
</para><variablelist role="enum">
247
 
<varlistentry id="G-OPTION-ERROR-UNKNOWN-OPTION--CAPS" role="constant">
248
 
<term><literal>G_OPTION_ERROR_UNKNOWN_OPTION</literal></term>
249
 
<listitem><simpara> An option was not known to the parser.
250
 
 This error will only be reported, if the parser hasn't been instructed
251
 
 to ignore unknown options, see <link linkend="g-option-context-set-ignore-unknown-options"><function>g_option_context_set_ignore_unknown_options()</function></link>.
252
 
</simpara></listitem>
253
 
</varlistentry>
254
 
<varlistentry id="G-OPTION-ERROR-BAD-VALUE--CAPS" role="constant">
255
 
<term><literal>G_OPTION_ERROR_BAD_VALUE</literal></term>
256
 
<listitem><simpara> A value couldn't be parsed.
257
 
</simpara></listitem>
258
 
</varlistentry>
259
 
<varlistentry id="G-OPTION-ERROR-FAILED--CAPS" role="constant">
260
 
<term><literal>G_OPTION_ERROR_FAILED</literal></term>
261
 
<listitem><simpara> A <link linkend="GOptionArgFunc"><type>GOptionArgFunc</type></link> callback failed.
262
 
</simpara></listitem>
263
 
</varlistentry>
264
 
</variablelist></refsect2>
265
 
<refsect2 id="G-OPTION-ERROR--CAPS" role="macro">
266
 
<title>G_OPTION_ERROR</title>
267
 
<indexterm zone="G-OPTION-ERROR--CAPS"><primary sortas="OPTION_ERROR">G_OPTION_ERROR</primary></indexterm><programlisting>#define G_OPTION_ERROR (g_option_error_quark ())
268
 
</programlisting>
269
 
<para>
270
 
Error domain for option parsing. Errors in this domain will
271
 
be from the <link linkend="GOptionError"><type>GOptionError</type></link> enumeration. See <link linkend="GError"><type>GError</type></link> for information on 
272
 
error domains.</para>
273
 
<para>
274
 
</para></refsect2>
275
 
<refsect2 id="GOptionArgFunc" role="function">
276
 
<title>GOptionArgFunc ()</title>
277
 
<indexterm zone="GOptionArgFunc"><primary sortas="OptionArgFunc">GOptionArgFunc</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            (*GOptionArgFunc)                   (const <link linkend="gchar">gchar</link> *option_name,
278
 
                                                         const <link linkend="gchar">gchar</link> *value,
279
 
                                                         <link linkend="gpointer">gpointer</link> data,
280
 
                                                         <link linkend="GError">GError</link> **error);</programlisting>
281
 
<para>
282
 
The type of function to be passed as callback for <link linkend="G-OPTION-ARG-CALLBACK--CAPS"><literal>G_OPTION_ARG_CALLBACK</literal></link>
283
 
options.</para>
284
 
<para>
285
 
</para><variablelist role="params">
286
 
<varlistentry><term><parameter>option_name</parameter>&#160;:</term>
287
 
<listitem><simpara> The name of the option being parsed. This will be either a 
288
 
 single dash followed by a single letter (for a short name) or two dashes
289
 
 followed by a long option name.
290
 
</simpara></listitem></varlistentry>
291
 
<varlistentry><term><parameter>value</parameter>&#160;:</term>
292
 
<listitem><simpara> The value to be parsed.
293
 
</simpara></listitem></varlistentry>
294
 
<varlistentry><term><parameter>data</parameter>&#160;:</term>
295
 
<listitem><simpara> User data added to the <link linkend="GOptionGroup"><type>GOptionGroup</type></link> containing the option when it
296
 
 was created with <link linkend="g-option-group-new"><function>g_option_group_new()</function></link>
297
 
</simpara></listitem></varlistentry>
298
 
<varlistentry><term><parameter>error</parameter>&#160;:</term>
299
 
<listitem><simpara> A return location for errors. The error code <link linkend="G-OPTION-ERROR-FAILED--CAPS"><literal>G_OPTION_ERROR_FAILED</literal></link>
300
 
 is intended to be used for errors in <link linkend="GOptionArgFunc"><type>GOptionArgFunc</type></link> callbacks.
301
 
</simpara></listitem></varlistentry>
302
 
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if the option was successfully parsed, <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> if an error 
303
 
 occurred, in which case <parameter>error</parameter> should be set with <link linkend="g-set-error"><function>g_set_error()</function></link>
304
 
</simpara></listitem></varlistentry>
305
 
</variablelist></refsect2>
306
 
<refsect2 id="GOptionContext" role="struct">
307
 
<title>GOptionContext</title>
308
 
<indexterm zone="GOptionContext"><primary sortas="OptionContext">GOptionContext</primary></indexterm><programlisting>typedef struct _GOptionContext GOptionContext;</programlisting>
309
 
<para>
310
 
A <structname>GOptionContext</structname> struct defines which options
311
 
are accepted by the commandline option parser. The struct has only private 
312
 
fields and should not be directly accessed.</para>
313
 
<para>
314
 
</para></refsect2>
315
 
<refsect2 id="g-option-context-new" role="function" condition="since:2.6">
316
 
<title>g_option_context_new ()</title>
317
 
<indexterm zone="g-option-context-new" role="2.6"><primary sortas="option_context_new">g_option_context_new</primary></indexterm><programlisting><link linkend="GOptionContext">GOptionContext</link> *    g_option_context_new                (const <link linkend="gchar">gchar</link> *parameter_string);</programlisting>
318
 
<para>
319
 
Creates a new option context. 
320
 
</para>
321
 
<para>
322
 
The <parameter>parameter_string</parameter> can serve multiple purposes. It can be used
323
 
to add descriptions for "rest" arguments, which are not parsed by
324
 
the <link linkend="GOptionContext"><type>GOptionContext</type></link>, typically something like "FILES" or
325
 
"FILE1 FILE2...". If you are using <link linkend="G-OPTION-REMAINING--CAPS"><type>G_OPTION_REMAINING</type></link> for
326
 
collecting "rest" arguments, GLib handles this automatically by
327
 
using the <parameter>arg_description</parameter> of the corresponding <link linkend="GOptionEntry"><type>GOptionEntry</type></link> in
328
 
the usage summary.
329
 
</para>
330
 
<para>
331
 
Another usage is to give a short summary of the program
332
 
functionality, like " - frob the strings", which will be displayed
333
 
in the same line as the usage. For a longer description of the
334
 
program functionality that should be displayed as a paragraph
335
 
below the usage line, use <link linkend="g-option-context-set-summary"><function>g_option_context_set_summary()</function></link>.
336
 
</para>
337
 
<para>
338
 
Note that the <parameter>parameter_string</parameter> is translated using the
339
 
function set with <link linkend="g-option-context-set-translate-func"><function>g_option_context_set_translate_func()</function></link>, so
340
 
it should normally be passed untranslated.</para>
341
 
<para>
342
 
</para><variablelist role="params">
343
 
<varlistentry><term><parameter>parameter_string</parameter>&#160;:</term>
344
 
<listitem><simpara> a string which is displayed in
345
 
   the first line of <option>--help</option> output, after the
346
 
   usage summary 
347
 
   <literal><replaceable>programname</replaceable> [OPTION...]</literal>
348
 
</simpara></listitem></varlistentry>
349
 
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a newly created <link linkend="GOptionContext"><type>GOptionContext</type></link>, which must be
350
 
   freed with <link linkend="g-option-context-free"><function>g_option_context_free()</function></link> after use.
351
 
 
352
 
</simpara></listitem></varlistentry>
353
 
</variablelist><para role="since">Since 2.6</para></refsect2>
354
 
<refsect2 id="g-option-context-set-summary" role="function" condition="since:2.12">
355
 
<title>g_option_context_set_summary ()</title>
356
 
<indexterm zone="g-option-context-set-summary" role="2.12"><primary sortas="option_context_set_summary">g_option_context_set_summary</primary></indexterm><programlisting><link linkend="void">void</link>                g_option_context_set_summary        (<link linkend="GOptionContext">GOptionContext</link> *context,
357
 
                                                         const <link linkend="gchar">gchar</link> *summary);</programlisting>
358
 
<para>
359
 
Adds a string to be displayed in <option>--help</option> output
360
 
before the list of options. This is typically a summary of the
361
 
program functionality. 
362
 
</para>
363
 
<para>
364
 
Note that the summary is translated (see 
365
 
<link linkend="g-option-context-set-translate-func"><function>g_option_context_set_translate_func()</function></link> and
366
 
<link linkend="g-option-context-set-translation-domain"><function>g_option_context_set_translation_domain()</function></link>).</para>
367
 
<para>
368
 
</para><variablelist role="params">
369
 
<varlistentry><term><parameter>context</parameter>&#160;:</term>
370
 
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
371
 
</simpara></listitem></varlistentry>
372
 
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
373
 
<listitem><simpara> a string to be shown in <option>--help</option> output 
374
 
 before the list of options, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
375
 
</simpara></listitem></varlistentry>
376
 
</variablelist><para role="since">Since 2.12</para></refsect2>
377
 
<refsect2 id="g-option-context-get-summary" role="function" condition="since:2.12">
378
 
<title>g_option_context_get_summary ()</title>
379
 
<indexterm zone="g-option-context-get-summary" role="2.12"><primary sortas="option_context_get_summary">g_option_context_get_summary</primary></indexterm><programlisting>const <link linkend="gchar">gchar</link> *       g_option_context_get_summary        (<link linkend="GOptionContext">GOptionContext</link> *context);</programlisting>
380
 
<para>
381
 
Returns the summary. See <link linkend="g-option-context-set-summary"><function>g_option_context_set_summary()</function></link>.</para>
382
 
<para>
383
 
</para><variablelist role="params">
384
 
<varlistentry><term><parameter>context</parameter>&#160;:</term>
385
 
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
386
 
</simpara></listitem></varlistentry>
387
 
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the summary
388
 
 
389
 
</simpara></listitem></varlistentry>
390
 
</variablelist><para role="since">Since 2.12</para></refsect2>
391
 
<refsect2 id="g-option-context-set-description" role="function" condition="since:2.12">
392
 
<title>g_option_context_set_description ()</title>
393
 
<indexterm zone="g-option-context-set-description" role="2.12"><primary sortas="option_context_set_description">g_option_context_set_description</primary></indexterm><programlisting><link linkend="void">void</link>                g_option_context_set_description    (<link linkend="GOptionContext">GOptionContext</link> *context,
394
 
                                                         const <link linkend="gchar">gchar</link> *description);</programlisting>
395
 
<para>
396
 
Adds a string to be displayed in <option>--help</option> output
397
 
after the list of options. This text often includes a bug reporting
398
 
address.
399
 
</para>
400
 
<para>
401
 
Note that the summary is translated (see 
402
 
<link linkend="g-option-context-set-translate-func"><function>g_option_context_set_translate_func()</function></link>).</para>
403
 
<para>
404
 
</para><variablelist role="params">
405
 
<varlistentry><term><parameter>context</parameter>&#160;:</term>
406
 
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
407
 
</simpara></listitem></varlistentry>
408
 
<varlistentry><term><parameter>description</parameter>&#160;:</term>
409
 
<listitem><simpara> a string to be shown in <option>--help</option> output 
410
 
  after the list of options, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
411
 
</simpara></listitem></varlistentry>
412
 
</variablelist><para role="since">Since 2.12</para></refsect2>
413
 
<refsect2 id="g-option-context-get-description" role="function" condition="since:2.12">
414
 
<title>g_option_context_get_description ()</title>
415
 
<indexterm zone="g-option-context-get-description" role="2.12"><primary sortas="option_context_get_description">g_option_context_get_description</primary></indexterm><programlisting>const <link linkend="gchar">gchar</link> *       g_option_context_get_description    (<link linkend="GOptionContext">GOptionContext</link> *context);</programlisting>
416
 
<para>
417
 
Returns the description. See <link linkend="g-option-context-set-description"><function>g_option_context_set_description()</function></link>.</para>
418
 
<para>
419
 
</para><variablelist role="params">
420
 
<varlistentry><term><parameter>context</parameter>&#160;:</term>
421
 
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
422
 
</simpara></listitem></varlistentry>
423
 
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the description
424
 
 
425
 
</simpara></listitem></varlistentry>
426
 
</variablelist><para role="since">Since 2.12</para></refsect2>
427
 
<refsect2 id="GTranslateFunc" role="function">
428
 
<title>GTranslateFunc ()</title>
429
 
<indexterm zone="GTranslateFunc"><primary sortas="TranslateFunc">GTranslateFunc</primary></indexterm><programlisting>const <link linkend="gchar">gchar</link> *       (*GTranslateFunc)                   (const <link linkend="gchar">gchar</link> *str,
430
 
                                                         <link linkend="gpointer">gpointer</link> data);</programlisting>
431
 
<para>
432
 
The type of functions which are used to translate user-visible
433
 
strings, for <option>--help</option> output.</para>
434
 
<para>
435
 
</para><variablelist role="params">
436
 
<varlistentry><term><parameter>str</parameter>&#160;:</term>
437
 
<listitem><simpara> the untranslated string
438
 
</simpara></listitem></varlistentry>
439
 
<varlistentry><term><parameter>data</parameter>&#160;:</term>
440
 
<listitem><simpara> user data specified when installing the function, e.g.
441
 
 in <link linkend="g-option-group-set-translate-func"><function>g_option_group_set_translate_func()</function></link>
442
 
</simpara></listitem></varlistentry>
443
 
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a translation of the string for the current locale.
444
 
 The returned string is owned by GLib and must not be freed.
445
 
</simpara></listitem></varlistentry>
446
 
</variablelist></refsect2>
447
 
<refsect2 id="g-option-context-set-translate-func" role="function" condition="since:2.12">
448
 
<title>g_option_context_set_translate_func ()</title>
449
 
<indexterm zone="g-option-context-set-translate-func" role="2.12"><primary sortas="option_context_set_translate_func">g_option_context_set_translate_func</primary></indexterm><programlisting><link linkend="void">void</link>                g_option_context_set_translate_func (<link linkend="GOptionContext">GOptionContext</link> *context,
450
 
                                                         <link linkend="GTranslateFunc">GTranslateFunc</link> func,
451
 
                                                         <link linkend="gpointer">gpointer</link> data,
452
 
                                                         <link linkend="GDestroyNotify">GDestroyNotify</link> destroy_notify);</programlisting>
453
 
<para>
454
 
Sets the function which is used to translate the contexts 
455
 
user-visible strings, for <option>--help</option> output. 
456
 
If <parameter>func</parameter> is <link linkend="NULL--CAPS"><literal>NULL</literal></link>, strings are not translated.
457
 
</para>
458
 
<para>
459
 
Note that option groups have their own translation functions, 
460
 
this function only affects the <parameter>parameter_string</parameter> (see <link linkend="g-option-context-new"><function>g_option_context_new()</function></link>), 
461
 
the summary (see <link linkend="g-option-context-set-summary"><function>g_option_context_set_summary()</function></link>) and the description 
462
 
(see <link linkend="g-option-context-set-description"><function>g_option_context_set_description()</function></link>).
463
 
</para>
464
 
<para>
465
 
If you are using <link linkend="gettext"><function>gettext()</function></link>, you only need to set the translation
466
 
domain, see <link linkend="g-option-context-set-translation-domain"><function>g_option_context_set_translation_domain()</function></link>.</para>
467
 
<para>
468
 
</para><variablelist role="params">
469
 
<varlistentry><term><parameter>context</parameter>&#160;:</term>
470
 
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
471
 
</simpara></listitem></varlistentry>
472
 
<varlistentry><term><parameter>func</parameter>&#160;:</term>
473
 
<listitem><simpara> the <link linkend="GTranslateFunc"><type>GTranslateFunc</type></link>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link> 
474
 
</simpara></listitem></varlistentry>
475
 
<varlistentry><term><parameter>data</parameter>&#160;:</term>
476
 
<listitem><simpara> user data to pass to <parameter>func</parameter>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
477
 
</simpara></listitem></varlistentry>
478
 
<varlistentry><term><parameter>destroy_notify</parameter>&#160;:</term>
479
 
<listitem><simpara> a function which gets called to free <parameter>data</parameter>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
480
 
</simpara></listitem></varlistentry>
481
 
</variablelist><para role="since">Since 2.12</para></refsect2>
482
 
<refsect2 id="g-option-context-set-translation-domain" role="function" condition="since:2.12">
483
 
<title>g_option_context_set_translation_domain ()</title>
484
 
<indexterm zone="g-option-context-set-translation-domain" role="2.12"><primary sortas="option_context_set_translation_domain">g_option_context_set_translation_domain</primary></indexterm><programlisting><link linkend="void">void</link>                g_option_context_set_translation_domain
485
 
                                                        (<link linkend="GOptionContext">GOptionContext</link> *context,
486
 
                                                         const <link linkend="gchar">gchar</link> *domain);</programlisting>
487
 
<para>
488
 
A convenience function to use <link linkend="gettext"><function>gettext()</function></link> for translating
489
 
user-visible strings.</para>
490
 
<para>
491
 
</para><variablelist role="params">
492
 
<varlistentry><term><parameter>context</parameter>&#160;:</term>
493
 
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
494
 
</simpara></listitem></varlistentry>
495
 
<varlistentry><term><parameter>domain</parameter>&#160;:</term>
496
 
<listitem><simpara> the domain to use
497
 
</simpara></listitem></varlistentry>
498
 
</variablelist><para role="since">Since 2.12</para></refsect2>
499
 
<refsect2 id="g-option-context-free" role="function" condition="since:2.6">
500
 
<title>g_option_context_free ()</title>
501
 
<indexterm zone="g-option-context-free" role="2.6"><primary sortas="option_context_free">g_option_context_free</primary></indexterm><programlisting><link linkend="void">void</link>                g_option_context_free               (<link linkend="GOptionContext">GOptionContext</link> *context);</programlisting>
502
 
<para>
503
 
Frees context and all the groups which have been 
504
 
added to it.
505
 
</para>
506
 
<para>
507
 
Please note that parsed arguments need to be freed separately (see
508
 
<link linkend="GOptionEntry"><type>GOptionEntry</type></link>).</para>
509
 
<para>
510
 
</para><variablelist role="params">
511
 
<varlistentry><term><parameter>context</parameter>&#160;:</term>
512
 
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link> 
513
 
</simpara></listitem></varlistentry>
514
 
</variablelist><para role="since">Since 2.6</para></refsect2>
515
 
<refsect2 id="g-option-context-parse" role="function" condition="since:2.6">
516
 
<title>g_option_context_parse ()</title>
517
 
<indexterm zone="g-option-context-parse" role="2.6"><primary sortas="option_context_parse">g_option_context_parse</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            g_option_context_parse              (<link linkend="GOptionContext">GOptionContext</link> *context,
518
 
                                                         <link linkend="gint">gint</link> *argc,
519
 
                                                         <link linkend="gchar">gchar</link> ***argv,
520
 
                                                         <link linkend="GError">GError</link> **error);</programlisting>
521
 
<para>
522
 
Parses the command line arguments, recognizing options
523
 
which have been added to <parameter>context</parameter>. A side-effect of 
524
 
calling this function is that <link linkend="g-set-prgname"><function>g_set_prgname()</function></link> will be
525
 
called.
526
 
</para>
527
 
<para>
528
 
If the parsing is successful, any parsed arguments are
529
 
removed from the array and <parameter>argc</parameter> and <parameter>argv</parameter> are updated 
530
 
accordingly. A '--' option is stripped from <parameter>argv</parameter>
531
 
unless there are unparsed options before and after it, 
532
 
or some of the options after it start with '-'. In case 
533
 
of an error, <parameter>argc</parameter> and <parameter>argv</parameter> are left unmodified. 
534
 
</para>
535
 
<para>
536
 
If automatic <option>--help</option> support is enabled
537
 
(see <link linkend="g-option-context-set-help-enabled"><function>g_option_context_set_help_enabled()</function></link>), and the 
538
 
<parameter>argv</parameter> array contains one of the recognized help options,
539
 
this function will produce help output to stdout and
540
 
call <literal>exit (0)</literal>.
541
 
</para>
542
 
<para>
543
 
Note that function depends on the 
544
 
<link linkend="setlocale">current locale</link> for 
545
 
automatic character set conversion of string and filename
546
 
arguments.</para>
547
 
<para>
548
 
</para><variablelist role="params">
549
 
<varlistentry><term><parameter>context</parameter>&#160;:</term>
550
 
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
551
 
</simpara></listitem></varlistentry>
552
 
<varlistentry><term><parameter>argc</parameter>&#160;:</term>
553
 
<listitem><simpara> a pointer to the number of command line arguments
554
 
</simpara></listitem></varlistentry>
555
 
<varlistentry><term><parameter>argv</parameter>&#160;:</term>
556
 
<listitem><simpara> a pointer to the array of command line arguments
557
 
</simpara></listitem></varlistentry>
558
 
<varlistentry><term><parameter>error</parameter>&#160;:</term>
559
 
<listitem><simpara> a return location for errors 
560
 
</simpara></listitem></varlistentry>
561
 
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if the parsing was successful, 
562
 
              <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> if an error occurred
563
 
 
564
 
</simpara></listitem></varlistentry>
565
 
</variablelist><para role="since">Since 2.6</para></refsect2>
566
 
<refsect2 id="g-option-context-set-help-enabled" role="function" condition="since:2.6">
567
 
<title>g_option_context_set_help_enabled ()</title>
568
 
<indexterm zone="g-option-context-set-help-enabled" role="2.6"><primary sortas="option_context_set_help_enabled">g_option_context_set_help_enabled</primary></indexterm><programlisting><link linkend="void">void</link>                g_option_context_set_help_enabled   (<link linkend="GOptionContext">GOptionContext</link> *context,
569
 
                                                         <link linkend="gboolean">gboolean</link> help_enabled);</programlisting>
570
 
<para>
571
 
Enables or disables automatic generation of <option>--help</option> 
572
 
output. By default, <link linkend="g-option-context-parse"><function>g_option_context_parse()</function></link> recognizes
573
 
<option>--help</option>, <option>-h</option>,
574
 
<option>-?</option>, <option>--help-all</option>
575
 
and <option>--help-</option><replaceable>groupname</replaceable> and creates
576
 
suitable output to stdout.</para>
577
 
<para>
578
 
</para><variablelist role="params">
579
 
<varlistentry><term><parameter>context</parameter>&#160;:</term>
580
 
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
581
 
</simpara></listitem></varlistentry>
582
 
<varlistentry><term><parameter>help_enabled</parameter>&#160;:</term>
583
 
<listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> to enable <option>--help</option>, <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> to disable it
584
 
</simpara></listitem></varlistentry>
585
 
</variablelist><para role="since">Since 2.6</para></refsect2>
586
 
<refsect2 id="g-option-context-get-help-enabled" role="function" condition="since:2.6">
587
 
<title>g_option_context_get_help_enabled ()</title>
588
 
<indexterm zone="g-option-context-get-help-enabled" role="2.6"><primary sortas="option_context_get_help_enabled">g_option_context_get_help_enabled</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            g_option_context_get_help_enabled   (<link linkend="GOptionContext">GOptionContext</link> *context);</programlisting>
589
 
<para>
590
 
Returns whether automatic <option>--help</option> generation
591
 
is turned on for <parameter>context</parameter>. See <link linkend="g-option-context-set-help-enabled"><function>g_option_context_set_help_enabled()</function></link>.</para>
592
 
<para>
593
 
</para><variablelist role="params">
594
 
<varlistentry><term><parameter>context</parameter>&#160;:</term>
595
 
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
596
 
</simpara></listitem></varlistentry>
597
 
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if automatic help generation is turned on.
598
 
 
599
 
</simpara></listitem></varlistentry>
600
 
</variablelist><para role="since">Since 2.6</para></refsect2>
601
 
<refsect2 id="g-option-context-set-ignore-unknown-options" role="function" condition="since:2.6">
602
 
<title>g_option_context_set_ignore_unknown_options ()</title>
603
 
<indexterm zone="g-option-context-set-ignore-unknown-options" role="2.6"><primary sortas="option_context_set_ignore_unknown_options">g_option_context_set_ignore_unknown_options</primary></indexterm><programlisting><link linkend="void">void</link>                g_option_context_set_ignore_unknown_options
604
 
                                                        (<link linkend="GOptionContext">GOptionContext</link> *context,
605
 
                                                         <link linkend="gboolean">gboolean</link> ignore_unknown);</programlisting>
606
 
<para>
607
 
Sets whether to ignore unknown options or not. If an argument is 
608
 
ignored, it is left in the <parameter>argv</parameter> array after parsing. By default, 
609
 
<link linkend="g-option-context-parse"><function>g_option_context_parse()</function></link> treats unknown options as error.
610
 
</para>
611
 
<para>
612
 
This setting does not affect non-option arguments (i.e. arguments 
613
 
which don't start with a dash). But note that GOption cannot reliably
614
 
determine whether a non-option belongs to a preceding unknown option.</para>
615
 
<para>
616
 
</para><variablelist role="params">
617
 
<varlistentry><term><parameter>context</parameter>&#160;:</term>
618
 
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
619
 
</simpara></listitem></varlistentry>
620
 
<varlistentry><term><parameter>ignore_unknown</parameter>&#160;:</term>
621
 
<listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> to ignore unknown options, <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> to produce
622
 
   an error when unknown options are met
623
 
</simpara></listitem></varlistentry>
624
 
</variablelist><para role="since">Since 2.6</para></refsect2>
625
 
<refsect2 id="g-option-context-get-ignore-unknown-options" role="function" condition="since:2.6">
626
 
<title>g_option_context_get_ignore_unknown_options ()</title>
627
 
<indexterm zone="g-option-context-get-ignore-unknown-options" role="2.6"><primary sortas="option_context_get_ignore_unknown_options">g_option_context_get_ignore_unknown_options</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            g_option_context_get_ignore_unknown_options
628
 
                                                        (<link linkend="GOptionContext">GOptionContext</link> *context);</programlisting>
629
 
<para>
630
 
Returns whether unknown options are ignored or not. See
631
 
<link linkend="g-option-context-set-ignore-unknown-options"><function>g_option_context_set_ignore_unknown_options()</function></link>.</para>
632
 
<para>
633
 
</para><variablelist role="params">
634
 
<varlistentry><term><parameter>context</parameter>&#160;:</term>
635
 
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
636
 
</simpara></listitem></varlistentry>
637
 
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if unknown options are ignored.
638
 
 
639
 
</simpara></listitem></varlistentry>
640
 
</variablelist><para role="since">Since 2.6</para></refsect2>
641
 
<refsect2 id="g-option-context-get-help" role="function" condition="since:2.14">
642
 
<title>g_option_context_get_help ()</title>
643
 
<indexterm zone="g-option-context-get-help" role="2.14"><primary sortas="option_context_get_help">g_option_context_get_help</primary></indexterm><programlisting><link linkend="gchar">gchar</link> *             g_option_context_get_help           (<link linkend="GOptionContext">GOptionContext</link> *context,
644
 
                                                         <link linkend="gboolean">gboolean</link> main_help,
645
 
                                                         <link linkend="GOptionGroup">GOptionGroup</link> *group);</programlisting>
646
 
<para>
647
 
Returns a formatted, translated help text for the given context.
648
 
To obtain the text produced by <option>--help</option>, call
649
 
<literal>g_option_context_get_help (context, TRUE, NULL)</literal>.
650
 
To obtain the text produced by <option>--help-all</option>, call
651
 
<literal>g_option_context_get_help (context, FALSE, NULL)</literal>.
652
 
To obtain the help text for an option group, call
653
 
<literal>g_option_context_get_help (context, FALSE, group)</literal>.</para>
654
 
<para>
655
 
</para><variablelist role="params">
656
 
<varlistentry><term><parameter>context</parameter>&#160;:</term>
657
 
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
658
 
</simpara></listitem></varlistentry>
659
 
<varlistentry><term><parameter>main_help</parameter>&#160;:</term>
660
 
<listitem><simpara> if <link linkend="TRUE--CAPS"><literal>TRUE</literal></link>, only include the main group 
661
 
</simpara></listitem></varlistentry>
662
 
<varlistentry><term><parameter>group</parameter>&#160;:</term>
663
 
<listitem><simpara> the <link linkend="GOptionGroup"><type>GOptionGroup</type></link> to create help for, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
664
 
</simpara></listitem></varlistentry>
665
 
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> A newly allocated string containing the help text
666
 
 
667
 
</simpara></listitem></varlistentry>
668
 
</variablelist><para role="since">Since 2.14</para></refsect2>
669
 
<refsect2 id="GOptionArg" role="enum">
670
 
<title>enum GOptionArg</title>
671
 
<indexterm zone="GOptionArg"><primary sortas="OptionArg">GOptionArg</primary></indexterm><programlisting>typedef enum
672
 
{
673
 
  G_OPTION_ARG_NONE,
674
 
  G_OPTION_ARG_STRING,
675
 
  G_OPTION_ARG_INT,
676
 
  G_OPTION_ARG_CALLBACK,
677
 
  G_OPTION_ARG_FILENAME,
678
 
  G_OPTION_ARG_STRING_ARRAY,
679
 
  G_OPTION_ARG_FILENAME_ARRAY,
680
 
  G_OPTION_ARG_DOUBLE,
681
 
  G_OPTION_ARG_INT64
682
 
} GOptionArg;
683
 
</programlisting>
684
 
<para>
685
 
The <link linkend="GOptionArg"><type>GOptionArg</type></link> enum values determine which type of extra argument the
686
 
options expect to find. If an option expects an extra argument, it
687
 
can be specified in several ways; with a short option:
688
 
<option>-x arg</option>, with a long option: <option>--name arg</option>
689
 
or combined in a single argument: <option>--name=arg</option>.</para>
690
 
<para>
691
 
</para><variablelist role="enum">
692
 
<varlistentry id="G-OPTION-ARG-NONE--CAPS" role="constant">
693
 
<term><literal>G_OPTION_ARG_NONE</literal></term>
694
 
<listitem><simpara> No extra argument. This is useful for simple flags.
695
 
</simpara></listitem>
696
 
</varlistentry>
697
 
<varlistentry id="G-OPTION-ARG-STRING--CAPS" role="constant">
698
 
<term><literal>G_OPTION_ARG_STRING</literal></term>
699
 
<listitem><simpara> The option takes a string argument.
700
 
</simpara></listitem>
701
 
</varlistentry>
702
 
<varlistentry id="G-OPTION-ARG-INT--CAPS" role="constant">
703
 
<term><literal>G_OPTION_ARG_INT</literal></term>
704
 
<listitem><simpara> The option takes an integer argument.
705
 
</simpara></listitem>
706
 
</varlistentry>
707
 
<varlistentry id="G-OPTION-ARG-CALLBACK--CAPS" role="constant">
708
 
<term><literal>G_OPTION_ARG_CALLBACK</literal></term>
709
 
<listitem><simpara> The option provides a callback to parse the
710
 
 extra argument.
711
 
</simpara></listitem>
712
 
</varlistentry>
713
 
<varlistentry id="G-OPTION-ARG-FILENAME--CAPS" role="constant">
714
 
<term><literal>G_OPTION_ARG_FILENAME</literal></term>
715
 
<listitem><simpara> The option takes a filename as argument.
716
 
</simpara></listitem>
717
 
</varlistentry>
718
 
<varlistentry id="G-OPTION-ARG-STRING-ARRAY--CAPS" role="constant">
719
 
<term><literal>G_OPTION_ARG_STRING_ARRAY</literal></term>
720
 
<listitem><simpara> The option takes a string argument, multiple
721
 
 uses of the option are collected into an array of strings.
722
 
</simpara></listitem>
723
 
</varlistentry>
724
 
<varlistentry id="G-OPTION-ARG-FILENAME-ARRAY--CAPS" role="constant">
725
 
<term><literal>G_OPTION_ARG_FILENAME_ARRAY</literal></term>
726
 
<listitem><simpara> The option takes a filename as argument, 
727
 
 multiple uses of the option are collected into an array of strings.
728
 
</simpara></listitem>
729
 
</varlistentry>
730
 
<varlistentry id="G-OPTION-ARG-DOUBLE--CAPS" role="constant">
731
 
<term><literal>G_OPTION_ARG_DOUBLE</literal></term>
732
 
<listitem><simpara> The option takes a double argument. The argument
733
 
 can be formatted either for the user's locale or for the "C" locale. Since 2.12
734
 
</simpara></listitem>
735
 
</varlistentry>
736
 
<varlistentry id="G-OPTION-ARG-INT64--CAPS" role="constant">
737
 
<term><literal>G_OPTION_ARG_INT64</literal></term>
738
 
<listitem><simpara> The option takes a 64-bit integer. Like <link linkend="G-OPTION-ARG-INT--CAPS"><literal>G_OPTION_ARG_INT</literal></link>
739
 
 but for larger numbers. The number can be in decimal base, or in hexadecimal
740
 
 (when prefixed with <literal>0x</literal>, for example, <literal>0xffffffff</literal>).
741
 
 Since 2.12
742
 
</simpara></listitem>
743
 
</varlistentry>
744
 
</variablelist></refsect2>
745
 
<refsect2 id="GOptionFlags" role="enum">
746
 
<title>enum GOptionFlags</title>
747
 
<indexterm zone="GOptionFlags"><primary sortas="OptionFlags">GOptionFlags</primary></indexterm><programlisting>typedef enum
748
 
{
749
 
  G_OPTION_FLAG_HIDDEN          = 1 &lt;&lt; 0,
750
 
  G_OPTION_FLAG_IN_MAIN         = 1 &lt;&lt; 1,
751
 
  G_OPTION_FLAG_REVERSE         = 1 &lt;&lt; 2,
752
 
  G_OPTION_FLAG_NO_ARG          = 1 &lt;&lt; 3,
753
 
  G_OPTION_FLAG_FILENAME        = 1 &lt;&lt; 4,
754
 
  G_OPTION_FLAG_OPTIONAL_ARG    = 1 &lt;&lt; 5,
755
 
  G_OPTION_FLAG_NOALIAS         = 1 &lt;&lt; 6
756
 
} GOptionFlags;
757
 
</programlisting>
758
 
<para>
759
 
Flags which modify individual options.</para>
760
 
<para>
761
 
</para><variablelist role="enum">
762
 
<varlistentry id="G-OPTION-FLAG-HIDDEN--CAPS" role="constant">
763
 
<term><literal>G_OPTION_FLAG_HIDDEN</literal></term>
764
 
<listitem><simpara> The option doesn't appear in <option>--help</option>
765
 
 output.
766
 
</simpara></listitem>
767
 
</varlistentry>
768
 
<varlistentry id="G-OPTION-FLAG-IN-MAIN--CAPS" role="constant">
769
 
<term><literal>G_OPTION_FLAG_IN_MAIN</literal></term>
770
 
<listitem><simpara> The option appears in the main section of the
771
 
 <option>--help</option> output, even if it is defined in a group.
772
 
</simpara></listitem>
773
 
</varlistentry>
774
 
<varlistentry id="G-OPTION-FLAG-REVERSE--CAPS" role="constant">
775
 
<term><literal>G_OPTION_FLAG_REVERSE</literal></term>
776
 
<listitem><simpara> For options of the <link linkend="G-OPTION-ARG-NONE--CAPS"><literal>G_OPTION_ARG_NONE</literal></link> kind, this flag
777
 
 indicates that the sense of the option is reversed.
778
 
</simpara></listitem>
779
 
</varlistentry>
780
 
<varlistentry id="G-OPTION-FLAG-NO-ARG--CAPS" role="constant">
781
 
<term><literal>G_OPTION_FLAG_NO_ARG</literal></term>
782
 
<listitem><simpara> For options of the <link linkend="G-OPTION-ARG-CALLBACK--CAPS"><literal>G_OPTION_ARG_CALLBACK</literal></link> kind,
783
 
 this flag indicates that the callback does not take any argument
784
 
 (like a <link linkend="G-OPTION-ARG-NONE--CAPS"><literal>G_OPTION_ARG_NONE</literal></link> option). Since 2.8
785
 
</simpara></listitem>
786
 
</varlistentry>
787
 
<varlistentry id="G-OPTION-FLAG-FILENAME--CAPS" role="constant">
788
 
<term><literal>G_OPTION_FLAG_FILENAME</literal></term>
789
 
<listitem><simpara> For options of the <link linkend="G-OPTION-ARG-CALLBACK--CAPS"><literal>G_OPTION_ARG_CALLBACK</literal></link>
790
 
 kind, this flag indicates that the argument should be passed to the
791
 
 callback in the GLib filename encoding rather than UTF-8. Since 2.8
792
 
</simpara></listitem>
793
 
</varlistentry>
794
 
<varlistentry id="G-OPTION-FLAG-OPTIONAL-ARG--CAPS" role="constant">
795
 
<term><literal>G_OPTION_FLAG_OPTIONAL_ARG</literal></term>
796
 
<listitem><simpara> For options of the <link linkend="G-OPTION-ARG-CALLBACK--CAPS"><literal>G_OPTION_ARG_CALLBACK</literal></link> 
797
 
 kind, this flag indicates that the argument supply is optional. If no argument
798
 
 is given then data of <link linkend="GOptionParseFunc"><literal>GOptionParseFunc</literal></link> will be set to NULL. Since 2.8
799
 
</simpara></listitem>
800
 
</varlistentry>
801
 
<varlistentry id="G-OPTION-FLAG-NOALIAS--CAPS" role="constant">
802
 
<term><literal>G_OPTION_FLAG_NOALIAS</literal></term>
803
 
<listitem><simpara> This flag turns off the automatic conflict resolution
804
 
 which prefixes long option names with <literal>groupname-</literal> if 
805
 
 there is a conflict. This option should only be used in situations where
806
 
 aliasing is necessary to model some legacy commandline interface. It is
807
 
 not safe to use this option, unless all option groups are under your 
808
 
 direct control. Since 2.8.
809
 
</simpara></listitem>
810
 
</varlistentry>
811
 
</variablelist></refsect2>
812
 
<refsect2 id="G-OPTION-REMAINING--CAPS" role="macro" condition="since:2.6">
813
 
<title>G_OPTION_REMAINING</title>
814
 
<indexterm zone="G-OPTION-REMAINING--CAPS" role="2.6"><primary sortas="OPTION_REMAINING">G_OPTION_REMAINING</primary></indexterm><programlisting>#define G_OPTION_REMAINING ""
815
 
</programlisting>
816
 
<para>
817
 
If a long option in the main group has this name, it is not treated as a 
818
 
regular option. Instead it collects all non-option arguments which would
819
 
otherwise be left in <literal>argv</literal>. The option must be of type
820
 
<link linkend="G-OPTION-ARG-CALLBACK--CAPS"><literal>G_OPTION_ARG_CALLBACK</literal></link>, <link linkend="G-OPTION-ARG-STRING-ARRAY--CAPS"><literal>G_OPTION_ARG_STRING_ARRAY</literal></link>
821
 
or <link linkend="G-OPTION-ARG-FILENAME-ARRAY--CAPS"><literal>G_OPTION_ARG_FILENAME_ARRAY</literal></link>.
822
 
</para>
823
 
<para>
824
 
Using <link linkend="G-OPTION-REMAINING--CAPS"><type>G_OPTION_REMAINING</type></link> instead of simply scanning <literal>argv</literal>
825
 
for leftover arguments has the advantage that GOption takes care of 
826
 
necessary encoding conversions for strings or filenames.</para>
827
 
<para>
828
 
</para><para role="since">Since 2.6</para></refsect2>
829
 
<refsect2 id="GOptionEntry" role="struct">
830
 
<title>GOptionEntry</title>
831
 
<indexterm zone="GOptionEntry"><primary sortas="OptionEntry">GOptionEntry</primary></indexterm><programlisting>typedef struct {
832
 
  const gchar *long_name;
833
 
  gchar        short_name;
834
 
  gint         flags;
835
 
 
836
 
  GOptionArg   arg;
837
 
  gpointer     arg_data;
838
 
  
839
 
  const gchar *description;
840
 
  const gchar *arg_description;
841
 
} GOptionEntry;
842
 
</programlisting>
843
 
<para>
844
 
A <structname>GOptionEntry</structname> defines a single option.
845
 
To have an effect, they must be added to a <link linkend="GOptionGroup"><type>GOptionGroup</type></link> with
846
 
<link linkend="g-option-context-add-main-entries"><function>g_option_context_add_main_entries()</function></link> or <link linkend="g-option-group-add-entries"><function>g_option_group_add_entries()</function></link>.</para>
847
 
<para>
848
 
</para><variablelist role="struct">
849
 
<varlistentry>
850
 
<term>const&#160;<link linkend="gchar">gchar</link>&#160;*<structfield>long_name</structfield>;</term>
851
 
<listitem><simpara> The long name of an option can be used to specify it
852
 
 in a commandline as --<replaceable>long_name</replaceable>. Every
853
 
 option must have a long name. To resolve conflicts if multiple
854
 
 option groups contain the same long name, it is also possible to
855
 
 specify the option as 
856
 
 --<replaceable>groupname</replaceable>-<replaceable>long_name</replaceable>.
857
 
</simpara></listitem>
858
 
</varlistentry>
859
 
<varlistentry>
860
 
<term><link linkend="gchar">gchar</link>&#160;<structfield>short_name</structfield>;</term>
861
 
<listitem><simpara> If an option has a short name, it can be specified
862
 
 -<replaceable>short_name</replaceable> in a commandline. <parameter>short_name</parameter> must be 
863
 
 a printable ASCII character different from '-', or zero if the option has no
864
 
 short name.
865
 
</simpara></listitem>
866
 
</varlistentry>
867
 
<varlistentry>
868
 
<term><link linkend="gint">gint</link>&#160;<structfield>flags</structfield>;</term>
869
 
<listitem><simpara> Flags from <link linkend="GOptionFlags"><type>GOptionFlags</type></link>.
870
 
</simpara></listitem>
871
 
</varlistentry>
872
 
<varlistentry>
873
 
<term><link linkend="GOptionArg">GOptionArg</link>&#160;<structfield>arg</structfield>;</term>
874
 
<listitem><simpara> The type of the option, as a <link linkend="GOptionArg"><type>GOptionArg</type></link>.
875
 
</simpara></listitem>
876
 
</varlistentry>
877
 
<varlistentry>
878
 
<term><link linkend="gpointer">gpointer</link>&#160;<structfield>arg_data</structfield>;</term>
879
 
<listitem><simpara> If the <parameter>arg</parameter> type is <link linkend="G-OPTION-ARG-CALLBACK--CAPS"><literal>G_OPTION_ARG_CALLBACK</literal></link>, then <parameter>arg_data</parameter> must 
880
 
 point to a <link linkend="GOptionArgFunc"><type>GOptionArgFunc</type></link> callback function, which will be called to handle 
881
 
 the extra argument. Otherwise, <parameter>arg_data</parameter> is a pointer to a location to store 
882
 
 the value, the required type of the location depends on the <parameter>arg</parameter> type:
883
 
 <variablelist>
884
 
 <varlistentry>
885
 
 <term><link linkend="G-OPTION-ARG-NONE--CAPS"><literal>G_OPTION_ARG_NONE</literal></link></term>
886
 
 <listitem><para><link linkend="gboolean"><literal>gboolean</literal></link></para></listitem>
887
 
 </varlistentry>
888
 
 <varlistentry>
889
 
 <term><link linkend="G-OPTION-ARG-STRING--CAPS"><literal>G_OPTION_ARG_STRING</literal></link></term>
890
 
 <listitem><para><link linkend="gchar"><literal>gchar</literal></link>*</para></listitem>
891
 
 </varlistentry>
892
 
 <varlistentry>
893
 
 <term><link linkend="G-OPTION-ARG-INT--CAPS"><literal>G_OPTION_ARG_INT</literal></link></term>
894
 
 <listitem><para><link linkend="gint"><literal>gint</literal></link></para></listitem>
895
 
 </varlistentry>
896
 
 <varlistentry>
897
 
 <term><link linkend="G-OPTION-ARG-FILENAME--CAPS"><literal>G_OPTION_ARG_FILENAME</literal></link></term>
898
 
 <listitem><para><link linkend="gchar"><literal>gchar</literal></link>*</para></listitem>
899
 
 </varlistentry>
900
 
 <varlistentry>
901
 
 <term><link linkend="G-OPTION-ARG-STRING-ARRAY--CAPS"><literal>G_OPTION_ARG_STRING_ARRAY</literal></link></term>
902
 
 <listitem><para><link linkend="gchar"><literal>gchar</literal></link>**</para></listitem>
903
 
 </varlistentry>
904
 
 <varlistentry>
905
 
 <term><link linkend="G-OPTION-ARG-FILENAME-ARRAY--CAPS"><literal>G_OPTION_ARG_FILENAME_ARRAY</literal></link></term>
906
 
 <listitem><para><link linkend="gchar"><literal>gchar</literal></link>**</para></listitem>
907
 
 </varlistentry>
908
 
 <varlistentry>
909
 
 <term><link linkend="G-OPTION-ARG-DOUBLE--CAPS"><literal>G_OPTION_ARG_DOUBLE</literal></link></term>
910
 
 <listitem><para><link linkend="gdouble"><literal>gdouble</literal></link></para></listitem>
911
 
 </varlistentry>
912
 
 </variablelist>
913
 
 If <parameter>arg</parameter> type is <link linkend="G-OPTION-ARG-STRING--CAPS"><literal>G_OPTION_ARG_STRING</literal></link> or <link linkend="G-OPTION-ARG-FILENAME--CAPS"><literal>G_OPTION_ARG_FILENAME</literal></link> the location
914
 
 will contain a newly allocated string if the option was given. That string
915
 
 needs to be freed by the callee using <link linkend="g-free"><function>g_free()</function></link>. Likewise if <parameter>arg</parameter> type is
916
 
 <link linkend="G-OPTION-ARG-STRING-ARRAY--CAPS"><literal>G_OPTION_ARG_STRING_ARRAY</literal></link> or <link linkend="G-OPTION-ARG-FILENAME-ARRAY--CAPS"><literal>G_OPTION_ARG_FILENAME_ARRAY</literal></link>, the data should
917
 
 be freed using <link linkend="g-strfreev"><function>g_strfreev()</function></link>.
918
 
</simpara></listitem>
919
 
</varlistentry>
920
 
<varlistentry>
921
 
<term>const&#160;<link linkend="gchar">gchar</link>&#160;*<structfield>description</structfield>;</term>
922
 
<listitem><simpara> the description for the option in <option>--help</option>
923
 
 output. The <parameter>description</parameter> is translated using the <parameter>translate_func</parameter> of the
924
 
 group, see <link linkend="g-option-group-set-translation-domain"><function>g_option_group_set_translation_domain()</function></link>.
925
 
</simpara></listitem>
926
 
</varlistentry>
927
 
<varlistentry>
928
 
<term>const&#160;<link linkend="gchar">gchar</link>&#160;*<structfield>arg_description</structfield>;</term>
929
 
<listitem><simpara> The placeholder to use for the extra argument parsed
930
 
 by the option in <option>--help</option>
931
 
 output. The <parameter>arg_description</parameter> is translated using the <parameter>translate_func</parameter> of the
932
 
 group, see <link linkend="g-option-group-set-translation-domain"><function>g_option_group_set_translation_domain()</function></link>.
933
 
</simpara></listitem>
934
 
</varlistentry>
935
 
</variablelist></refsect2>
936
 
<refsect2 id="g-option-context-add-main-entries" role="function" condition="since:2.6">
937
 
<title>g_option_context_add_main_entries ()</title>
938
 
<indexterm zone="g-option-context-add-main-entries" role="2.6"><primary sortas="option_context_add_main_entries">g_option_context_add_main_entries</primary></indexterm><programlisting><link linkend="void">void</link>                g_option_context_add_main_entries   (<link linkend="GOptionContext">GOptionContext</link> *context,
939
 
                                                         const <link linkend="GOptionEntry">GOptionEntry</link> *entries,
940
 
                                                         const <link linkend="gchar">gchar</link> *translation_domain);</programlisting>
941
 
<para>
942
 
A convenience function which creates a main group if it doesn't 
943
 
exist, adds the <parameter>entries</parameter> to it and sets the translation domain.</para>
944
 
<para>
945
 
</para><variablelist role="params">
946
 
<varlistentry><term><parameter>context</parameter>&#160;:</term>
947
 
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
948
 
</simpara></listitem></varlistentry>
949
 
<varlistentry><term><parameter>entries</parameter>&#160;:</term>
950
 
<listitem><simpara> a <link linkend="NULL--CAPS"><literal>NULL</literal></link>-terminated array of <link linkend="GOptionEntry"><type>GOptionEntry</type></link><!-- -->s
951
 
</simpara></listitem></varlistentry>
952
 
<varlistentry><term><parameter>translation_domain</parameter>&#160;:</term>
953
 
<listitem><simpara> a translation domain to use for translating
954
 
   the <option>--help</option> output for the options in <parameter>entries</parameter>
955
 
   with <link linkend="gettext"><function>gettext()</function></link>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
956
 
</simpara></listitem></varlistentry>
957
 
</variablelist><para role="since">Since 2.6</para></refsect2>
958
 
<refsect2 id="GOptionGroup" role="struct">
959
 
<title>GOptionGroup</title>
960
 
<indexterm zone="GOptionGroup"><primary sortas="OptionGroup">GOptionGroup</primary></indexterm><programlisting>typedef struct _GOptionGroup GOptionGroup;</programlisting>
961
 
<para>
962
 
A <structname>GOptionGroup</structname> struct defines the options in a single
963
 
group. The struct has only private fields and should not be directly accessed.
964
 
</para>
965
 
<para>
966
 
All options in a group share the same translation function. Libraries which
967
 
need to parse commandline options are expected to provide a function for
968
 
getting a <structname>GOptionGroup</structname> holding their options, which
969
 
the application can then add to its <link linkend="GOptionContext"><type>GOptionContext</type></link>.</para>
970
 
<para>
971
 
</para></refsect2>
972
 
<refsect2 id="g-option-context-add-group" role="function" condition="since:2.6">
973
 
<title>g_option_context_add_group ()</title>
974
 
<indexterm zone="g-option-context-add-group" role="2.6"><primary sortas="option_context_add_group">g_option_context_add_group</primary></indexterm><programlisting><link linkend="void">void</link>                g_option_context_add_group          (<link linkend="GOptionContext">GOptionContext</link> *context,
975
 
                                                         <link linkend="GOptionGroup">GOptionGroup</link> *group);</programlisting>
976
 
<para>
977
 
Adds a <link linkend="GOptionGroup"><type>GOptionGroup</type></link> to the <parameter>context</parameter>, so that parsing with <parameter>context</parameter>
978
 
will recognize the options in the group. Note that the group will
979
 
be freed together with the context when <link linkend="g-option-context-free"><function>g_option_context_free()</function></link> is
980
 
called, so you must not free the group yourself after adding it
981
 
to a context.</para>
982
 
<para>
983
 
</para><variablelist role="params">
984
 
<varlistentry><term><parameter>context</parameter>&#160;:</term>
985
 
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
986
 
</simpara></listitem></varlistentry>
987
 
<varlistentry><term><parameter>group</parameter>&#160;:</term>
988
 
<listitem><simpara> the group to add
989
 
</simpara></listitem></varlistentry>
990
 
</variablelist><para role="since">Since 2.6</para></refsect2>
991
 
<refsect2 id="g-option-context-set-main-group" role="function" condition="since:2.6">
992
 
<title>g_option_context_set_main_group ()</title>
993
 
<indexterm zone="g-option-context-set-main-group" role="2.6"><primary sortas="option_context_set_main_group">g_option_context_set_main_group</primary></indexterm><programlisting><link linkend="void">void</link>                g_option_context_set_main_group     (<link linkend="GOptionContext">GOptionContext</link> *context,
994
 
                                                         <link linkend="GOptionGroup">GOptionGroup</link> *group);</programlisting>
995
 
<para>
996
 
Sets a <link linkend="GOptionGroup"><type>GOptionGroup</type></link> as main group of the <parameter>context</parameter>. 
997
 
This has the same effect as calling <link linkend="g-option-context-add-group"><function>g_option_context_add_group()</function></link>, 
998
 
the only difference is that the options in the main group are 
999
 
treated differently when generating <option>--help</option> output.</para>
1000
 
<para>
1001
 
</para><variablelist role="params">
1002
 
<varlistentry><term><parameter>context</parameter>&#160;:</term>
1003
 
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
1004
 
</simpara></listitem></varlistentry>
1005
 
<varlistentry><term><parameter>group</parameter>&#160;:</term>
1006
 
<listitem><simpara> the group to set as main group
1007
 
</simpara></listitem></varlistentry>
1008
 
</variablelist><para role="since">Since 2.6</para></refsect2>
1009
 
<refsect2 id="g-option-context-get-main-group" role="function" condition="since:2.6">
1010
 
<title>g_option_context_get_main_group ()</title>
1011
 
<indexterm zone="g-option-context-get-main-group" role="2.6"><primary sortas="option_context_get_main_group">g_option_context_get_main_group</primary></indexterm><programlisting><link linkend="GOptionGroup">GOptionGroup</link> *      g_option_context_get_main_group     (<link linkend="GOptionContext">GOptionContext</link> *context);</programlisting>
1012
 
<para>
1013
 
Returns a pointer to the main group of <parameter>context</parameter>.</para>
1014
 
<para>
1015
 
</para><variablelist role="params">
1016
 
<varlistentry><term><parameter>context</parameter>&#160;:</term>
1017
 
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
1018
 
</simpara></listitem></varlistentry>
1019
 
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the main group of <parameter>context</parameter>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link> if <parameter>context</parameter> doesn't
1020
 
 have a main group. Note that group belongs to <parameter>context</parameter> and should
1021
 
 not be modified or freed.
1022
 
 
1023
 
</simpara></listitem></varlistentry>
1024
 
</variablelist><para role="since">Since 2.6</para></refsect2>
1025
 
<refsect2 id="g-option-group-new" role="function" condition="since:2.6">
1026
 
<title>g_option_group_new ()</title>
1027
 
<indexterm zone="g-option-group-new" role="2.6"><primary sortas="option_group_new">g_option_group_new</primary></indexterm><programlisting><link linkend="GOptionGroup">GOptionGroup</link> *      g_option_group_new                  (const <link linkend="gchar">gchar</link> *name,
1028
 
                                                         const <link linkend="gchar">gchar</link> *description,
1029
 
                                                         const <link linkend="gchar">gchar</link> *help_description,
1030
 
                                                         <link linkend="gpointer">gpointer</link> user_data,
1031
 
                                                         <link linkend="GDestroyNotify">GDestroyNotify</link> destroy);</programlisting>
1032
 
<para>
1033
 
Creates a new <link linkend="GOptionGroup"><type>GOptionGroup</type></link>.</para>
1034
 
<para>
1035
 
</para><variablelist role="params">
1036
 
<varlistentry><term><parameter>name</parameter>&#160;:</term>
1037
 
<listitem><simpara> the name for the option group, this is used to provide
1038
 
  help for the options in this group with <option>--help-</option><parameter>name</parameter>
1039
 
</simpara></listitem></varlistentry>
1040
 
<varlistentry><term><parameter>description</parameter>&#160;:</term>
1041
 
<listitem><simpara> a description for this group to be shown in 
1042
 
  <option>--help</option>. This string is translated using the translation
1043
 
  domain or translation function of the group
1044
 
</simpara></listitem></varlistentry>
1045
 
<varlistentry><term><parameter>help_description</parameter>&#160;:</term>
1046
 
<listitem><simpara> a description for the <option>--help-</option><parameter>name</parameter> option.
1047
 
  This string is translated using the translation domain or translation function
1048
 
  of the group
1049
 
</simpara></listitem></varlistentry>
1050
 
<varlistentry><term><parameter>user_data</parameter>&#160;:</term>
1051
 
<listitem><simpara> user data that will be passed to the pre- and post-parse hooks,
1052
 
  the error hook and to callbacks of <link linkend="G-OPTION-ARG-CALLBACK--CAPS"><literal>G_OPTION_ARG_CALLBACK</literal></link> options, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
1053
 
</simpara></listitem></varlistentry>
1054
 
<varlistentry><term><parameter>destroy</parameter>&#160;:</term>
1055
 
<listitem><simpara> a function that will be called to free <parameter>user_data</parameter>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
1056
 
</simpara></listitem></varlistentry>
1057
 
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a newly created option group. It should be added 
1058
 
  to a <link linkend="GOptionContext"><type>GOptionContext</type></link> or freed with <link linkend="g-option-group-free"><function>g_option_group_free()</function></link>.
1059
 
 
1060
 
</simpara></listitem></varlistentry>
1061
 
</variablelist><para role="since">Since 2.6</para></refsect2>
1062
 
<refsect2 id="g-option-group-free" role="function" condition="since:2.6">
1063
 
<title>g_option_group_free ()</title>
1064
 
<indexterm zone="g-option-group-free" role="2.6"><primary sortas="option_group_free">g_option_group_free</primary></indexterm><programlisting><link linkend="void">void</link>                g_option_group_free                 (<link linkend="GOptionGroup">GOptionGroup</link> *group);</programlisting>
1065
 
<para>
1066
 
Frees a <link linkend="GOptionGroup"><type>GOptionGroup</type></link>. Note that you must <emphasis>not</emphasis>
1067
 
free groups which have been added to a <link linkend="GOptionContext"><type>GOptionContext</type></link>.</para>
1068
 
<para>
1069
 
</para><variablelist role="params">
1070
 
<varlistentry><term><parameter>group</parameter>&#160;:</term>
1071
 
<listitem><simpara> a <link linkend="GOptionGroup"><type>GOptionGroup</type></link>
1072
 
</simpara></listitem></varlistentry>
1073
 
</variablelist><para role="since">Since 2.6</para></refsect2>
1074
 
<refsect2 id="g-option-group-add-entries" role="function" condition="since:2.6">
1075
 
<title>g_option_group_add_entries ()</title>
1076
 
<indexterm zone="g-option-group-add-entries" role="2.6"><primary sortas="option_group_add_entries">g_option_group_add_entries</primary></indexterm><programlisting><link linkend="void">void</link>                g_option_group_add_entries          (<link linkend="GOptionGroup">GOptionGroup</link> *group,
1077
 
                                                         const <link linkend="GOptionEntry">GOptionEntry</link> *entries);</programlisting>
1078
 
<para>
1079
 
Adds the options specified in <parameter>entries</parameter> to <parameter>group</parameter>.</para>
1080
 
<para>
1081
 
</para><variablelist role="params">
1082
 
<varlistentry><term><parameter>group</parameter>&#160;:</term>
1083
 
<listitem><simpara> a <link linkend="GOptionGroup"><type>GOptionGroup</type></link>
1084
 
</simpara></listitem></varlistentry>
1085
 
<varlistentry><term><parameter>entries</parameter>&#160;:</term>
1086
 
<listitem><simpara> a <link linkend="NULL--CAPS"><literal>NULL</literal></link>-terminated array of <link linkend="GOptionEntry"><type>GOptionEntry</type></link><!-- -->s
1087
 
</simpara></listitem></varlistentry>
1088
 
</variablelist><para role="since">Since 2.6</para></refsect2>
1089
 
<refsect2 id="GOptionParseFunc" role="function">
1090
 
<title>GOptionParseFunc ()</title>
1091
 
<indexterm zone="GOptionParseFunc"><primary sortas="OptionParseFunc">GOptionParseFunc</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            (*GOptionParseFunc)                 (<link linkend="GOptionContext">GOptionContext</link> *context,
1092
 
                                                         <link linkend="GOptionGroup">GOptionGroup</link> *group,
1093
 
                                                         <link linkend="gpointer">gpointer</link> data,
1094
 
                                                         <link linkend="GError">GError</link> **error);</programlisting>
1095
 
<para>
1096
 
The type of function that can be called before and after parsing.</para>
1097
 
<para>
1098
 
</para><variablelist role="params">
1099
 
<varlistentry><term><parameter>context</parameter>&#160;:</term>
1100
 
<listitem><simpara> The active <link linkend="GOptionContext"><type>GOptionContext</type></link>
1101
 
</simpara></listitem></varlistentry>
1102
 
<varlistentry><term><parameter>group</parameter>&#160;:</term>
1103
 
<listitem><simpara> The group to which the function belongs
1104
 
</simpara></listitem></varlistentry>
1105
 
<varlistentry><term><parameter>data</parameter>&#160;:</term>
1106
 
<listitem><simpara> User data added to the <link linkend="GOptionGroup"><type>GOptionGroup</type></link> containing the option when it
1107
 
 was created with <link linkend="g-option-group-new"><function>g_option_group_new()</function></link>
1108
 
</simpara></listitem></varlistentry>
1109
 
<varlistentry><term><parameter>error</parameter>&#160;:</term>
1110
 
<listitem><simpara> A return location for error details
1111
 
</simpara></listitem></varlistentry>
1112
 
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if the function completed successfully, <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> if an error 
1113
 
 occurred, in which case <parameter>error</parameter> should be set with <link linkend="g-set-error"><function>g_set_error()</function></link>
1114
 
</simpara></listitem></varlistentry>
1115
 
</variablelist></refsect2>
1116
 
<refsect2 id="g-option-group-set-parse-hooks" role="function" condition="since:2.6">
1117
 
<title>g_option_group_set_parse_hooks ()</title>
1118
 
<indexterm zone="g-option-group-set-parse-hooks" role="2.6"><primary sortas="option_group_set_parse_hooks">g_option_group_set_parse_hooks</primary></indexterm><programlisting><link linkend="void">void</link>                g_option_group_set_parse_hooks      (<link linkend="GOptionGroup">GOptionGroup</link> *group,
1119
 
                                                         <link linkend="GOptionParseFunc">GOptionParseFunc</link> pre_parse_func,
1120
 
                                                         <link linkend="GOptionParseFunc">GOptionParseFunc</link> post_parse_func);</programlisting>
1121
 
<para>
1122
 
Associates two functions with <parameter>group</parameter> which will be called 
1123
 
from <link linkend="g-option-context-parse"><function>g_option_context_parse()</function></link> before the first option is parsed
1124
 
and after the last option has been parsed, respectively.
1125
 
</para>
1126
 
<para>
1127
 
Note that the user data to be passed to <parameter>pre_parse_func</parameter> and
1128
 
<parameter>post_parse_func</parameter> can be specified when constructing the group
1129
 
with <link linkend="g-option-group-new"><function>g_option_group_new()</function></link>.</para>
1130
 
<para>
1131
 
</para><variablelist role="params">
1132
 
<varlistentry><term><parameter>group</parameter>&#160;:</term>
1133
 
<listitem><simpara> a <link linkend="GOptionGroup"><type>GOptionGroup</type></link>
1134
 
</simpara></listitem></varlistentry>
1135
 
<varlistentry><term><parameter>pre_parse_func</parameter>&#160;:</term>
1136
 
<listitem><simpara> a function to call before parsing, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
1137
 
</simpara></listitem></varlistentry>
1138
 
<varlistentry><term><parameter>post_parse_func</parameter>&#160;:</term>
1139
 
<listitem><simpara> a function to call after parsing, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
1140
 
</simpara></listitem></varlistentry>
1141
 
</variablelist><para role="since">Since 2.6</para></refsect2>
1142
 
<refsect2 id="GOptionErrorFunc" role="function">
1143
 
<title>GOptionErrorFunc ()</title>
1144
 
<indexterm zone="GOptionErrorFunc"><primary sortas="OptionErrorFunc">GOptionErrorFunc</primary></indexterm><programlisting><link linkend="void">void</link>                (*GOptionErrorFunc)                 (<link linkend="GOptionContext">GOptionContext</link> *context,
1145
 
                                                         <link linkend="GOptionGroup">GOptionGroup</link> *group,
1146
 
                                                         <link linkend="gpointer">gpointer</link> data,
1147
 
                                                         <link linkend="GError">GError</link> **error);</programlisting>
1148
 
<para>
1149
 
The type of function to be used as callback when a parse error occurs.</para>
1150
 
<para>
1151
 
</para><variablelist role="params">
1152
 
<varlistentry><term><parameter>context</parameter>&#160;:</term>
1153
 
<listitem><simpara> The active <link linkend="GOptionContext"><type>GOptionContext</type></link>
1154
 
</simpara></listitem></varlistentry>
1155
 
<varlistentry><term><parameter>group</parameter>&#160;:</term>
1156
 
<listitem><simpara> The group to which the function belongs
1157
 
</simpara></listitem></varlistentry>
1158
 
<varlistentry><term><parameter>data</parameter>&#160;:</term>
1159
 
<listitem><simpara> User data added to the <link linkend="GOptionGroup"><type>GOptionGroup</type></link> containing the option when it
1160
 
 was created with <link linkend="g-option-group-new"><function>g_option_group_new()</function></link>
1161
 
</simpara></listitem></varlistentry>
1162
 
<varlistentry><term><parameter>error</parameter>&#160;:</term>
1163
 
<listitem><simpara> The <link linkend="GError"><type>GError</type></link> containing details about the parse error
1164
 
</simpara></listitem></varlistentry>
1165
 
</variablelist></refsect2>
1166
 
<refsect2 id="g-option-group-set-error-hook" role="function" condition="since:2.6">
1167
 
<title>g_option_group_set_error_hook ()</title>
1168
 
<indexterm zone="g-option-group-set-error-hook" role="2.6"><primary sortas="option_group_set_error_hook">g_option_group_set_error_hook</primary></indexterm><programlisting><link linkend="void">void</link>                g_option_group_set_error_hook       (<link linkend="GOptionGroup">GOptionGroup</link> *group,
1169
 
                                                         <link linkend="GOptionErrorFunc">GOptionErrorFunc</link> error_func);</programlisting>
1170
 
<para>
1171
 
Associates a function with <parameter>group</parameter> which will be called 
1172
 
from <link linkend="g-option-context-parse"><function>g_option_context_parse()</function></link> when an error occurs.
1173
 
</para>
1174
 
<para>
1175
 
Note that the user data to be passed to <parameter>error_func</parameter> can be
1176
 
specified when constructing the group with <link linkend="g-option-group-new"><function>g_option_group_new()</function></link>.</para>
1177
 
<para>
1178
 
</para><variablelist role="params">
1179
 
<varlistentry><term><parameter>group</parameter>&#160;:</term>
1180
 
<listitem><simpara> a <link linkend="GOptionGroup"><type>GOptionGroup</type></link>
1181
 
</simpara></listitem></varlistentry>
1182
 
<varlistentry><term><parameter>error_func</parameter>&#160;:</term>
1183
 
<listitem><simpara> a function to call when an error occurs
1184
 
</simpara></listitem></varlistentry>
1185
 
</variablelist><para role="since">Since 2.6</para></refsect2>
1186
 
<refsect2 id="g-option-group-set-translate-func" role="function" condition="since:2.6">
1187
 
<title>g_option_group_set_translate_func ()</title>
1188
 
<indexterm zone="g-option-group-set-translate-func" role="2.6"><primary sortas="option_group_set_translate_func">g_option_group_set_translate_func</primary></indexterm><programlisting><link linkend="void">void</link>                g_option_group_set_translate_func   (<link linkend="GOptionGroup">GOptionGroup</link> *group,
1189
 
                                                         <link linkend="GTranslateFunc">GTranslateFunc</link> func,
1190
 
                                                         <link linkend="gpointer">gpointer</link> data,
1191
 
                                                         <link linkend="GDestroyNotify">GDestroyNotify</link> destroy_notify);</programlisting>
1192
 
<para>
1193
 
Sets the function which is used to translate user-visible
1194
 
strings, for <option>--help</option> output. Different
1195
 
groups can use different <link linkend="GTranslateFunc"><type>GTranslateFunc</type></link><!-- -->s. If <parameter>func</parameter>
1196
 
is <link linkend="NULL--CAPS"><literal>NULL</literal></link>, strings are not translated.
1197
 
</para>
1198
 
<para>
1199
 
If you are using <link linkend="gettext"><function>gettext()</function></link>, you only need to set the translation
1200
 
domain, see <link linkend="g-option-group-set-translation-domain"><function>g_option_group_set_translation_domain()</function></link>.</para>
1201
 
<para>
1202
 
</para><variablelist role="params">
1203
 
<varlistentry><term><parameter>group</parameter>&#160;:</term>
1204
 
<listitem><simpara> a <link linkend="GOptionGroup"><type>GOptionGroup</type></link>
1205
 
</simpara></listitem></varlistentry>
1206
 
<varlistentry><term><parameter>func</parameter>&#160;:</term>
1207
 
<listitem><simpara> the <link linkend="GTranslateFunc"><type>GTranslateFunc</type></link>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link> 
1208
 
</simpara></listitem></varlistentry>
1209
 
<varlistentry><term><parameter>data</parameter>&#160;:</term>
1210
 
<listitem><simpara> user data to pass to <parameter>func</parameter>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
1211
 
</simpara></listitem></varlistentry>
1212
 
<varlistentry><term><parameter>destroy_notify</parameter>&#160;:</term>
1213
 
<listitem><simpara> a function which gets called to free <parameter>data</parameter>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
1214
 
</simpara></listitem></varlistentry>
1215
 
</variablelist><para role="since">Since 2.6</para></refsect2>
1216
 
<refsect2 id="g-option-group-set-translation-domain" role="function" condition="since:2.6">
1217
 
<title>g_option_group_set_translation_domain ()</title>
1218
 
<indexterm zone="g-option-group-set-translation-domain" role="2.6"><primary sortas="option_group_set_translation_domain">g_option_group_set_translation_domain</primary></indexterm><programlisting><link linkend="void">void</link>                g_option_group_set_translation_domain
1219
 
                                                        (<link linkend="GOptionGroup">GOptionGroup</link> *group,
1220
 
                                                         const <link linkend="gchar">gchar</link> *domain);</programlisting>
1221
 
<para>
1222
 
A convenience function to use <link linkend="gettext"><function>gettext()</function></link> for translating
1223
 
user-visible strings.</para>
1224
 
<para>
1225
 
</para><variablelist role="params">
1226
 
<varlistentry><term><parameter>group</parameter>&#160;:</term>
1227
 
<listitem><simpara> a <link linkend="GOptionGroup"><type>GOptionGroup</type></link>
1228
 
</simpara></listitem></varlistentry>
1229
 
<varlistentry><term><parameter>domain</parameter>&#160;:</term>
1230
 
<listitem><simpara> the domain to use
1231
 
</simpara></listitem></varlistentry>
1232
 
</variablelist><para role="since">Since 2.6</para></refsect2>
1233
 
 
1234
 
</refsect1>
1235
 
 
1236
 
 
1237
 
 
1238
 
 
1239
 
</refentry>