xref: /freebsd/contrib/ntp/sntp/libopts/genshell.c (revision ea906c4152774dff300bb26fbfc1e4188351c89a)
1ea906c41SOllivier Robert /*   -*- buffer-read-only: t -*- vi: set ro:
2ea906c41SOllivier Robert  *
3ea906c41SOllivier Robert  *  DO NOT EDIT THIS FILE   (genshell.c)
4ea906c41SOllivier Robert  *
5ea906c41SOllivier Robert  *  It has been AutoGen-ed  Saturday May  5, 2007 at 12:02:35 PM PDT
6ea906c41SOllivier Robert  *  From the definitions    genshell.def
7ea906c41SOllivier Robert  *  and the template file   options
8ea906c41SOllivier Robert  *
9ea906c41SOllivier Robert  * Generated from AutoOpts 29:0:4 templates.
10ea906c41SOllivier Robert  */
11ea906c41SOllivier Robert 
12ea906c41SOllivier Robert /*
13ea906c41SOllivier Robert  *  This file was produced by an AutoOpts template.  AutoOpts is a
14ea906c41SOllivier Robert  *  copyrighted work.  This source file is not encumbered by AutoOpts
15ea906c41SOllivier Robert  *  licensing, but is provided under the licensing terms chosen by the
16ea906c41SOllivier Robert  *  genshellopt author or copyright holder.  AutoOpts is licensed under
17ea906c41SOllivier Robert  *  the terms of the LGPL.  The redistributable library (``libopts'') is
18ea906c41SOllivier Robert  *  licensed under the terms of either the LGPL or, at the users discretion,
19ea906c41SOllivier Robert  *  the BSD license.  See the AutoOpts and/or libopts sources for details.
20ea906c41SOllivier Robert  *
21ea906c41SOllivier Robert  * This source file is copyrighted and licensed under the following terms:
22ea906c41SOllivier Robert  *
23ea906c41SOllivier Robert  * genshellopt copyright 1999-2007 Bruce Korb - all rights reserved
24ea906c41SOllivier Robert  *
25ea906c41SOllivier Robert  * genshellopt is free software; you can redistribute it and/or
26ea906c41SOllivier Robert  * modify it under the terms of the GNU Lesser General Public
27ea906c41SOllivier Robert  * License as published by the Free Software Foundation; either
28ea906c41SOllivier Robert  * version 2.1 of the License, or (at your option) any later version.
29ea906c41SOllivier Robert  *
30ea906c41SOllivier Robert  * genshellopt is distributed in the hope that it will be useful,
31ea906c41SOllivier Robert  * but WITHOUT ANY WARRANTY; without even the implied warranty of
32ea906c41SOllivier Robert  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
33ea906c41SOllivier Robert  * Lesser General Public License for more details.
34ea906c41SOllivier Robert  *
35ea906c41SOllivier Robert  * You should have received a copy of the GNU Lesser General Public
36ea906c41SOllivier Robert  * License along with genshellopt.  If not, write to:
37ea906c41SOllivier Robert  * 	The Free Software Foundation, Inc.,
38ea906c41SOllivier Robert  * 	51 Franklin Street, Fifth Floor
39ea906c41SOllivier Robert  * 	Boston, MA  02110-1301, USA.
40ea906c41SOllivier Robert  */
41ea906c41SOllivier Robert 
42ea906c41SOllivier Robert 
43ea906c41SOllivier Robert #include <limits.h>
44ea906c41SOllivier Robert 
45ea906c41SOllivier Robert #define OPTION_CODE_COMPILE 1
46ea906c41SOllivier Robert #include "genshell.h"
47ea906c41SOllivier Robert 
48ea906c41SOllivier Robert #ifdef  __cplusplus
49ea906c41SOllivier Robert extern "C" {
50ea906c41SOllivier Robert #endif
51ea906c41SOllivier Robert tSCC zCopyright[] =
52ea906c41SOllivier Robert        "genshellopt copyright (c) 1999-2007 Bruce Korb, all rights reserved";
53ea906c41SOllivier Robert tSCC zCopyrightNotice[] =
54ea906c41SOllivier Robert        "genshellopt is free software; you can redistribute it and/or\n\
55ea906c41SOllivier Robert modify it under the terms of the GNU Lesser General Public\n\
56ea906c41SOllivier Robert License as published by the Free Software Foundation; either\n\
57ea906c41SOllivier Robert version 2.1 of the License, or (at your option) any later version.\n\n\
58ea906c41SOllivier Robert genshellopt is distributed in the hope that it will be useful,\n\
59ea906c41SOllivier Robert but WITHOUT ANY WARRANTY; without even the implied warranty of\n\
60ea906c41SOllivier Robert MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n\
61ea906c41SOllivier Robert Lesser General Public License for more details.\n\n\
62ea906c41SOllivier Robert You should have received a copy of the GNU Lesser General Public\n\
63ea906c41SOllivier Robert License along with genshellopt.  If not, write to:\n\
64ea906c41SOllivier Robert \tThe Free Software Foundation, Inc.,\n\
65ea906c41SOllivier Robert \t51 Franklin Street, Fifth Floor\n\
66ea906c41SOllivier Robert \tBoston, MA  02110-1301, USA.";
67ea906c41SOllivier Robert extern tUsageProc genshelloptUsage;
68ea906c41SOllivier Robert 
69ea906c41SOllivier Robert #ifndef NULL
70ea906c41SOllivier Robert #  define NULL 0
71ea906c41SOllivier Robert #endif
72ea906c41SOllivier Robert #ifndef EXIT_SUCCESS
73ea906c41SOllivier Robert #  define  EXIT_SUCCESS 0
74ea906c41SOllivier Robert #endif
75ea906c41SOllivier Robert #ifndef EXIT_FAILURE
76ea906c41SOllivier Robert #  define  EXIT_FAILURE 1
77ea906c41SOllivier Robert #endif
78ea906c41SOllivier Robert /*
79ea906c41SOllivier Robert  *  Script option description:
80ea906c41SOllivier Robert  */
81ea906c41SOllivier Robert tSCC    zScriptText[] =
82ea906c41SOllivier Robert         "Output Script File";
83ea906c41SOllivier Robert tSCC    zScript_NAME[]             = "SCRIPT";
84ea906c41SOllivier Robert tSCC    zScript_Name[]             = "script";
85ea906c41SOllivier Robert #define SCRIPT_FLAGS       (OPTST_DISABLED \
86ea906c41SOllivier Robert         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
87ea906c41SOllivier Robert 
88ea906c41SOllivier Robert /*
89ea906c41SOllivier Robert  *  Shell option description:
90ea906c41SOllivier Robert  */
91ea906c41SOllivier Robert tSCC    zShellText[] =
92ea906c41SOllivier Robert         "Shell name (follows \"#!\" magic)";
93ea906c41SOllivier Robert tSCC    zShell_NAME[]              = "SHELL";
94ea906c41SOllivier Robert tSCC    zNotShell_Name[]           = "no-shell";
95ea906c41SOllivier Robert tSCC    zNotShell_Pfx[]            = "no";
96ea906c41SOllivier Robert #define zShell_Name                  (zNotShell_Name + 3)
97ea906c41SOllivier Robert #define SHELL_FLAGS       (OPTST_INITENABLED \
98ea906c41SOllivier Robert         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
99ea906c41SOllivier Robert 
100ea906c41SOllivier Robert /*
101ea906c41SOllivier Robert  *  Help/More_Help/Version option descriptions:
102ea906c41SOllivier Robert  */
103ea906c41SOllivier Robert tSCC zHelpText[]       = "Display usage information and exit";
104ea906c41SOllivier Robert tSCC zHelp_Name[]      = "help";
105ea906c41SOllivier Robert 
106ea906c41SOllivier Robert tSCC zMore_HelpText[]  = "Extended usage information passed thru pager";
107ea906c41SOllivier Robert tSCC zMore_Help_Name[] = "more-help";
108ea906c41SOllivier Robert 
109ea906c41SOllivier Robert tSCC zVersionText[]    = "Output version information and exit";
110ea906c41SOllivier Robert tSCC zVersion_Name[]   = "version";
111ea906c41SOllivier Robert /*
112ea906c41SOllivier Robert  *  Declare option callback procedures
113ea906c41SOllivier Robert  */
114ea906c41SOllivier Robert extern tOptProc
115ea906c41SOllivier Robert     optionPagedUsage, optionPrintVersion;
116ea906c41SOllivier Robert static tOptProc
117ea906c41SOllivier Robert     doUsageOpt;
118ea906c41SOllivier Robert 
119ea906c41SOllivier Robert /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
120ea906c41SOllivier Robert  *
121ea906c41SOllivier Robert  *  Define the Genshellopt Option Descriptions.
122ea906c41SOllivier Robert  */
123ea906c41SOllivier Robert static tOptDesc optDesc[ OPTION_CT ] = {
124ea906c41SOllivier Robert   {  /* entry idx, value */ 0, VALUE_OPT_SCRIPT,
125ea906c41SOllivier Robert      /* equiv idx, value */ 0, VALUE_OPT_SCRIPT,
126ea906c41SOllivier Robert      /* equivalenced to  */ NO_EQUIVALENT,
127ea906c41SOllivier Robert      /* min, max, act ct */ 0, 1, 0,
128ea906c41SOllivier Robert      /* opt state flags  */ SCRIPT_FLAGS, 0,
129ea906c41SOllivier Robert      /* last opt argumnt */ { NULL },
130ea906c41SOllivier Robert      /* arg list/cookie  */ NULL,
131ea906c41SOllivier Robert      /* must/cannot opts */ NULL, NULL,
132ea906c41SOllivier Robert      /* option proc      */ NULL,
133ea906c41SOllivier Robert      /* desc, NAME, name */ zScriptText, zScript_NAME, zScript_Name,
134ea906c41SOllivier Robert      /* disablement strs */ NULL, NULL },
135ea906c41SOllivier Robert 
136ea906c41SOllivier Robert   {  /* entry idx, value */ 1, VALUE_OPT_SHELL,
137ea906c41SOllivier Robert      /* equiv idx, value */ 1, VALUE_OPT_SHELL,
138ea906c41SOllivier Robert      /* equivalenced to  */ NO_EQUIVALENT,
139ea906c41SOllivier Robert      /* min, max, act ct */ 0, 1, 0,
140ea906c41SOllivier Robert      /* opt state flags  */ SHELL_FLAGS, 0,
141ea906c41SOllivier Robert      /* last opt argumnt */ { NULL },
142ea906c41SOllivier Robert      /* arg list/cookie  */ NULL,
143ea906c41SOllivier Robert      /* must/cannot opts */ NULL, NULL,
144ea906c41SOllivier Robert      /* option proc      */ NULL,
145ea906c41SOllivier Robert      /* desc, NAME, name */ zShellText, zShell_NAME, zShell_Name,
146ea906c41SOllivier Robert      /* disablement strs */ zNotShell_Name, zNotShell_Pfx },
147ea906c41SOllivier Robert 
148ea906c41SOllivier Robert #ifdef NO_OPTIONAL_OPT_ARGS
149ea906c41SOllivier Robert #  define VERSION_OPT_FLAGS     OPTST_IMM | OPTST_NO_INIT
150ea906c41SOllivier Robert #else
151ea906c41SOllivier Robert #  define VERSION_OPT_FLAGS     OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
152ea906c41SOllivier Robert                                 OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT
153ea906c41SOllivier Robert #endif
154ea906c41SOllivier Robert 
155ea906c41SOllivier Robert   {  /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION,
156ea906c41SOllivier Robert      /* equiv idx value  */ NO_EQUIVALENT, 0,
157ea906c41SOllivier Robert      /* equivalenced to  */ NO_EQUIVALENT,
158ea906c41SOllivier Robert      /* min, max, act ct */ 0, 1, 0,
159ea906c41SOllivier Robert      /* opt state flags  */ VERSION_OPT_FLAGS, 0,
160ea906c41SOllivier Robert      /* last opt argumnt */ { NULL },
161ea906c41SOllivier Robert      /* arg list/cookie  */ NULL,
162ea906c41SOllivier Robert      /* must/cannot opts */ NULL, NULL,
163ea906c41SOllivier Robert      /* option proc      */ optionPrintVersion,
164ea906c41SOllivier Robert      /* desc, NAME, name */ zVersionText, NULL, zVersion_Name,
165ea906c41SOllivier Robert      /* disablement strs */ NULL, NULL },
166ea906c41SOllivier Robert 
167ea906c41SOllivier Robert #undef VERSION_OPT_FLAGS
168ea906c41SOllivier Robert 
169ea906c41SOllivier Robert 
170ea906c41SOllivier Robert   {  /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP,
171ea906c41SOllivier Robert      /* equiv idx value  */ NO_EQUIVALENT, 0,
172ea906c41SOllivier Robert      /* equivalenced to  */ NO_EQUIVALENT,
173ea906c41SOllivier Robert      /* min, max, act ct */ 0, 1, 0,
174ea906c41SOllivier Robert      /* opt state flags  */ OPTST_IMM | OPTST_NO_INIT, 0,
175ea906c41SOllivier Robert      /* last opt argumnt */ { NULL },
176ea906c41SOllivier Robert      /* arg list/cookie  */ NULL,
177ea906c41SOllivier Robert      /* must/cannot opts */ NULL, NULL,
178ea906c41SOllivier Robert      /* option proc      */ doUsageOpt,
179ea906c41SOllivier Robert      /* desc, NAME, name */ zHelpText, NULL, zHelp_Name,
180ea906c41SOllivier Robert      /* disablement strs */ NULL, NULL },
181ea906c41SOllivier Robert 
182ea906c41SOllivier Robert   {  /* entry idx, value */ INDEX_OPT_MORE_HELP, VALUE_OPT_MORE_HELP,
183ea906c41SOllivier Robert      /* equiv idx value  */ NO_EQUIVALENT, 0,
184ea906c41SOllivier Robert      /* equivalenced to  */ NO_EQUIVALENT,
185ea906c41SOllivier Robert      /* min, max, act ct */ 0, 1, 0,
186ea906c41SOllivier Robert      /* opt state flags  */ OPTST_IMM | OPTST_NO_INIT, 0,
187ea906c41SOllivier Robert      /* last opt argumnt */ { NULL },
188ea906c41SOllivier Robert      /* arg list/cookie  */ NULL,
189ea906c41SOllivier Robert      /* must/cannot opts */ NULL,  NULL,
190ea906c41SOllivier Robert      /* option proc      */ optionPagedUsage,
191ea906c41SOllivier Robert      /* desc, NAME, name */ zMore_HelpText, NULL, zMore_Help_Name,
192ea906c41SOllivier Robert      /* disablement strs */ NULL, NULL }
193ea906c41SOllivier Robert };
194ea906c41SOllivier Robert 
195ea906c41SOllivier Robert /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
196ea906c41SOllivier Robert  *
197ea906c41SOllivier Robert  *  Define the Genshellopt Option Environment
198ea906c41SOllivier Robert  */
199ea906c41SOllivier Robert tSCC   zPROGNAME[]   = "GENSHELLOPT";
200ea906c41SOllivier Robert tSCC   zUsageTitle[] =
201ea906c41SOllivier Robert "genshellopt - Generate Shell Option Processing Script - Ver. 1\n\
202ea906c41SOllivier Robert USAGE:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n";
203ea906c41SOllivier Robert #define zRcName     NULL
204ea906c41SOllivier Robert #define apzHomeList NULL
205ea906c41SOllivier Robert 
206ea906c41SOllivier Robert tSCC   zBugsAddr[]    = "autogen-users@lists.sourceforge.net";
207ea906c41SOllivier Robert tSCC   zExplain[]     = "\n\
208ea906c41SOllivier Robert Note that `shell' is only useful if the output file does not already\n\
209ea906c41SOllivier Robert exist.  If it does, then the shell name and optional first argument\n\
210ea906c41SOllivier Robert will be extracted from the script file.\n";
211ea906c41SOllivier Robert tSCC    zDetail[]     = "\n\
212ea906c41SOllivier Robert If the script file already exists and contains Automated Option Processing\n\
213ea906c41SOllivier Robert text, the second line of the file through the ending tag will be replaced\n\
214ea906c41SOllivier Robert by the newly generated text.  The first `#!' line will be regenerated.\n";
215ea906c41SOllivier Robert tSCC    zFullVersion[] = GENSHELLOPT_FULL_VERSION;
216ea906c41SOllivier Robert /* extracted from optcode.tpl near line 408 */
217ea906c41SOllivier Robert 
218ea906c41SOllivier Robert #if defined(ENABLE_NLS)
219ea906c41SOllivier Robert # define OPTPROC_BASE OPTPROC_TRANSLATE
220ea906c41SOllivier Robert   static tOptionXlateProc translate_option_strings;
221ea906c41SOllivier Robert #else
222ea906c41SOllivier Robert # define OPTPROC_BASE OPTPROC_NONE
223ea906c41SOllivier Robert # define translate_option_strings NULL
224ea906c41SOllivier Robert #endif /* ENABLE_NLS */
225ea906c41SOllivier Robert 
226ea906c41SOllivier Robert tOptions genshelloptOptions = {
227ea906c41SOllivier Robert     OPTIONS_STRUCT_VERSION,
228ea906c41SOllivier Robert     0, NULL,                    /* original argc + argv    */
229ea906c41SOllivier Robert     ( OPTPROC_BASE
230ea906c41SOllivier Robert     + OPTPROC_ERRSTOP
231ea906c41SOllivier Robert     + OPTPROC_SHORTOPT
232ea906c41SOllivier Robert     + OPTPROC_LONGOPT
233ea906c41SOllivier Robert     + OPTPROC_NO_REQ_OPT
234ea906c41SOllivier Robert     + OPTPROC_NEGATIONS
235ea906c41SOllivier Robert     + OPTPROC_NO_ARGS ),
236ea906c41SOllivier Robert     0, NULL,                    /* current option index, current option */
237ea906c41SOllivier Robert     NULL,         NULL,         zPROGNAME,
238ea906c41SOllivier Robert     zRcName,      zCopyright,   zCopyrightNotice,
239ea906c41SOllivier Robert     zFullVersion, apzHomeList,  zUsageTitle,
240ea906c41SOllivier Robert     zExplain,     zDetail,      optDesc,
241ea906c41SOllivier Robert     zBugsAddr,                  /* address to send bugs to */
242ea906c41SOllivier Robert     NULL, NULL,                 /* extensions/saved state  */
243ea906c41SOllivier Robert     genshelloptUsage,       /* usage procedure */
244ea906c41SOllivier Robert     translate_option_strings,   /* translation procedure */
245ea906c41SOllivier Robert     /*
246ea906c41SOllivier Robert      *  Indexes to special options
247ea906c41SOllivier Robert      */
248ea906c41SOllivier Robert     { INDEX_OPT_MORE_HELP,
249ea906c41SOllivier Robert        0 /* no option state saving */,
250ea906c41SOllivier Robert       NO_EQUIVALENT /* index of '-#' option */,
251ea906c41SOllivier Robert       NO_EQUIVALENT /* index of default opt */
252ea906c41SOllivier Robert     },
253ea906c41SOllivier Robert     5 /* full option count */, 2 /* user option count */
254ea906c41SOllivier Robert };
255ea906c41SOllivier Robert 
256ea906c41SOllivier Robert /*
257ea906c41SOllivier Robert  *  Create the static procedure(s) declared above.
258ea906c41SOllivier Robert  */
259ea906c41SOllivier Robert static void
260ea906c41SOllivier Robert doUsageOpt(
261ea906c41SOllivier Robert     tOptions*   pOptions,
262ea906c41SOllivier Robert     tOptDesc*   pOptDesc )
263ea906c41SOllivier Robert {
264ea906c41SOllivier Robert     USAGE( EXIT_SUCCESS );
265ea906c41SOllivier Robert }
266ea906c41SOllivier Robert /* extracted from optcode.tpl near line 514 */
267ea906c41SOllivier Robert 
268ea906c41SOllivier Robert #if ENABLE_NLS
269ea906c41SOllivier Robert #include <stdio.h>
270ea906c41SOllivier Robert #include <stdlib.h>
271ea906c41SOllivier Robert #include <string.h>
272ea906c41SOllivier Robert #include <unistd.h>
273ea906c41SOllivier Robert #include <autoopts/usage-txt.h>
274ea906c41SOllivier Robert 
275ea906c41SOllivier Robert static char* AO_gettext( char const* pz );
276ea906c41SOllivier Robert static void  coerce_it(void** s);
277ea906c41SOllivier Robert 
278ea906c41SOllivier Robert static char*
279ea906c41SOllivier Robert AO_gettext( char const* pz )
280ea906c41SOllivier Robert {
281ea906c41SOllivier Robert     char* pzRes;
282ea906c41SOllivier Robert     if (pz == NULL)
283ea906c41SOllivier Robert         return NULL;
284ea906c41SOllivier Robert     pzRes = _(pz);
285ea906c41SOllivier Robert     if (pzRes == pz)
286ea906c41SOllivier Robert         return pzRes;
287ea906c41SOllivier Robert     pzRes = strdup( pzRes );
288ea906c41SOllivier Robert     if (pzRes == NULL) {
289ea906c41SOllivier Robert         fputs( _("No memory for duping translated strings\n"), stderr );
290ea906c41SOllivier Robert         exit( EXIT_FAILURE );
291ea906c41SOllivier Robert     }
292ea906c41SOllivier Robert     return pzRes;
293ea906c41SOllivier Robert }
294ea906c41SOllivier Robert 
295ea906c41SOllivier Robert static void coerce_it(void** s) { *s = AO_gettext(*s); }
296ea906c41SOllivier Robert #define COERSION(_f) \
297ea906c41SOllivier Robert   coerce_it((void*)&(genshelloptOptions._f))
298ea906c41SOllivier Robert 
299ea906c41SOllivier Robert /*
300ea906c41SOllivier Robert  *  This invokes the translation code (e.g. gettext(3)).
301ea906c41SOllivier Robert  */
302ea906c41SOllivier Robert static void
303ea906c41SOllivier Robert translate_option_strings( void )
304ea906c41SOllivier Robert {
305ea906c41SOllivier Robert     /*
306ea906c41SOllivier Robert      *  Guard against re-translation.  It won't work.  The strings will have
307ea906c41SOllivier Robert      *  been changed by the first pass through this code.  One shot only.
308ea906c41SOllivier Robert      */
309ea906c41SOllivier Robert     if (option_usage_text.field_ct == 0)
310ea906c41SOllivier Robert         return;
311ea906c41SOllivier Robert     /*
312ea906c41SOllivier Robert      *  Do the translations.  The first pointer follows the field count field.
313ea906c41SOllivier Robert      *  The field count field is the size of a pointer.
314ea906c41SOllivier Robert      */
315ea906c41SOllivier Robert     {
316ea906c41SOllivier Robert         char** ppz = (char**)(void*)&(option_usage_text);
317ea906c41SOllivier Robert         int    ix  = option_usage_text.field_ct;
318ea906c41SOllivier Robert 
319ea906c41SOllivier Robert         do {
320ea906c41SOllivier Robert             ppz++;
321ea906c41SOllivier Robert             *ppz = AO_gettext(*ppz);
322ea906c41SOllivier Robert         } while (--ix > 0);
323ea906c41SOllivier Robert     }
324ea906c41SOllivier Robert     option_usage_text.field_ct = 0;
325ea906c41SOllivier Robert 
326ea906c41SOllivier Robert     {
327ea906c41SOllivier Robert         tOptDesc* pOD = genshelloptOptions.pOptDesc;
328ea906c41SOllivier Robert         int       ix  = genshelloptOptions.optCt;
329ea906c41SOllivier Robert 
330ea906c41SOllivier Robert         for (;;) {
331ea906c41SOllivier Robert             pOD->pzText           = AO_gettext(pOD->pzText);
332ea906c41SOllivier Robert             pOD->pz_NAME          = AO_gettext(pOD->pz_NAME);
333ea906c41SOllivier Robert             pOD->pz_Name          = AO_gettext(pOD->pz_Name);
334ea906c41SOllivier Robert             pOD->pz_DisableName   = AO_gettext(pOD->pz_DisableName);
335ea906c41SOllivier Robert             pOD->pz_DisablePfx    = AO_gettext(pOD->pz_DisablePfx);
336ea906c41SOllivier Robert             if (--ix <= 0)
337ea906c41SOllivier Robert                 break;
338ea906c41SOllivier Robert             pOD++;
339ea906c41SOllivier Robert         }
340ea906c41SOllivier Robert     }
341ea906c41SOllivier Robert     COERSION(pzCopyright);
342ea906c41SOllivier Robert     COERSION(pzCopyNotice);
343ea906c41SOllivier Robert     COERSION(pzFullVersion);
344ea906c41SOllivier Robert     COERSION(pzUsageTitle);
345ea906c41SOllivier Robert     COERSION(pzExplain);
346ea906c41SOllivier Robert     COERSION(pzDetail);
347ea906c41SOllivier Robert }
348ea906c41SOllivier Robert 
349ea906c41SOllivier Robert #endif /* ENABLE_NLS */
350ea906c41SOllivier Robert 
351ea906c41SOllivier Robert #ifdef  __cplusplus
352ea906c41SOllivier Robert }
353ea906c41SOllivier Robert #endif
354ea906c41SOllivier Robert /* genshell.c ends here */
355