9
9
<refname>Commandline option parser</refname>
10
10
<refpurpose>parses commandline options</refpurpose>
11
<!--[<xref linkend="desc" endterm="desc.title"/>]-->
14
<refsynopsisdiv role="synopsis">
13
<refsynopsisdiv id="glib-Commandline-option-parser.synopsis" role="synopsis">
15
14
<title role="synopsis.title">Synopsis</title>
19
18
#include <glib.h>
22
20
enum <link linkend="GOptionError">GOptionError</link>;
23
#define <link linkend="G-OPTION-ERROR:CAPS">G_OPTION_ERROR</link>
21
#define <link linkend="G-OPTION-ERROR--CAPS">G_OPTION_ERROR</link>
24
22
<link linkend="gboolean">gboolean</link> (<link linkend="GOptionArgFunc">*GOptionArgFunc</link>) (const <link linkend="gchar">gchar</link> *option_name,
25
23
const <link linkend="gchar">gchar</link> *value,
26
24
<link linkend="gpointer">gpointer</link> data,
27
25
<link linkend="GError">GError</link> **error);
28
26
<link linkend="GOptionContext">GOptionContext</link>;
29
<link linkend="GOptionContext">GOptionContext</link>* <link linkend="g-option-context-new">g_option_context_new</link> (const <link linkend="gchar">gchar</link> *parameter_string);
27
<link linkend="GOptionContext">GOptionContext</link> * <link linkend="g-option-context-new">g_option_context_new</link> (const <link linkend="gchar">gchar</link> *parameter_string);
30
28
<link linkend="void">void</link> <link linkend="g-option-context-set-summary">g_option_context_set_summary</link> (<link linkend="GOptionContext">GOptionContext</link> *context,
31
29
const <link linkend="gchar">gchar</link> *summary);
32
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);
30
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);
33
31
<link linkend="void">void</link> <link linkend="g-option-context-set-description">g_option_context_set_description</link> (<link linkend="GOptionContext">GOptionContext</link> *context,
34
32
const <link linkend="gchar">gchar</link> *description);
35
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);
36
const <link linkend="gchar">gchar</link>* (<link linkend="GTranslateFunc">*GTranslateFunc</link>) (const <link linkend="gchar">gchar</link> *str,
33
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);
34
const <link linkend="gchar">gchar</link> * (<link linkend="GTranslateFunc">*GTranslateFunc</link>) (const <link linkend="gchar">gchar</link> *str,
37
35
<link linkend="gpointer">gpointer</link> data);
38
36
<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,
39
37
<link linkend="GTranslateFunc">GTranslateFunc</link> func,
134
129
Long options are prefixed by two consecutive dashes.
135
130
</para></listitem>
137
Options can have an extra argument, which can be a number, a string or a
138
filename. For long options, the extra argument can be appended with an
132
Options can have an extra argument, which can be a number, a string or a
133
filename. For long options, the extra argument can be appended with an
139
134
equals sign after the option name.
140
135
</para></listitem>
142
137
Non-option arguments are returned to the application as rest arguments.
143
138
</para></listitem>
145
An argument consisting solely of two dashes turns off further parsing,
146
any remaining arguments (even those starting with a dash) are returned
140
An argument consisting solely of two dashes turns off further parsing,
141
any remaining arguments (even those starting with a dash) are returned
147
142
to the application as rest arguments.
148
143
</para></listitem>
153
Another important feature of GOption is that it can automatically generate
154
nicely formatted help output. Unless it is explicitly turned off with
155
<link linkend="g-option-context-set-help-enabled"><function>g_option_context_set_help_enabled()</function></link>, GOption will recognize the
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
156
150
<option>--help</option>, <option>-?</option>, <option>--help-all</option>
157
and <option>--help-</option><replaceable>groupname</replaceable> options
158
(where <replaceable>groupname</replaceable> is the name of a <link linkend="GOptionGroup"><type>GOptionGroup</type></link>)
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>)
159
153
and write a text similar to the one shown in the following example to stdout.
162
155
<informalexample><screen>
164
157
testtreemodel [OPTION...] - test tree model performance
167
159
-?, --help Show help options
168
160
--help-all Show all help options
169
161
--help-gtk Show GTK+ Options
171
162
Application Options:
172
163
-r, --repeats=N Average over N repetitions
173
164
-m, --max-size=M Test up to 2^M items
174
165
--display=DISPLAY X display to use
175
166
-v, --verbose Be verbose
176
-b, --beep Beep when done
167
-b, --beep Beep when done
177
168
--rand Randomize the data
178
169
</screen></informalexample>
181
171
GOption groups options in <link linkend="GOptionGroup"><type>GOptionGroup</type></link><!-- -->s, which makes it easy to
182
172
incorporate options from multiple sources. The intended use for this is
249
232
Error codes returned by option parsing.
250
233
</para><variablelist role="enum">
252
<term><anchor id="G-OPTION-ERROR-UNKNOWN-OPTION:CAPS" role="constant"/><literal>G_OPTION_ERROR_UNKNOWN_OPTION</literal></term>
234
<varlistentry id="G-OPTION-ERROR-UNKNOWN-OPTION--CAPS" role="constant">
235
<term><literal>G_OPTION_ERROR_UNKNOWN_OPTION</literal></term>
253
236
<listitem><simpara>An option was not known to the parser.
254
237
This error will only be reported, if the parser hasn't been instructed
255
238
to ignore unknown options, see <link linkend="g-option-context-set-ignore-unknown-options"><function>g_option_context_set_ignore_unknown_options()</function></link>.
256
239
</simpara></listitem>
259
<term><anchor id="G-OPTION-ERROR-BAD-VALUE:CAPS" role="constant"/><literal>G_OPTION_ERROR_BAD_VALUE</literal></term>
241
<varlistentry id="G-OPTION-ERROR-BAD-VALUE--CAPS" role="constant">
242
<term><literal>G_OPTION_ERROR_BAD_VALUE</literal></term>
260
243
<listitem><simpara>A value couldn't be parsed.
261
244
</simpara></listitem>
264
<term><anchor id="G-OPTION-ERROR-FAILED:CAPS" role="constant"/><literal>G_OPTION_ERROR_FAILED</literal></term>
246
<varlistentry id="G-OPTION-ERROR-FAILED--CAPS" role="constant">
247
<term><literal>G_OPTION_ERROR_FAILED</literal></term>
265
248
<listitem><simpara>A <link linkend="GOptionArgFunc"><type>GOptionArgFunc</type></link> callback failed.
267
249
</simpara></listitem>
269
251
</variablelist></refsect2>
271
<title><anchor id="G-OPTION-ERROR:CAPS" role="macro"/>G_OPTION_ERROR</title>
272
<indexterm><primary>G_OPTION_ERROR</primary></indexterm><programlisting>#define G_OPTION_ERROR (g_option_error_quark ())
252
<refsect2 id="G-OPTION-ERROR--CAPS" role="macro">
253
<title>G_OPTION_ERROR</title>
254
<indexterm zone="G-OPTION-ERROR--CAPS"><primary sortas="G_OPTION_ERROR">G_OPTION_ERROR</primary></indexterm><programlisting>#define G_OPTION_ERROR (g_option_error_quark ())
273
255
</programlisting>
275
257
Error domain for option parsing. Errors in this domain will
276
be from the <link linkend="GOptionError"><type>GOptionError</type></link> enumeration. See <link linkend="GError"><type>GError</type></link> for information on
258
be from the <link linkend="GOptionError"><type>GOptionError</type></link> enumeration. See <link linkend="GError"><type>GError</type></link> for information on
278
260
</para></refsect2>
280
<title><anchor id="GOptionArgFunc" role="function"/>GOptionArgFunc ()</title>
281
<indexterm><primary>GOptionArgFunc</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> (*GOptionArgFunc) (const <link linkend="gchar">gchar</link> *option_name,
261
<refsect2 id="GOptionArgFunc" role="function">
262
<title>GOptionArgFunc ()</title>
263
<indexterm zone="GOptionArgFunc"><primary sortas="GOptionArgFunc">GOptionArgFunc</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> (*GOptionArgFunc) (const <link linkend="gchar">gchar</link> *option_name,
282
264
const <link linkend="gchar">gchar</link> *value,
283
265
<link linkend="gpointer">gpointer</link> data,
284
266
<link linkend="GError">GError</link> **error);</programlisting>
286
The type of function to be passed as callback for <link linkend="G-OPTION-ARG-CALLBACK:CAPS"><literal>G_OPTION_ARG_CALLBACK</literal></link>
268
The type of function to be passed as callback for <link linkend="G-OPTION-ARG-CALLBACK--CAPS"><literal>G_OPTION_ARG_CALLBACK</literal></link>
288
270
</para><variablelist role="params">
289
<varlistentry><term><parameter>option_name</parameter> :</term>
271
<varlistentry><term><parameter>option_name</parameter> :</term>
290
272
<listitem><simpara>The name of the option being parsed. This will be either a
291
273
single dash followed by a single letter (for a short name) or two dashes
292
274
followed by a long option name.
293
275
</simpara></listitem></varlistentry>
294
<varlistentry><term><parameter>value</parameter> :</term>
276
<varlistentry><term><parameter>value</parameter> :</term>
295
277
<listitem><simpara>The value to be parsed.
296
278
</simpara></listitem></varlistentry>
297
<varlistentry><term><parameter>data</parameter> :</term>
279
<varlistentry><term><parameter>data</parameter> :</term>
298
280
<listitem><simpara>User data added to the <link linkend="GOptionGroup"><type>GOptionGroup</type></link> containing the option when it
299
281
was created with <link linkend="g-option-group-new"><function>g_option_group_new()</function></link>
300
282
</simpara></listitem></varlistentry>
301
<varlistentry><term><parameter>error</parameter> :</term>
302
<listitem><simpara>A return location for errors. The error code <link linkend="G-OPTION-ERROR-FAILED:CAPS"><literal>G_OPTION_ERROR_FAILED</literal></link>
283
<varlistentry><term><parameter>error</parameter> :</term>
284
<listitem><simpara>A return location for errors. The error code <link linkend="G-OPTION-ERROR-FAILED--CAPS"><literal>G_OPTION_ERROR_FAILED</literal></link>
303
285
is intended to be used for errors in <link linkend="GOptionArgFunc"><type>GOptionArgFunc</type></link> callbacks.
304
286
</simpara></listitem></varlistentry>
305
<varlistentry><term><emphasis>Returns</emphasis> :</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
287
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>%TRUE if the option was successfully parsed, <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> if an error
306
288
occurred, in which case <parameter>error</parameter> should be set with <link linkend="g-set-error"><function>g_set_error()</function></link>
309
289
</simpara></listitem></varlistentry>
310
290
</variablelist></refsect2>
312
<title><anchor id="GOptionContext" role="struct"/>GOptionContext</title>
313
<indexterm><primary>GOptionContext</primary></indexterm><programlisting>typedef struct _GOptionContext GOptionContext;</programlisting>
291
<refsect2 id="GOptionContext" role="struct">
292
<title>GOptionContext</title>
293
<indexterm zone="GOptionContext"><primary sortas="GOptionContext">GOptionContext</primary></indexterm><programlisting>typedef struct _GOptionContext GOptionContext;</programlisting>
315
295
A <structname>GOptionContext</structname> struct defines which options
316
are accepted by the commandline option parser. The struct has only private
296
are accepted by the commandline option parser. The struct has only private
317
297
fields and should not be directly accessed.
318
298
</para></refsect2>
320
<title><anchor id="g-option-context-new" role="function" condition="since:2.6"/>g_option_context_new ()</title>
321
<indexterm role="2.6"><primary>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>
299
<refsect2 id="g-option-context-new" role="function" condition="since:2.6">
300
<title>g_option_context_new ()</title>
301
<indexterm zone="g-option-context-new" role="2.6"><primary sortas="g_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>
323
303
Creates a new option context.
343
323
function set with <link linkend="g-option-context-set-translate-func"><function>g_option_context_set_translate_func()</function></link>, so
344
324
it should normally be passed untranslated.</para>
347
326
</para><variablelist role="params">
348
<varlistentry><term><parameter>parameter_string</parameter> :</term>
327
<varlistentry><term><parameter>parameter_string</parameter> :</term>
349
328
<listitem><simpara> a string which is displayed in
350
329
the first line of <option>--help</option> output, after the
352
331
<literal><replaceable>programname</replaceable> [OPTION...]</literal>
353
332
</simpara></listitem></varlistentry>
354
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a newly created <link linkend="GOptionContext"><type>GOptionContext</type></link>, which must be
333
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a newly created <link linkend="GOptionContext"><type>GOptionContext</type></link>, which must be
355
334
freed with <link linkend="g-option-context-free"><function>g_option_context_free()</function></link> after use.
357
336
</simpara></listitem></varlistentry>
358
</variablelist><para role="since">Since 2.6
361
<title><anchor id="g-option-context-set-summary" role="function" condition="since:2.12"/>g_option_context_set_summary ()</title>
362
<indexterm role="2.12"><primary>g_option_context_set_summary</primary></indexterm><programlisting><link linkend="void">void</link> g_option_context_set_summary (<link linkend="GOptionContext">GOptionContext</link> *context,
337
</variablelist><para role="since">Since 2.6</para></refsect2>
338
<refsect2 id="g-option-context-set-summary" role="function" condition="since:2.12">
339
<title>g_option_context_set_summary ()</title>
340
<indexterm zone="g-option-context-set-summary" role="2.12"><primary sortas="g_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,
363
341
const <link linkend="gchar">gchar</link> *summary);</programlisting>
365
343
Adds a string to be displayed in <option>--help</option> output
370
348
Note that the summary is translated (see
371
349
<link linkend="g-option-context-set-translate-func"><function>g_option_context_set_translate_func()</function></link>, <link linkend="g-option-context-set-translation-domain"><function>g_option_context_set_translation_domain()</function></link>).</para>
374
351
</para><variablelist role="params">
375
<varlistentry><term><parameter>context</parameter> :</term>
352
<varlistentry><term><parameter>context</parameter> :</term>
376
353
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
377
354
</simpara></listitem></varlistentry>
378
<varlistentry><term><parameter>summary</parameter> :</term>
355
<varlistentry><term><parameter>summary</parameter> :</term>
379
356
<listitem><simpara> a string to be shown in <option>--help</option> output
380
before the list of options, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>
357
before the list of options, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
381
358
</simpara></listitem></varlistentry>
382
</variablelist><para role="since">Since 2.12
385
<title><anchor id="g-option-context-get-summary" role="function" condition="since:2.12"/>g_option_context_get_summary ()</title>
386
<indexterm role="2.12"><primary>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>
359
</variablelist><para role="since">Since 2.12</para></refsect2>
360
<refsect2 id="g-option-context-get-summary" role="function" condition="since:2.12">
361
<title>g_option_context_get_summary ()</title>
362
<indexterm zone="g-option-context-get-summary" role="2.12"><primary sortas="g_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>
388
364
Returns the summary. See <link linkend="g-option-context-set-summary"><function>g_option_context_set_summary()</function></link>.</para>
391
366
</para><variablelist role="params">
392
<varlistentry><term><parameter>context</parameter> :</term>
367
<varlistentry><term><parameter>context</parameter> :</term>
393
368
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
394
369
</simpara></listitem></varlistentry>
395
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the summary
370
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the summary
397
372
</simpara></listitem></varlistentry>
398
</variablelist><para role="since">Since 2.12
401
<title><anchor id="g-option-context-set-description" role="function" condition="since:2.12"/>g_option_context_set_description ()</title>
402
<indexterm role="2.12"><primary>g_option_context_set_description</primary></indexterm><programlisting><link linkend="void">void</link> g_option_context_set_description (<link linkend="GOptionContext">GOptionContext</link> *context,
373
</variablelist><para role="since">Since 2.12</para></refsect2>
374
<refsect2 id="g-option-context-set-description" role="function" condition="since:2.12">
375
<title>g_option_context_set_description ()</title>
376
<indexterm zone="g-option-context-set-description" role="2.12"><primary sortas="g_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,
403
377
const <link linkend="gchar">gchar</link> *description);</programlisting>
405
379
Adds a string to be displayed in <option>--help</option> output
410
384
Note that the summary is translated (see
411
385
<link linkend="g-option-context-set-translate-func"><function>g_option_context_set_translate_func()</function></link>).</para>
414
387
</para><variablelist role="params">
415
<varlistentry><term><parameter>context</parameter> :</term>
388
<varlistentry><term><parameter>context</parameter> :</term>
416
389
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
417
390
</simpara></listitem></varlistentry>
418
<varlistentry><term><parameter>description</parameter> :</term>
391
<varlistentry><term><parameter>description</parameter> :</term>
419
392
<listitem><simpara> a string to be shown in <option>--help</option> output
420
after the list of options, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>
393
after the list of options, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
421
394
</simpara></listitem></varlistentry>
422
</variablelist><para role="since">Since 2.12
425
<title><anchor id="g-option-context-get-description" role="function" condition="since:2.12"/>g_option_context_get_description ()</title>
426
<indexterm role="2.12"><primary>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>
395
</variablelist><para role="since">Since 2.12</para></refsect2>
396
<refsect2 id="g-option-context-get-description" role="function" condition="since:2.12">
397
<title>g_option_context_get_description ()</title>
398
<indexterm zone="g-option-context-get-description" role="2.12"><primary sortas="g_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>
428
400
Returns the description. See <link linkend="g-option-context-set-description"><function>g_option_context_set_description()</function></link>.</para>
431
402
</para><variablelist role="params">
432
<varlistentry><term><parameter>context</parameter> :</term>
403
<varlistentry><term><parameter>context</parameter> :</term>
433
404
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
434
405
</simpara></listitem></varlistentry>
435
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the description
406
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the description
437
408
</simpara></listitem></varlistentry>
438
</variablelist><para role="since">Since 2.12
441
<title><anchor id="GTranslateFunc" role="function"/>GTranslateFunc ()</title>
442
<indexterm><primary>GTranslateFunc</primary></indexterm><programlisting>const <link linkend="gchar">gchar</link>* (*GTranslateFunc) (const <link linkend="gchar">gchar</link> *str,
409
</variablelist><para role="since">Since 2.12</para></refsect2>
410
<refsect2 id="GTranslateFunc" role="function">
411
<title>GTranslateFunc ()</title>
412
<indexterm zone="GTranslateFunc"><primary sortas="GTranslateFunc">GTranslateFunc</primary></indexterm><programlisting>const <link linkend="gchar">gchar</link> * (*GTranslateFunc) (const <link linkend="gchar">gchar</link> *str,
443
413
<link linkend="gpointer">gpointer</link> data);</programlisting>
445
415
The type of functions which are used to translate user-visible
446
416
strings, for <option>--help</option> output.
447
417
</para><variablelist role="params">
448
<varlistentry><term><parameter>str</parameter> :</term>
418
<varlistentry><term><parameter>str</parameter> :</term>
449
419
<listitem><simpara>the untranslated string
450
420
</simpara></listitem></varlistentry>
451
<varlistentry><term><parameter>data</parameter> :</term>
421
<varlistentry><term><parameter>data</parameter> :</term>
452
422
<listitem><simpara>user data specified when installing the function, e.g.
453
423
in <link linkend="g-option-group-set-translate-func"><function>g_option_group_set_translate_func()</function></link>
454
424
</simpara></listitem></varlistentry>
455
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>a translation of the string for the current locale.
425
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>a translation of the string for the current locale.
456
426
The returned string is owned by GLib and must not be freed.
459
427
</simpara></listitem></varlistentry>
460
428
</variablelist></refsect2>
462
<title><anchor id="g-option-context-set-translate-func" role="function" condition="since:2.12"/>g_option_context_set_translate_func ()</title>
463
<indexterm role="2.12"><primary>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,
429
<refsect2 id="g-option-context-set-translate-func" role="function" condition="since:2.12">
430
<title>g_option_context_set_translate_func ()</title>
431
<indexterm zone="g-option-context-set-translate-func" role="2.12"><primary sortas="g_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,
464
432
<link linkend="GTranslateFunc">GTranslateFunc</link> func,
465
433
<link linkend="gpointer">gpointer</link> data,
466
434
<link linkend="GDestroyNotify">GDestroyNotify</link> destroy_notify);</programlisting>
468
436
Sets the function which is used to translate the contexts
469
437
user-visible strings, for <option>--help</option> output.
470
If <parameter>func</parameter> is <link linkend="NULL:CAPS"><literal>NULL</literal></link>, strings are not translated.
438
If <parameter>func</parameter> is <link linkend="NULL--CAPS"><literal>NULL</literal></link>, strings are not translated.
473
441
Note that option groups have their own translation functions,
479
447
If you are using <link linkend="gettext"><function>gettext()</function></link>, you only need to set the translation
480
448
domain, see <link linkend="g-context-group-set-translation-domain"><function>g_context_group_set_translation_domain()</function></link>.</para>
483
450
</para><variablelist role="params">
484
<varlistentry><term><parameter>context</parameter> :</term>
451
<varlistentry><term><parameter>context</parameter> :</term>
485
452
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
486
453
</simpara></listitem></varlistentry>
487
<varlistentry><term><parameter>func</parameter> :</term>
488
<listitem><simpara> the <link linkend="GTranslateFunc"><type>GTranslateFunc</type></link>, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>
489
</simpara></listitem></varlistentry>
490
<varlistentry><term><parameter>data</parameter> :</term>
491
<listitem><simpara> user data to pass to <parameter>func</parameter>, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>
492
</simpara></listitem></varlistentry>
493
<varlistentry><term><parameter>destroy_notify</parameter> :</term>
494
<listitem><simpara> a function which gets called to free <parameter>data</parameter>, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>
495
</simpara></listitem></varlistentry>
496
</variablelist><para role="since">Since 2.12
499
<title><anchor id="g-option-context-set-translation-domain" role="function" condition="since:2.12"/>g_option_context_set_translation_domain ()</title>
500
<indexterm role="2.12"><primary>g_option_context_set_translation_domain</primary></indexterm><programlisting><link linkend="void">void</link> g_option_context_set_translation_domain
454
<varlistentry><term><parameter>func</parameter> :</term>
455
<listitem><simpara> the <link linkend="GTranslateFunc"><type>GTranslateFunc</type></link>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
456
</simpara></listitem></varlistentry>
457
<varlistentry><term><parameter>data</parameter> :</term>
458
<listitem><simpara> user data to pass to <parameter>func</parameter>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
459
</simpara></listitem></varlistentry>
460
<varlistentry><term><parameter>destroy_notify</parameter> :</term>
461
<listitem><simpara> a function which gets called to free <parameter>data</parameter>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
462
</simpara></listitem></varlistentry>
463
</variablelist><para role="since">Since 2.12</para></refsect2>
464
<refsect2 id="g-option-context-set-translation-domain" role="function" condition="since:2.12">
465
<title>g_option_context_set_translation_domain ()</title>
466
<indexterm zone="g-option-context-set-translation-domain" role="2.12"><primary sortas="g_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
501
467
(<link linkend="GOptionContext">GOptionContext</link> *context,
502
468
const <link linkend="gchar">gchar</link> *domain);</programlisting>
504
470
A convenience function to use <link linkend="gettext"><function>gettext()</function></link> for translating
505
471
user-visible strings.</para>
508
473
</para><variablelist role="params">
509
<varlistentry><term><parameter>context</parameter> :</term>
474
<varlistentry><term><parameter>context</parameter> :</term>
510
475
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
511
476
</simpara></listitem></varlistentry>
512
<varlistentry><term><parameter>domain</parameter> :</term>
477
<varlistentry><term><parameter>domain</parameter> :</term>
513
478
<listitem><simpara> the domain to use
514
479
</simpara></listitem></varlistentry>
515
</variablelist><para role="since">Since 2.12
518
<title><anchor id="g-option-context-free" role="function" condition="since:2.6"/>g_option_context_free ()</title>
519
<indexterm role="2.6"><primary>g_option_context_free</primary></indexterm><programlisting><link linkend="void">void</link> g_option_context_free (<link linkend="GOptionContext">GOptionContext</link> *context);</programlisting>
480
</variablelist><para role="since">Since 2.12</para></refsect2>
481
<refsect2 id="g-option-context-free" role="function" condition="since:2.6">
482
<title>g_option_context_free ()</title>
483
<indexterm zone="g-option-context-free" role="2.6"><primary sortas="g_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>
521
485
Frees context and all the groups which have been
522
486
added to it.</para>
525
488
</para><variablelist role="params">
526
<varlistentry><term><parameter>context</parameter> :</term>
489
<varlistentry><term><parameter>context</parameter> :</term>
527
490
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
528
491
</simpara></listitem></varlistentry>
529
</variablelist><para role="since">Since 2.6
532
<title><anchor id="g-option-context-parse" role="function" condition="since:2.6"/>g_option_context_parse ()</title>
533
<indexterm role="2.6"><primary>g_option_context_parse</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> g_option_context_parse (<link linkend="GOptionContext">GOptionContext</link> *context,
492
</variablelist><para role="since">Since 2.6</para></refsect2>
493
<refsect2 id="g-option-context-parse" role="function" condition="since:2.6">
494
<title>g_option_context_parse ()</title>
495
<indexterm zone="g-option-context-parse" role="2.6"><primary sortas="g_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,
534
496
<link linkend="gint">gint</link> *argc,
535
497
<link linkend="gchar">gchar</link> ***argv,
536
498
<link linkend="GError">GError</link> **error);</programlisting>
561
523
automatic character set conversion of string and filename
562
524
arguments.</para>
565
526
</para><variablelist role="params">
566
<varlistentry><term><parameter>context</parameter> :</term>
527
<varlistentry><term><parameter>context</parameter> :</term>
567
528
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
568
529
</simpara></listitem></varlistentry>
569
<varlistentry><term><parameter>argc</parameter> :</term>
530
<varlistentry><term><parameter>argc</parameter> :</term>
570
531
<listitem><simpara> a pointer to the number of command line arguments
571
532
</simpara></listitem></varlistentry>
572
<varlistentry><term><parameter>argv</parameter> :</term>
533
<varlistentry><term><parameter>argv</parameter> :</term>
573
534
<listitem><simpara> a pointer to the array of command line arguments
574
535
</simpara></listitem></varlistentry>
575
<varlistentry><term><parameter>error</parameter> :</term>
536
<varlistentry><term><parameter>error</parameter> :</term>
576
537
<listitem><simpara> a return location for errors
577
538
</simpara></listitem></varlistentry>
578
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the parsing was successful,
579
<link linkend="FALSE:CAPS"><literal>FALSE</literal></link> if an error occurred
539
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if the parsing was successful,
540
<link linkend="FALSE--CAPS"><literal>FALSE</literal></link> if an error occurred
581
542
</simpara></listitem></varlistentry>
582
</variablelist><para role="since">Since 2.6
585
<title><anchor id="g-option-context-set-help-enabled" role="function" condition="since:2.6"/>g_option_context_set_help_enabled ()</title>
586
<indexterm role="2.6"><primary>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,
543
</variablelist><para role="since">Since 2.6</para></refsect2>
544
<refsect2 id="g-option-context-set-help-enabled" role="function" condition="since:2.6">
545
<title>g_option_context_set_help_enabled ()</title>
546
<indexterm zone="g-option-context-set-help-enabled" role="2.6"><primary sortas="g_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,
587
547
<link linkend="gboolean">gboolean</link> help_enabled);</programlisting>
589
549
Enables or disables automatic generation of <option>--help</option>
592
552
and <option>--help-</option><replaceable>groupname</replaceable> and creates
593
553
suitable output to stdout.</para>
596
555
</para><variablelist role="params">
597
<varlistentry><term><parameter>context</parameter> :</term>
556
<varlistentry><term><parameter>context</parameter> :</term>
598
557
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
599
558
</simpara></listitem></varlistentry>
600
<varlistentry><term><parameter>help_enabled</parameter> :</term>
601
<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
559
<varlistentry><term><parameter>help_enabled</parameter> :</term>
560
<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
602
561
</simpara></listitem></varlistentry>
603
</variablelist><para role="since">Since 2.6
606
<title><anchor id="g-option-context-get-help-enabled" role="function" condition="since:2.6"/>g_option_context_get_help_enabled ()</title>
607
<indexterm role="2.6"><primary>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>
562
</variablelist><para role="since">Since 2.6</para></refsect2>
563
<refsect2 id="g-option-context-get-help-enabled" role="function" condition="since:2.6">
564
<title>g_option_context_get_help_enabled ()</title>
565
<indexterm zone="g-option-context-get-help-enabled" role="2.6"><primary sortas="g_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>
609
567
Returns whether automatic <option>--help</option> generation
610
568
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>
613
570
</para><variablelist role="params">
614
<varlistentry><term><parameter>context</parameter> :</term>
571
<varlistentry><term><parameter>context</parameter> :</term>
615
572
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
616
573
</simpara></listitem></varlistentry>
617
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if automatic help generation is turned on.
574
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if automatic help generation is turned on.
619
576
</simpara></listitem></varlistentry>
620
</variablelist><para role="since">Since 2.6
623
<title><anchor id="g-option-context-set-ignore-unknown-options" role="function" condition="since:2.6"/>g_option_context_set_ignore_unknown_options ()</title>
624
<indexterm role="2.6"><primary>g_option_context_set_ignore_unknown_options</primary></indexterm><programlisting><link linkend="void">void</link> g_option_context_set_ignore_unknown_options
577
</variablelist><para role="since">Since 2.6</para></refsect2>
578
<refsect2 id="g-option-context-set-ignore-unknown-options" role="function" condition="since:2.6">
579
<title>g_option_context_set_ignore_unknown_options ()</title>
580
<indexterm zone="g-option-context-set-ignore-unknown-options" role="2.6"><primary sortas="g_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
625
581
(<link linkend="GOptionContext">GOptionContext</link> *context,
626
582
<link linkend="gboolean">gboolean</link> ignore_unknown);</programlisting>
634
590
which don't start with a dash). But note that GOption cannot reliably
635
591
determine whether a non-option belongs to a preceding unknown option.</para>
638
593
</para><variablelist role="params">
639
<varlistentry><term><parameter>context</parameter> :</term>
594
<varlistentry><term><parameter>context</parameter> :</term>
640
595
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
641
596
</simpara></listitem></varlistentry>
642
<varlistentry><term><parameter>ignore_unknown</parameter> :</term>
643
<listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> to ignore unknown options, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> to produce
597
<varlistentry><term><parameter>ignore_unknown</parameter> :</term>
598
<listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> to ignore unknown options, <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> to produce
644
599
an error when unknown options are met
645
600
</simpara></listitem></varlistentry>
646
</variablelist><para role="since">Since 2.6
649
<title><anchor id="g-option-context-get-ignore-unknown-options" role="function" condition="since:2.6"/>g_option_context_get_ignore_unknown_options ()</title>
650
<indexterm role="2.6"><primary>g_option_context_get_ignore_unknown_options</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> g_option_context_get_ignore_unknown_options
601
</variablelist><para role="since">Since 2.6</para></refsect2>
602
<refsect2 id="g-option-context-get-ignore-unknown-options" role="function" condition="since:2.6">
603
<title>g_option_context_get_ignore_unknown_options ()</title>
604
<indexterm zone="g-option-context-get-ignore-unknown-options" role="2.6"><primary sortas="g_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
651
605
(<link linkend="GOptionContext">GOptionContext</link> *context);</programlisting>
653
607
Returns whether unknown options are ignored or not. See
654
608
<link linkend="g-option-context-set-ignore-unknown-options"><function>g_option_context_set_ignore_unknown_options()</function></link>.</para>
657
610
</para><variablelist role="params">
658
<varlistentry><term><parameter>context</parameter> :</term>
611
<varlistentry><term><parameter>context</parameter> :</term>
659
612
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
660
613
</simpara></listitem></varlistentry>
661
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if unknown options are ignored.
614
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if unknown options are ignored.
663
616
</simpara></listitem></varlistentry>
664
</variablelist><para role="since">Since 2.6
667
<title><anchor id="g-option-context-get-help" role="function" condition="since:2.14"/>g_option_context_get_help ()</title>
668
<indexterm role="2.14"><primary>g_option_context_get_help</primary></indexterm><programlisting><link linkend="gchar">gchar</link>* g_option_context_get_help (<link linkend="GOptionContext">GOptionContext</link> *context,
617
</variablelist><para role="since">Since 2.6</para></refsect2>
618
<refsect2 id="g-option-context-get-help" role="function" condition="since:2.14">
619
<title>g_option_context_get_help ()</title>
620
<indexterm zone="g-option-context-get-help" role="2.14"><primary sortas="g_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,
669
621
<link linkend="gboolean">gboolean</link> main_help,
670
622
<link linkend="GOptionGroup">GOptionGroup</link> *group);</programlisting>
677
629
To obtain the help text for an option group, call
678
630
<literal>g_option_context_get_help (context, FALSE, group)</literal>.</para>
681
632
</para><variablelist role="params">
682
<varlistentry><term><parameter>context</parameter> :</term>
633
<varlistentry><term><parameter>context</parameter> :</term>
683
634
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
684
635
</simpara></listitem></varlistentry>
685
<varlistentry><term><parameter>main_help</parameter> :</term>
686
<listitem><simpara> if <link linkend="TRUE:CAPS"><literal>TRUE</literal></link>, only include the main group
687
</simpara></listitem></varlistentry>
688
<varlistentry><term><parameter>group</parameter> :</term>
689
<listitem><simpara> the <link linkend="GOptionGroup"><type>GOptionGroup</type></link> to create help for, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>
690
</simpara></listitem></varlistentry>
691
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> A newly allocated string containing the help text
636
<varlistentry><term><parameter>main_help</parameter> :</term>
637
<listitem><simpara> if <link linkend="TRUE--CAPS"><literal>TRUE</literal></link>, only include the main group
638
</simpara></listitem></varlistentry>
639
<varlistentry><term><parameter>group</parameter> :</term>
640
<listitem><simpara> the <link linkend="GOptionGroup"><type>GOptionGroup</type></link> to create help for, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
641
</simpara></listitem></varlistentry>
642
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> A newly allocated string containing the help text
693
644
</simpara></listitem></varlistentry>
694
</variablelist><para role="since">Since 2.14
697
<title><anchor id="GOptionArg" role="enum"/>enum GOptionArg</title>
698
<indexterm><primary>GOptionArg</primary></indexterm><programlisting>typedef enum
645
</variablelist><para role="since">Since 2.14</para></refsect2>
646
<refsect2 id="GOptionArg" role="enum">
647
<title>enum GOptionArg</title>
648
<indexterm zone="GOptionArg"><primary sortas="GOptionArg">GOptionArg</primary></indexterm><programlisting>typedef enum
700
650
G_OPTION_ARG_NONE,
701
651
G_OPTION_ARG_STRING,
715
665
<option>-x arg</option>, with a long option: <option>--name arg</option>
716
666
or combined in a single argument: <option>--name=arg</option>.
717
667
</para><variablelist role="enum">
719
<term><anchor id="G-OPTION-ARG-NONE:CAPS" role="constant"/><literal>G_OPTION_ARG_NONE</literal></term>
668
<varlistentry id="G-OPTION-ARG-NONE--CAPS" role="constant">
669
<term><literal>G_OPTION_ARG_NONE</literal></term>
720
670
<listitem><simpara>No extra argument. This is useful for simple flags.
721
671
</simpara></listitem>
724
<term><anchor id="G-OPTION-ARG-STRING:CAPS" role="constant"/><literal>G_OPTION_ARG_STRING</literal></term>
673
<varlistentry id="G-OPTION-ARG-STRING--CAPS" role="constant">
674
<term><literal>G_OPTION_ARG_STRING</literal></term>
725
675
<listitem><simpara>The option takes a string argument.
726
676
</simpara></listitem>
729
<term><anchor id="G-OPTION-ARG-INT:CAPS" role="constant"/><literal>G_OPTION_ARG_INT</literal></term>
678
<varlistentry id="G-OPTION-ARG-INT--CAPS" role="constant">
679
<term><literal>G_OPTION_ARG_INT</literal></term>
730
680
<listitem><simpara>The option takes an integer argument.
731
681
</simpara></listitem>
734
<term><anchor id="G-OPTION-ARG-CALLBACK:CAPS" role="constant"/><literal>G_OPTION_ARG_CALLBACK</literal></term>
683
<varlistentry id="G-OPTION-ARG-CALLBACK--CAPS" role="constant">
684
<term><literal>G_OPTION_ARG_CALLBACK</literal></term>
735
685
<listitem><simpara>The option provides a callback to parse the
737
687
</simpara></listitem>
740
<term><anchor id="G-OPTION-ARG-FILENAME:CAPS" role="constant"/><literal>G_OPTION_ARG_FILENAME</literal></term>
689
<varlistentry id="G-OPTION-ARG-FILENAME--CAPS" role="constant">
690
<term><literal>G_OPTION_ARG_FILENAME</literal></term>
741
691
<listitem><simpara>The option takes a filename as argument.
742
692
</simpara></listitem>
745
<term><anchor id="G-OPTION-ARG-STRING-ARRAY:CAPS" role="constant"/><literal>G_OPTION_ARG_STRING_ARRAY</literal></term>
694
<varlistentry id="G-OPTION-ARG-STRING-ARRAY--CAPS" role="constant">
695
<term><literal>G_OPTION_ARG_STRING_ARRAY</literal></term>
746
696
<listitem><simpara>The option takes a string argument, multiple
747
697
uses of the option are collected into an array of strings.
748
698
</simpara></listitem>
751
<term><anchor id="G-OPTION-ARG-FILENAME-ARRAY:CAPS" role="constant"/><literal>G_OPTION_ARG_FILENAME_ARRAY</literal></term>
700
<varlistentry id="G-OPTION-ARG-FILENAME-ARRAY--CAPS" role="constant">
701
<term><literal>G_OPTION_ARG_FILENAME_ARRAY</literal></term>
752
702
<listitem><simpara>The option takes a filename as argument,
753
703
multiple uses of the option are collected into an array of strings.
754
704
</simpara></listitem>
757
<term><anchor id="G-OPTION-ARG-DOUBLE:CAPS" role="constant"/><literal>G_OPTION_ARG_DOUBLE</literal></term>
706
<varlistentry id="G-OPTION-ARG-DOUBLE--CAPS" role="constant">
707
<term><literal>G_OPTION_ARG_DOUBLE</literal></term>
758
708
<listitem><simpara>The option takes a double argument. The argument
759
709
can be formatted either for the user's locale or for the "C" locale. Since 2.12
760
710
</simpara></listitem>
763
<term><anchor id="G-OPTION-ARG-INT64:CAPS" role="constant"/><literal>G_OPTION_ARG_INT64</literal></term>
764
<listitem><simpara>The option takes a 64-bit integer. Like <link linkend="G-OPTION-ARG-INT:CAPS"><literal>G_OPTION_ARG_INT</literal></link>
712
<varlistentry id="G-OPTION-ARG-INT64--CAPS" role="constant">
713
<term><literal>G_OPTION_ARG_INT64</literal></term>
714
<listitem><simpara>The option takes a 64-bit integer. Like <link linkend="G-OPTION-ARG-INT--CAPS"><literal>G_OPTION_ARG_INT</literal></link>
765
715
but for larger numbers. The number can be in decimal base, or in hexadecimal
766
716
(when prefixed with <literal>0x</literal>, for example, <literal>0xffffffff</literal>).
769
718
</simpara></listitem>
771
720
</variablelist></refsect2>
773
<title><anchor id="GOptionFlags" role="enum"/>enum GOptionFlags</title>
774
<indexterm><primary>GOptionFlags</primary></indexterm><programlisting>typedef enum
721
<refsect2 id="GOptionFlags" role="enum">
722
<title>enum GOptionFlags</title>
723
<indexterm zone="GOptionFlags"><primary sortas="GOptionFlags">GOptionFlags</primary></indexterm><programlisting>typedef enum
776
725
G_OPTION_FLAG_HIDDEN = 1 << 0,
777
726
G_OPTION_FLAG_IN_MAIN = 1 << 1,
786
735
Flags which modify individual options.
787
736
</para><variablelist role="enum">
789
<term><anchor id="G-OPTION-FLAG-HIDDEN:CAPS" role="constant"/><literal>G_OPTION_FLAG_HIDDEN</literal></term>
737
<varlistentry id="G-OPTION-FLAG-HIDDEN--CAPS" role="constant">
738
<term><literal>G_OPTION_FLAG_HIDDEN</literal></term>
790
739
<listitem><simpara>The option doesn't appear in <option>--help</option>
792
741
</simpara></listitem>
795
<term><anchor id="G-OPTION-FLAG-IN-MAIN:CAPS" role="constant"/><literal>G_OPTION_FLAG_IN_MAIN</literal></term>
743
<varlistentry id="G-OPTION-FLAG-IN-MAIN--CAPS" role="constant">
744
<term><literal>G_OPTION_FLAG_IN_MAIN</literal></term>
796
745
<listitem><simpara>The option appears in the main section of the
797
746
<option>--help</option> output, even if it is defined in a group.
798
747
</simpara></listitem>
801
<term><anchor id="G-OPTION-FLAG-REVERSE:CAPS" role="constant"/><literal>G_OPTION_FLAG_REVERSE</literal></term>
802
<listitem><simpara>For options of the <link linkend="G-OPTION-ARG-NONE:CAPS"><literal>G_OPTION_ARG_NONE</literal></link> kind, this flag
749
<varlistentry id="G-OPTION-FLAG-REVERSE--CAPS" role="constant">
750
<term><literal>G_OPTION_FLAG_REVERSE</literal></term>
751
<listitem><simpara>For options of the <link linkend="G-OPTION-ARG-NONE--CAPS"><literal>G_OPTION_ARG_NONE</literal></link> kind, this flag
803
752
indicates that the sense of the option is reversed.
804
753
</simpara></listitem>
807
<term><anchor id="G-OPTION-FLAG-NO-ARG:CAPS" role="constant"/><literal>G_OPTION_FLAG_NO_ARG</literal></term>
808
<listitem><simpara>For options of the <link linkend="G-OPTION-ARG-CALLBACK:CAPS"><literal>G_OPTION_ARG_CALLBACK</literal></link> kind,
755
<varlistentry id="G-OPTION-FLAG-NO-ARG--CAPS" role="constant">
756
<term><literal>G_OPTION_FLAG_NO_ARG</literal></term>
757
<listitem><simpara>For options of the <link linkend="G-OPTION-ARG-CALLBACK--CAPS"><literal>G_OPTION_ARG_CALLBACK</literal></link> kind,
809
758
this flag indicates that the callback does not take any argument
810
(like a <link linkend="G-OPTION-ARG-NONE:CAPS"><literal>G_OPTION_ARG_NONE</literal></link> option). Since 2.8
759
(like a <link linkend="G-OPTION-ARG-NONE--CAPS"><literal>G_OPTION_ARG_NONE</literal></link> option). Since 2.8
811
760
</simpara></listitem>
814
<term><anchor id="G-OPTION-FLAG-FILENAME:CAPS" role="constant"/><literal>G_OPTION_FLAG_FILENAME</literal></term>
815
<listitem><simpara>For options of the <link linkend="G-OPTION-ARG-CALLBACK:CAPS"><literal>G_OPTION_ARG_CALLBACK</literal></link>
762
<varlistentry id="G-OPTION-FLAG-FILENAME--CAPS" role="constant">
763
<term><literal>G_OPTION_FLAG_FILENAME</literal></term>
764
<listitem><simpara>For options of the <link linkend="G-OPTION-ARG-CALLBACK--CAPS"><literal>G_OPTION_ARG_CALLBACK</literal></link>
816
765
kind, this flag indicates that the argument should be passed to the
817
766
callback in the GLib filename encoding rather than UTF-8. Since 2.8
818
767
</simpara></listitem>
821
<term><anchor id="G-OPTION-FLAG-OPTIONAL-ARG:CAPS" role="constant"/><literal>G_OPTION_FLAG_OPTIONAL_ARG</literal></term>
822
<listitem><simpara>For options of the <link linkend="G-OPTION-ARG-CALLBACK:CAPS"><literal>G_OPTION_ARG_CALLBACK</literal></link>
769
<varlistentry id="G-OPTION-FLAG-OPTIONAL-ARG--CAPS" role="constant">
770
<term><literal>G_OPTION_FLAG_OPTIONAL_ARG</literal></term>
771
<listitem><simpara>For options of the <link linkend="G-OPTION-ARG-CALLBACK--CAPS"><literal>G_OPTION_ARG_CALLBACK</literal></link>
823
772
kind, this flag indicates that the argument supply is optional. If no argument
824
773
is given then data of <link linkend="GOptionParseFunc"><literal>GOptionParseFunc</literal></link> will be set to NULL. Since 2.8
825
774
</simpara></listitem>
828
<term><anchor id="G-OPTION-FLAG-NOALIAS:CAPS" role="constant"/><literal>G_OPTION_FLAG_NOALIAS</literal></term>
776
<varlistentry id="G-OPTION-FLAG-NOALIAS--CAPS" role="constant">
777
<term><literal>G_OPTION_FLAG_NOALIAS</literal></term>
829
778
<listitem><simpara>This flag turns off the automatic conflict resolution
830
which prefixes long option names with <literal>groupname-</literal> if
779
which prefixes long option names with <literal>groupname-</literal> if
831
780
there is a conflict. This option should only be used in situations where
832
781
aliasing is necessary to model some legacy commandline interface. It is
833
not safe to use this option, unless all option groups are under your
782
not safe to use this option, unless all option groups are under your
834
783
direct control. Since 2.8.
836
784
</simpara></listitem>
838
786
</variablelist></refsect2>
840
<title><anchor id="G-OPTION-REMAINING:CAPS" role="macro" condition="since:2.6"/>G_OPTION_REMAINING</title>
841
<indexterm role="2.6"><primary>G_OPTION_REMAINING</primary></indexterm><programlisting>#define G_OPTION_REMAINING ""
787
<refsect2 id="G-OPTION-REMAINING--CAPS" role="macro" condition="since:2.6">
788
<title>G_OPTION_REMAINING</title>
789
<indexterm zone="G-OPTION-REMAINING--CAPS" role="2.6"><primary sortas="G_OPTION_REMAINING">G_OPTION_REMAINING</primary></indexterm><programlisting>#define G_OPTION_REMAINING ""
842
790
</programlisting>
844
If a long option in the main group has this name, it is not treated as a
792
If a long option in the main group has this name, it is not treated as a
845
793
regular option. Instead it collects all non-option arguments which would
846
794
otherwise be left in <literal>argv</literal>. The option must be of type
847
<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>
848
or <link linkend="G-OPTION-ARG-FILENAME-ARRAY:CAPS"><literal>G_OPTION_ARG_FILENAME_ARRAY</literal></link>.
795
<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>
796
or <link linkend="G-OPTION-ARG-FILENAME-ARRAY--CAPS"><literal>G_OPTION_ARG_FILENAME_ARRAY</literal></link>.
852
Using <link linkend="G-OPTION-REMAINING:CAPS"><type>G_OPTION_REMAINING</type></link> instead of simply scanning <literal>argv</literal>
853
for leftover arguments has the advantage that GOption takes care of
799
Using <link linkend="G-OPTION-REMAINING--CAPS"><type>G_OPTION_REMAINING</type></link> instead of simply scanning <literal>argv</literal>
800
for leftover arguments has the advantage that GOption takes care of
854
801
necessary encoding conversions for strings or filenames.
855
</para><para role="since">Since 2.6
860
<title><anchor id="GOptionEntry" role="struct"/>GOptionEntry</title>
861
<indexterm><primary>GOptionEntry</primary></indexterm><programlisting>typedef struct {
802
</para><para role="since">Since 2.6</para></refsect2>
803
<refsect2 id="GOptionEntry" role="struct">
804
<title>GOptionEntry</title>
805
<indexterm zone="GOptionEntry"><primary sortas="GOptionEntry">GOptionEntry</primary></indexterm><programlisting>typedef struct {
862
806
const gchar *long_name;
863
807
gchar short_name;
876
820
<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>.
877
821
</para><variablelist role="struct">
879
<term>const <link linkend="gchar">gchar</link> *<structfield>long_name</structfield>;</term>
823
<term>const <link linkend="gchar">gchar</link> *<structfield>long_name</structfield>;</term>
880
824
<listitem><simpara>The long name of an option can be used to specify it
881
825
in a commandline as --<replaceable>long_name</replaceable>. Every
882
826
option must have a long name. To resolve conflicts if multiple
883
827
option groups contain the same long name, it is also possible to
884
specify the option as
828
specify the option as
885
829
--<replaceable>groupname</replaceable>-<replaceable>long_name</replaceable>.
886
830
</simpara></listitem>
889
<term><link linkend="gchar">gchar</link> <structfield>short_name</structfield>;</term>
833
<term><link linkend="gchar">gchar</link> <structfield>short_name</structfield>;</term>
890
834
<listitem><simpara>If an option has a short name, it can be specified
891
-<replaceable>short_name</replaceable> in a commandline. <parameter>short_name</parameter> must be
835
-<replaceable>short_name</replaceable> in a commandline. <parameter>short_name</parameter> must be
892
836
a printable ASCII character different from '-', or zero if the option has no
894
838
</simpara></listitem>
897
<term><link linkend="gint">gint</link> <structfield>flags</structfield>;</term>
841
<term><link linkend="gint">gint</link> <structfield>flags</structfield>;</term>
898
842
<listitem><simpara>Flags from <link linkend="GOptionFlags"><type>GOptionFlags</type></link>.
899
843
</simpara></listitem>
902
<term><link linkend="GOptionArg">GOptionArg</link> <structfield>arg</structfield>;</term>
846
<term><link linkend="GOptionArg">GOptionArg</link> <structfield>arg</structfield>;</term>
903
847
<listitem><simpara>The type of the option, as a <link linkend="GOptionArg"><type>GOptionArg</type></link>.
904
848
</simpara></listitem>
907
<term><link linkend="gpointer">gpointer</link> <structfield>arg_data</structfield>;</term>
908
<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
909
point to a <link linkend="GOptionArgFunc"><type>GOptionArgFunc</type></link> callback function, which will be called to handle
910
the extra argument. Otherwise, <parameter>arg_data</parameter> is a pointer to a location to store
851
<term><link linkend="gpointer">gpointer</link> <structfield>arg_data</structfield>;</term>
852
<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
853
point to a <link linkend="GOptionArgFunc"><type>GOptionArgFunc</type></link> callback function, which will be called to handle
854
the extra argument. Otherwise, <parameter>arg_data</parameter> is a pointer to a location to store
911
855
the value, the required type of the location depends on the <parameter>arg</parameter> type:
914
<term><link linkend="G-OPTION-ARG-NONE:CAPS"><literal>G_OPTION_ARG_NONE</literal></link></term>
858
<term><link linkend="G-OPTION-ARG-NONE--CAPS"><literal>G_OPTION_ARG_NONE</literal></link></term>
915
859
<listitem><para><link linkend="gboolean"><literal>gboolean</literal></link></para></listitem>
918
<term><link linkend="G-OPTION-ARG-STRING:CAPS"><literal>G_OPTION_ARG_STRING</literal></link></term>
862
<term><link linkend="G-OPTION-ARG-STRING--CAPS"><literal>G_OPTION_ARG_STRING</literal></link></term>
919
863
<listitem><para><link linkend="gchar"><literal>gchar</literal></link>*</para></listitem>
922
<term><link linkend="G-OPTION-ARG-INT:CAPS"><literal>G_OPTION_ARG_INT</literal></link></term>
866
<term><link linkend="G-OPTION-ARG-INT--CAPS"><literal>G_OPTION_ARG_INT</literal></link></term>
923
867
<listitem><para><link linkend="gint"><literal>gint</literal></link></para></listitem>
926
<term><link linkend="G-OPTION-ARG-FILENAME:CAPS"><literal>G_OPTION_ARG_FILENAME</literal></link></term>
870
<term><link linkend="G-OPTION-ARG-FILENAME--CAPS"><literal>G_OPTION_ARG_FILENAME</literal></link></term>
927
871
<listitem><para><link linkend="gchar"><literal>gchar</literal></link>*</para></listitem>
930
<term><link linkend="G-OPTION-ARG-STRING-ARRAY:CAPS"><literal>G_OPTION_ARG_STRING_ARRAY</literal></link></term>
931
<listitem><para><link linkend="gchar"><literal>gchar</literal></link>**</para></listitem>
934
<term><link linkend="G-OPTION-ARG-FILENAME-ARRAY:CAPS"><literal>G_OPTION_ARG_FILENAME_ARRAY</literal></link></term>
935
<listitem><para><link linkend="gchar"><literal>gchar</literal></link>**</para></listitem>
938
<term><link linkend="G-OPTION-ARG-DOUBLE:CAPS"><literal>G_OPTION_ARG_DOUBLE</literal></link></term>
874
<term><link linkend="G-OPTION-ARG-STRING-ARRAY--CAPS"><literal>G_OPTION_ARG_STRING_ARRAY</literal></link></term>
875
<listitem><para><link linkend="gchar"><literal>gchar</literal></link>**</para></listitem>
878
<term><link linkend="G-OPTION-ARG-FILENAME-ARRAY--CAPS"><literal>G_OPTION_ARG_FILENAME_ARRAY</literal></link></term>
879
<listitem><para><link linkend="gchar"><literal>gchar</literal></link>**</para></listitem>
882
<term><link linkend="G-OPTION-ARG-DOUBLE--CAPS"><literal>G_OPTION_ARG_DOUBLE</literal></link></term>
939
883
<listitem><para><link linkend="gdouble"><literal>gdouble</literal></link></para></listitem>
942
886
</simpara></listitem>
945
<term>const <link linkend="gchar">gchar</link> *<structfield>description</structfield>;</term>
889
<term>const <link linkend="gchar">gchar</link> *<structfield>description</structfield>;</term>
946
890
<listitem><simpara>the description for the option in <option>--help</option>
947
891
output. The <parameter>description</parameter> is translated using the <parameter>translate_func</parameter> of the
948
892
group, see <link linkend="g-option-group-set-translation-domain"><function>g_option_group_set_translation_domain()</function></link>.
949
893
</simpara></listitem>
952
<term>const <link linkend="gchar">gchar</link> *<structfield>arg_description</structfield>;</term>
896
<term>const <link linkend="gchar">gchar</link> *<structfield>arg_description</structfield>;</term>
953
897
<listitem><simpara>The placeholder to use for the extra argument parsed
954
898
by the option in <option>--help</option>
955
899
output. The <parameter>arg_description</parameter> is translated using the <parameter>translate_func</parameter> of the
956
900
group, see <link linkend="g-option-group-set-translation-domain"><function>g_option_group_set_translation_domain()</function></link>.
958
901
</simpara></listitem>
960
903
</variablelist></refsect2>
962
<title><anchor id="g-option-context-add-main-entries" role="function" condition="since:2.6"/>g_option_context_add_main_entries ()</title>
963
<indexterm role="2.6"><primary>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,
904
<refsect2 id="g-option-context-add-main-entries" role="function" condition="since:2.6">
905
<title>g_option_context_add_main_entries ()</title>
906
<indexterm zone="g-option-context-add-main-entries" role="2.6"><primary sortas="g_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,
964
907
const <link linkend="GOptionEntry">GOptionEntry</link> *entries,
965
908
const <link linkend="gchar">gchar</link> *translation_domain);</programlisting>
967
910
A convenience function which creates a main group if it doesn't
968
911
exist, adds the <parameter>entries</parameter> to it and sets the translation domain.</para>
971
913
</para><variablelist role="params">
972
<varlistentry><term><parameter>context</parameter> :</term>
914
<varlistentry><term><parameter>context</parameter> :</term>
973
915
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
974
916
</simpara></listitem></varlistentry>
975
<varlistentry><term><parameter>entries</parameter> :</term>
976
<listitem><simpara> a <link linkend="NULL:CAPS"><literal>NULL</literal></link>-terminated array of <link linkend="GOptionEntry"><type>GOptionEntry</type></link><!-- -->s
917
<varlistentry><term><parameter>entries</parameter> :</term>
918
<listitem><simpara> a <link linkend="NULL--CAPS"><literal>NULL</literal></link>-terminated array of <link linkend="GOptionEntry"><type>GOptionEntry</type></link><!-- -->s
977
919
</simpara></listitem></varlistentry>
978
<varlistentry><term><parameter>translation_domain</parameter> :</term>
920
<varlistentry><term><parameter>translation_domain</parameter> :</term>
979
921
<listitem><simpara> a translation domain to use for translating
980
922
the <option>--help</option> output for the options in <parameter>entries</parameter>
981
with <link linkend="gettext"><function>gettext()</function></link>, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>
923
with <link linkend="gettext"><function>gettext()</function></link>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
982
924
</simpara></listitem></varlistentry>
983
</variablelist><para role="since">Since 2.6
986
<title><anchor id="GOptionGroup" role="struct"/>GOptionGroup</title>
987
<indexterm><primary>GOptionGroup</primary></indexterm><programlisting>typedef struct _GOptionGroup GOptionGroup;</programlisting>
925
</variablelist><para role="since">Since 2.6</para></refsect2>
926
<refsect2 id="GOptionGroup" role="struct">
927
<title>GOptionGroup</title>
928
<indexterm zone="GOptionGroup"><primary sortas="GOptionGroup">GOptionGroup</primary></indexterm><programlisting>typedef struct _GOptionGroup GOptionGroup;</programlisting>
989
930
A <structname>GOptionGroup</structname> struct defines the options in a single
990
group. The struct has only private fields and should not be directly accessed.
931
group. The struct has only private fields and should not be directly accessed.
993
934
All options in a group share the same translation function. Libaries which
994
935
need to parse commandline options are expected to provide a function for
995
getting a <structname>GOptionGroup</structname> holding their options, which
936
getting a <structname>GOptionGroup</structname> holding their options, which
996
937
the application can then add to its <link linkend="GOptionContext"><type>GOptionContext</type></link>.
997
938
</para></refsect2>
999
<title><anchor id="g-option-context-add-group" role="function" condition="since:2.6"/>g_option_context_add_group ()</title>
1000
<indexterm role="2.6"><primary>g_option_context_add_group</primary></indexterm><programlisting><link linkend="void">void</link> g_option_context_add_group (<link linkend="GOptionContext">GOptionContext</link> *context,
939
<refsect2 id="g-option-context-add-group" role="function" condition="since:2.6">
940
<title>g_option_context_add_group ()</title>
941
<indexterm zone="g-option-context-add-group" role="2.6"><primary sortas="g_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,
1001
942
<link linkend="GOptionGroup">GOptionGroup</link> *group);</programlisting>
1003
944
Adds a <link linkend="GOptionGroup"><type>GOptionGroup</type></link> to the <parameter>context</parameter>, so that parsing with <parameter>context</parameter>
1026
965
the only difference is that the options in the main group are
1027
966
treated differently when generating <option>--help</option> output.</para>
1030
968
</para><variablelist role="params">
1031
<varlistentry><term><parameter>context</parameter> :</term>
969
<varlistentry><term><parameter>context</parameter> :</term>
1032
970
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
1033
971
</simpara></listitem></varlistentry>
1034
<varlistentry><term><parameter>group</parameter> :</term>
972
<varlistentry><term><parameter>group</parameter> :</term>
1035
973
<listitem><simpara> the group to set as main group
1036
974
</simpara></listitem></varlistentry>
1037
</variablelist><para role="since">Since 2.6
1040
<title><anchor id="g-option-context-get-main-group" role="function" condition="since:2.6"/>g_option_context_get_main_group ()</title>
1041
<indexterm role="2.6"><primary>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>
975
</variablelist><para role="since">Since 2.6</para></refsect2>
976
<refsect2 id="g-option-context-get-main-group" role="function" condition="since:2.6">
977
<title>g_option_context_get_main_group ()</title>
978
<indexterm zone="g-option-context-get-main-group" role="2.6"><primary sortas="g_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>
1043
980
Returns a pointer to the main group of <parameter>context</parameter>.</para>
1046
982
</para><variablelist role="params">
1047
<varlistentry><term><parameter>context</parameter> :</term>
983
<varlistentry><term><parameter>context</parameter> :</term>
1048
984
<listitem><simpara> a <link linkend="GOptionContext"><type>GOptionContext</type></link>
1049
985
</simpara></listitem></varlistentry>
1050
<varlistentry><term><emphasis>Returns</emphasis> :</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
986
<varlistentry><term><emphasis>Returns</emphasis> :</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
1051
987
have a main group. Note that group belongs to <parameter>context</parameter> and should
1052
988
not be modified or freed.
1054
990
</simpara></listitem></varlistentry>
1055
</variablelist><para role="since">Since 2.6
1058
<title><anchor id="g-option-group-new" role="function" condition="since:2.6"/>g_option_group_new ()</title>
1059
<indexterm role="2.6"><primary>g_option_group_new</primary></indexterm><programlisting><link linkend="GOptionGroup">GOptionGroup</link>* g_option_group_new (const <link linkend="gchar">gchar</link> *name,
991
</variablelist><para role="since">Since 2.6</para></refsect2>
992
<refsect2 id="g-option-group-new" role="function" condition="since:2.6">
993
<title>g_option_group_new ()</title>
994
<indexterm zone="g-option-group-new" role="2.6"><primary sortas="g_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,
1060
995
const <link linkend="gchar">gchar</link> *description,
1061
996
const <link linkend="gchar">gchar</link> *help_description,
1062
997
<link linkend="gpointer">gpointer</link> user_data,
1065
1000
Creates a new <link linkend="GOptionGroup"><type>GOptionGroup</type></link>.</para>
1068
1002
</para><variablelist role="params">
1069
<varlistentry><term><parameter>name</parameter> :</term>
1003
<varlistentry><term><parameter>name</parameter> :</term>
1070
1004
<listitem><simpara> the name for the option group, this is used to provide
1071
1005
help for the options in this group with <option>--help-</option><parameter>name</parameter>
1072
1006
</simpara></listitem></varlistentry>
1073
<varlistentry><term><parameter>description</parameter> :</term>
1007
<varlistentry><term><parameter>description</parameter> :</term>
1074
1008
<listitem><simpara> a description for this group to be shown in
1075
1009
<option>--help</option>. This string is translated using the translation
1076
1010
domain or translation function of the group
1077
1011
</simpara></listitem></varlistentry>
1078
<varlistentry><term><parameter>help_description</parameter> :</term>
1012
<varlistentry><term><parameter>help_description</parameter> :</term>
1079
1013
<listitem><simpara> a description for the <option>--help-</option><parameter>name</parameter> option.
1080
1014
This string is translated using the translation domain or translation function
1082
1016
</simpara></listitem></varlistentry>
1083
<varlistentry><term><parameter>user_data</parameter> :</term>
1017
<varlistentry><term><parameter>user_data</parameter> :</term>
1084
1018
<listitem><simpara> user data that will be passed to the pre- and post-parse hooks,
1085
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>
1086
</simpara></listitem></varlistentry>
1087
<varlistentry><term><parameter>destroy</parameter> :</term>
1088
<listitem><simpara> a function that will be called to free <parameter>user_data</parameter>, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>
1089
</simpara></listitem></varlistentry>
1090
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a newly created option group. It should be added
1019
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>
1020
</simpara></listitem></varlistentry>
1021
<varlistentry><term><parameter>destroy</parameter> :</term>
1022
<listitem><simpara> a function that will be called to free <parameter>user_data</parameter>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
1023
</simpara></listitem></varlistentry>
1024
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a newly created option group. It should be added
1091
1025
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>.
1093
1027
</simpara></listitem></varlistentry>
1094
</variablelist><para role="since">Since 2.6
1097
<title><anchor id="g-option-group-free" role="function" condition="since:2.6"/>g_option_group_free ()</title>
1098
<indexterm role="2.6"><primary>g_option_group_free</primary></indexterm><programlisting><link linkend="void">void</link> g_option_group_free (<link linkend="GOptionGroup">GOptionGroup</link> *group);</programlisting>
1028
</variablelist><para role="since">Since 2.6</para></refsect2>
1029
<refsect2 id="g-option-group-free" role="function" condition="since:2.6">
1030
<title>g_option_group_free ()</title>
1031
<indexterm zone="g-option-group-free" role="2.6"><primary sortas="g_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>
1100
1033
Frees a <link linkend="GOptionGroup"><type>GOptionGroup</type></link>. Note that you must <emphasis>not</emphasis>
1101
1034
free groups which have been added to a <link linkend="GOptionContext"><type>GOptionContext</type></link>.</para>
1104
1036
</para><variablelist role="params">
1105
<varlistentry><term><parameter>group</parameter> :</term>
1037
<varlistentry><term><parameter>group</parameter> :</term>
1106
1038
<listitem><simpara> a <link linkend="GOptionGroup"><type>GOptionGroup</type></link>
1107
1039
</simpara></listitem></varlistentry>
1108
</variablelist><para role="since">Since 2.6
1111
<title><anchor id="g-option-group-add-entries" role="function" condition="since:2.6"/>g_option_group_add_entries ()</title>
1112
<indexterm role="2.6"><primary>g_option_group_add_entries</primary></indexterm><programlisting><link linkend="void">void</link> g_option_group_add_entries (<link linkend="GOptionGroup">GOptionGroup</link> *group,
1040
</variablelist><para role="since">Since 2.6</para></refsect2>
1041
<refsect2 id="g-option-group-add-entries" role="function" condition="since:2.6">
1042
<title>g_option_group_add_entries ()</title>
1043
<indexterm zone="g-option-group-add-entries" role="2.6"><primary sortas="g_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,
1113
1044
const <link linkend="GOptionEntry">GOptionEntry</link> *entries);</programlisting>
1115
1046
Adds the options specified in <parameter>entries</parameter> to <parameter>group</parameter>.</para>
1118
1048
</para><variablelist role="params">
1119
<varlistentry><term><parameter>group</parameter> :</term>
1049
<varlistentry><term><parameter>group</parameter> :</term>
1120
1050
<listitem><simpara> a <link linkend="GOptionGroup"><type>GOptionGroup</type></link>
1121
1051
</simpara></listitem></varlistentry>
1122
<varlistentry><term><parameter>entries</parameter> :</term>
1123
<listitem><simpara> a <link linkend="NULL:CAPS"><literal>NULL</literal></link>-terminated array of <link linkend="GOptionEntry"><type>GOptionEntry</type></link><!-- -->s
1052
<varlistentry><term><parameter>entries</parameter> :</term>
1053
<listitem><simpara> a <link linkend="NULL--CAPS"><literal>NULL</literal></link>-terminated array of <link linkend="GOptionEntry"><type>GOptionEntry</type></link><!-- -->s
1124
1054
</simpara></listitem></varlistentry>
1125
</variablelist><para role="since">Since 2.6
1128
<title><anchor id="GOptionParseFunc" role="function"/>GOptionParseFunc ()</title>
1129
<indexterm><primary>GOptionParseFunc</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> (*GOptionParseFunc) (<link linkend="GOptionContext">GOptionContext</link> *context,
1055
</variablelist><para role="since">Since 2.6</para></refsect2>
1056
<refsect2 id="GOptionParseFunc" role="function">
1057
<title>GOptionParseFunc ()</title>
1058
<indexterm zone="GOptionParseFunc"><primary sortas="GOptionParseFunc">GOptionParseFunc</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> (*GOptionParseFunc) (<link linkend="GOptionContext">GOptionContext</link> *context,
1130
1059
<link linkend="GOptionGroup">GOptionGroup</link> *group,
1131
1060
<link linkend="gpointer">gpointer</link> data,
1132
1061
<link linkend="GError">GError</link> **error);</programlisting>
1134
The type of function that can be called before and after parsing.
1063
The type of function that can be called before and after parsing.
1135
1064
</para><variablelist role="params">
1136
<varlistentry><term><parameter>context</parameter> :</term>
1065
<varlistentry><term><parameter>context</parameter> :</term>
1137
1066
<listitem><simpara>The active <link linkend="GOptionContext"><type>GOptionContext</type></link>
1138
1067
</simpara></listitem></varlistentry>
1139
<varlistentry><term><parameter>group</parameter> :</term>
1068
<varlistentry><term><parameter>group</parameter> :</term>
1140
1069
<listitem><simpara>The group to which the function belongs
1141
1070
</simpara></listitem></varlistentry>
1142
<varlistentry><term><parameter>data</parameter> :</term>
1071
<varlistentry><term><parameter>data</parameter> :</term>
1143
1072
<listitem><simpara>User data added to the <link linkend="GOptionGroup"><type>GOptionGroup</type></link> containing the option when it
1144
1073
was created with <link linkend="g-option-group-new"><function>g_option_group_new()</function></link>
1145
1074
</simpara></listitem></varlistentry>
1146
<varlistentry><term><parameter>error</parameter> :</term>
1075
<varlistentry><term><parameter>error</parameter> :</term>
1147
1076
<listitem><simpara>A return location for error details
1148
1077
</simpara></listitem></varlistentry>
1149
<varlistentry><term><emphasis>Returns</emphasis> :</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
1078
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>%TRUE if the function completed successfully, <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> if an error
1150
1079
occurred, in which case <parameter>error</parameter> should be set with <link linkend="g-set-error"><function>g_set_error()</function></link>
1153
1080
</simpara></listitem></varlistentry>
1154
1081
</variablelist></refsect2>
1156
<title><anchor id="g-option-group-set-parse-hooks" role="function" condition="since:2.6"/>g_option_group_set_parse_hooks ()</title>
1157
<indexterm role="2.6"><primary>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,
1082
<refsect2 id="g-option-group-set-parse-hooks" role="function" condition="since:2.6">
1083
<title>g_option_group_set_parse_hooks ()</title>
1084
<indexterm zone="g-option-group-set-parse-hooks" role="2.6"><primary sortas="g_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,
1158
1085
<link linkend="GOptionParseFunc">GOptionParseFunc</link> pre_parse_func,
1159
1086
<link linkend="GOptionParseFunc">GOptionParseFunc</link> post_parse_func);</programlisting>
1167
1094
<parameter>post_parse_func</parameter> can be specified when constructing the group
1168
1095
with <link linkend="g-option-group-new"><function>g_option_group_new()</function></link>.</para>
1171
1097
</para><variablelist role="params">
1172
<varlistentry><term><parameter>group</parameter> :</term>
1098
<varlistentry><term><parameter>group</parameter> :</term>
1173
1099
<listitem><simpara> a <link linkend="GOptionGroup"><type>GOptionGroup</type></link>
1174
1100
</simpara></listitem></varlistentry>
1175
<varlistentry><term><parameter>pre_parse_func</parameter> :</term>
1176
<listitem><simpara> a function to call before parsing, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>
1177
</simpara></listitem></varlistentry>
1178
<varlistentry><term><parameter>post_parse_func</parameter> :</term>
1179
<listitem><simpara> a function to call after parsing, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>
1180
</simpara></listitem></varlistentry>
1181
</variablelist><para role="since">Since 2.6
1184
<title><anchor id="GOptionErrorFunc" role="function"/>GOptionErrorFunc ()</title>
1185
<indexterm><primary>GOptionErrorFunc</primary></indexterm><programlisting><link linkend="void">void</link> (*GOptionErrorFunc) (<link linkend="GOptionContext">GOptionContext</link> *context,
1101
<varlistentry><term><parameter>pre_parse_func</parameter> :</term>
1102
<listitem><simpara> a function to call before parsing, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
1103
</simpara></listitem></varlistentry>
1104
<varlistentry><term><parameter>post_parse_func</parameter> :</term>
1105
<listitem><simpara> a function to call after parsing, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
1106
</simpara></listitem></varlistentry>
1107
</variablelist><para role="since">Since 2.6</para></refsect2>
1108
<refsect2 id="GOptionErrorFunc" role="function">
1109
<title>GOptionErrorFunc ()</title>
1110
<indexterm zone="GOptionErrorFunc"><primary sortas="GOptionErrorFunc">GOptionErrorFunc</primary></indexterm><programlisting><link linkend="void">void</link> (*GOptionErrorFunc) (<link linkend="GOptionContext">GOptionContext</link> *context,
1186
1111
<link linkend="GOptionGroup">GOptionGroup</link> *group,
1187
1112
<link linkend="gpointer">gpointer</link> data,
1188
1113
<link linkend="GError">GError</link> **error);</programlisting>
1190
1115
The type of function to be used as callback when a parse error occurs.
1191
1116
</para><variablelist role="params">
1192
<varlistentry><term><parameter>context</parameter> :</term>
1117
<varlistentry><term><parameter>context</parameter> :</term>
1193
1118
<listitem><simpara>The active <link linkend="GOptionContext"><type>GOptionContext</type></link>
1194
1119
</simpara></listitem></varlistentry>
1195
<varlistentry><term><parameter>group</parameter> :</term>
1120
<varlistentry><term><parameter>group</parameter> :</term>
1196
1121
<listitem><simpara>The group to which the function belongs
1197
1122
</simpara></listitem></varlistentry>
1198
<varlistentry><term><parameter>data</parameter> :</term>
1123
<varlistentry><term><parameter>data</parameter> :</term>
1199
1124
<listitem><simpara>User data added to the <link linkend="GOptionGroup"><type>GOptionGroup</type></link> containing the option when it
1200
1125
was created with <link linkend="g-option-group-new"><function>g_option_group_new()</function></link>
1201
1126
</simpara></listitem></varlistentry>
1202
<varlistentry><term><parameter>error</parameter> :</term>
1127
<varlistentry><term><parameter>error</parameter> :</term>
1203
1128
<listitem><simpara>The <link linkend="GError"><type>GError</type></link> containing details about the parse error
1206
1129
</simpara></listitem></varlistentry>
1207
1130
</variablelist></refsect2>
1209
<title><anchor id="g-option-group-set-error-hook" role="function" condition="since:2.6"/>g_option_group_set_error_hook ()</title>
1210
<indexterm role="2.6"><primary>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,
1131
<refsect2 id="g-option-group-set-error-hook" role="function" condition="since:2.6">
1132
<title>g_option_group_set_error_hook ()</title>
1133
<indexterm zone="g-option-group-set-error-hook" role="2.6"><primary sortas="g_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,
1211
1134
<link linkend="GOptionErrorFunc">GOptionErrorFunc</link> error_func);</programlisting>
1213
1136
Associates a function with <parameter>group</parameter> which will be called
1214
1137
from <link linkend="g-option-context-parse"><function>g_option_context_parse()</function></link> when an error occurs.
1217
Note that the user data to be passed to <parameter>pre_parse_func</parameter> and
1218
<parameter>post_parse_func</parameter> can be specified when constructing the group
1219
with <link linkend="g-option-group-new"><function>g_option_group_new()</function></link>.</para>
1140
Note that the user data to be passed to <parameter>error_func</parameter> can be
1141
specified when constructing the group with <link linkend="g-option-group-new"><function>g_option_group_new()</function></link>.</para>
1222
1143
</para><variablelist role="params">
1223
<varlistentry><term><parameter>group</parameter> :</term>
1144
<varlistentry><term><parameter>group</parameter> :</term>
1224
1145
<listitem><simpara> a <link linkend="GOptionGroup"><type>GOptionGroup</type></link>
1225
1146
</simpara></listitem></varlistentry>
1226
<varlistentry><term><parameter>error_func</parameter> :</term>
1147
<varlistentry><term><parameter>error_func</parameter> :</term>
1227
1148
<listitem><simpara> a function to call when an error occurs
1228
1149
</simpara></listitem></varlistentry>
1229
</variablelist><para role="since">Since 2.6
1232
<title><anchor id="g-option-group-set-translate-func" role="function" condition="since:2.6"/>g_option_group_set_translate_func ()</title>
1233
<indexterm role="2.6"><primary>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,
1150
</variablelist><para role="since">Since 2.6</para></refsect2>
1151
<refsect2 id="g-option-group-set-translate-func" role="function" condition="since:2.6">
1152
<title>g_option_group_set_translate_func ()</title>
1153
<indexterm zone="g-option-group-set-translate-func" role="2.6"><primary sortas="g_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,
1234
1154
<link linkend="GTranslateFunc">GTranslateFunc</link> func,
1235
1155
<link linkend="gpointer">gpointer</link> data,
1236
1156
<link linkend="GDestroyNotify">GDestroyNotify</link> destroy_notify);</programlisting>
1238
1158
Sets the function which is used to translate user-visible
1239
1159
strings, for <option>--help</option> output. Different
1240
1160
groups can use different <link linkend="GTranslateFunc"><type>GTranslateFunc</type></link><!-- -->s. If <parameter>func</parameter>
1241
is <link linkend="NULL:CAPS"><literal>NULL</literal></link>, strings are not translated.
1161
is <link linkend="NULL--CAPS"><literal>NULL</literal></link>, strings are not translated.
1244
1164
If you are using <link linkend="gettext"><function>gettext()</function></link>, you only need to set the translation
1245
1165
domain, see <link linkend="g-option-group-set-translation-domain"><function>g_option_group_set_translation_domain()</function></link>.</para>
1248
1167
</para><variablelist role="params">
1249
<varlistentry><term><parameter>group</parameter> :</term>
1168
<varlistentry><term><parameter>group</parameter> :</term>
1250
1169
<listitem><simpara> a <link linkend="GOptionGroup"><type>GOptionGroup</type></link>
1251
1170
</simpara></listitem></varlistentry>
1252
<varlistentry><term><parameter>func</parameter> :</term>
1253
<listitem><simpara> the <link linkend="GTranslateFunc"><type>GTranslateFunc</type></link>, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>
1254
</simpara></listitem></varlistentry>
1255
<varlistentry><term><parameter>data</parameter> :</term>
1256
<listitem><simpara> user data to pass to <parameter>func</parameter>, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>
1257
</simpara></listitem></varlistentry>
1258
<varlistentry><term><parameter>destroy_notify</parameter> :</term>
1259
<listitem><simpara> a function which gets called to free <parameter>data</parameter>, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>
1260
</simpara></listitem></varlistentry>
1261
</variablelist><para role="since">Since 2.6
1264
<title><anchor id="g-option-group-set-translation-domain" role="function" condition="since:2.6"/>g_option_group_set_translation_domain ()</title>
1265
<indexterm role="2.6"><primary>g_option_group_set_translation_domain</primary></indexterm><programlisting><link linkend="void">void</link> g_option_group_set_translation_domain
1171
<varlistentry><term><parameter>func</parameter> :</term>
1172
<listitem><simpara> the <link linkend="GTranslateFunc"><type>GTranslateFunc</type></link>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
1173
</simpara></listitem></varlistentry>
1174
<varlistentry><term><parameter>data</parameter> :</term>
1175
<listitem><simpara> user data to pass to <parameter>func</parameter>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
1176
</simpara></listitem></varlistentry>
1177
<varlistentry><term><parameter>destroy_notify</parameter> :</term>
1178
<listitem><simpara> a function which gets called to free <parameter>data</parameter>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
1179
</simpara></listitem></varlistentry>
1180
</variablelist><para role="since">Since 2.6</para></refsect2>
1181
<refsect2 id="g-option-group-set-translation-domain" role="function" condition="since:2.6">
1182
<title>g_option_group_set_translation_domain ()</title>
1183
<indexterm zone="g-option-group-set-translation-domain" role="2.6"><primary sortas="g_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
1266
1184
(<link linkend="GOptionGroup">GOptionGroup</link> *group,
1267
1185
const <link linkend="gchar">gchar</link> *domain);</programlisting>
1269
1187
A convenience function to use <link linkend="gettext"><function>gettext()</function></link> for translating
1270
1188
user-visible strings.</para>
1273
1190
</para><variablelist role="params">
1274
<varlistentry><term><parameter>group</parameter> :</term>
1191
<varlistentry><term><parameter>group</parameter> :</term>
1275
1192
<listitem><simpara> a <link linkend="GOptionGroup"><type>GOptionGroup</type></link>
1276
1193
</simpara></listitem></varlistentry>
1277
<varlistentry><term><parameter>domain</parameter> :</term>
1194
<varlistentry><term><parameter>domain</parameter> :</term>
1278
1195
<listitem><simpara> the domain to use
1279
1196
</simpara></listitem></varlistentry>
1280
</variablelist><para role="since">Since 2.6
1197
</variablelist><para role="since">Since 2.6</para></refsect2>
1289
<refsect1><refsect2 /><refsect2 /></refsect1>