1181834Sroberto/*   -*- buffer-read-only: t -*- vi: set ro:
2285612Sdelphij *
3181834Sroberto *  DO NOT EDIT THIS FILE   (genshell.c)
4285612Sdelphij *
5285612Sdelphij *  It has been AutoGen-ed
6181834Sroberto *  From the definitions    genshell.def
7181834Sroberto *  and the template file   options
8181834Sroberto *
9285612Sdelphij * Generated from AutoOpts 41:0:16 templates.
10181834Sroberto *
11285612Sdelphij *  AutoOpts is a copyrighted work.  This source file is not encumbered
12285612Sdelphij *  by AutoOpts licensing, but is provided under the licensing terms chosen
13285612Sdelphij *  by the genshellopt author or copyright holder.  AutoOpts is
14285612Sdelphij *  licensed under the terms of the LGPL.  The redistributable library
15285612Sdelphij *  (``libopts'') is licensed under the terms of either the LGPL or, at the
16285612Sdelphij *  users discretion, the BSD license.  See the AutoOpts and/or libopts sources
17285612Sdelphij *  for details.
18181834Sroberto *
19285612Sdelphij * The genshellopt program is copyrighted and licensed
20285612Sdelphij * under the following terms:
21181834Sroberto *
22285612Sdelphij *  Copyright (C) 1999-2014 Bruce Korb, all rights reserved.
23285612Sdelphij *  This is free software. It is licensed for use, modification and
24285612Sdelphij *  redistribution under the terms of the GNU Lesser General Public License,
25285612Sdelphij *  version 2 or later <http://www.gnu.org/licenses/old-licenses/lgpl-2.0.html>
26285612Sdelphij *
27285612Sdelphij *  The genshellopt library is free software; you can redistribute it and/or
28285612Sdelphij *  modify it under the terms of the GNU Library General Public License as
29285612Sdelphij *  published by the Free Software Foundation; either version 2 of the
30285612Sdelphij *  License, or (at your option) any later version.
31285612Sdelphij *
32285612Sdelphij *  This library is distributed in the hope that it will be useful, but
33285612Sdelphij *  WITHOUT ANY WARRANTY; without even the implied warranty of
34285612Sdelphij *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
35285612Sdelphij *  Library General Public License for more details.
36285612Sdelphij *
37285612Sdelphij *  You should have received a copy of the GNU Library General Public
38285612Sdelphij *  License along with this library; if not, see
39285612Sdelphij *  <http://www.gnu.org/licenses/old-licenses/lgpl-2.0.html>
40181834Sroberto */
41181834Sroberto
42285612Sdelphij#ifndef __doxygen__
43285612Sdelphij#define OPTION_CODE_COMPILE 1
44285612Sdelphij#include "genshell.h"
45285612Sdelphij#include <sys/types.h>
46181834Sroberto
47181834Sroberto#include <limits.h>
48285612Sdelphij#include <stdio.h>
49285612Sdelphij#include <stdlib.h>
50181834Sroberto
51181834Sroberto#ifdef  __cplusplus
52181834Srobertoextern "C" {
53181834Sroberto#endif
54285612Sdelphijextern FILE * option_usage_fp;
55285612Sdelphij#define zCopyright      (genshellopt_opt_strs+0)
56285612Sdelphij#define zLicenseDescrip (genshellopt_opt_strs+285)
57285612Sdelphij
58181834Srobertoextern tUsageProc genshelloptUsage;
59181834Sroberto
60181834Sroberto#ifndef NULL
61181834Sroberto#  define NULL 0
62181834Sroberto#endif
63285612Sdelphij
64285612Sdelphij/**
65285612Sdelphij *  static const strings for genshellopt options
66181834Sroberto */
67285612Sdelphijstatic char const genshellopt_opt_strs[1769] =
68285612Sdelphij/*     0 */ "genshellopt 1\n"
69285612Sdelphij            "Copyright (C) 1999-2014 Bruce Korb, all rights reserved.\n"
70285612Sdelphij            "This is free software. It is licensed for use, modification and\n"
71285612Sdelphij            "redistribution under the terms of the GNU Lesser General Public License,\n"
72285612Sdelphij            "version 2 or later <http://www.gnu.org/licenses/old-licenses/lgpl-2.0.html>\n\0"
73285612Sdelphij/*   285 */ "The genshellopt library is free software; you can redistribute it and/or\n"
74285612Sdelphij            "modify it under the terms of the GNU Library General Public License as\n"
75285612Sdelphij            "published by the Free Software Foundation; either version 2 of the License,\n"
76285612Sdelphij            "or (at your option) any later version.\n\n"
77285612Sdelphij            "This library is distributed in the hope that it will be useful, but WITHOUT\n"
78285612Sdelphij            "ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\n"
79285612Sdelphij            "FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public\n"
80285612Sdelphij            "License for more details.\n\n"
81285612Sdelphij            "You should have received a copy of the GNU Library General Public License\n"
82285612Sdelphij            "along with this library; if not, see\n"
83285612Sdelphij            "<http://www.gnu.org/licenses/old-licenses/lgpl-2.0.html>\n\0"
84285612Sdelphij/*   957 */ "Output Script File\0"
85285612Sdelphij/*   976 */ "SCRIPT\0"
86285612Sdelphij/*   983 */ "script\0"
87285612Sdelphij/*   990 */ "Shell name (follows \"#!\" magic)\0"
88285612Sdelphij/*  1022 */ "SHELL\0"
89285612Sdelphij/*  1028 */ "no-shell\0"
90285612Sdelphij/*  1037 */ "no\0"
91285612Sdelphij/*  1040 */ "display extended usage information and exit\0"
92285612Sdelphij/*  1084 */ "help\0"
93285612Sdelphij/*  1089 */ "extended usage information passed thru pager\0"
94285612Sdelphij/*  1134 */ "more-help\0"
95285612Sdelphij/*  1144 */ "output version information and exit\0"
96285612Sdelphij/*  1180 */ "version\0"
97285612Sdelphij/*  1188 */ "GENSHELLOPT\0"
98285612Sdelphij/*  1200 */ "genshellopt - Generate Shell Option Processing Script - Ver. 1\n"
99285612Sdelphij            "Usage:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
100285612Sdelphij/*  1321 */ "autogen-users@lists.sourceforge.net\0"
101285612Sdelphij/*  1357 */ "Note that 'shell' is only useful if the output file does not already exist.\n"
102285612Sdelphij            "If it does, then the shell name and optional first argument will be\n"
103285612Sdelphij            "extracted from the script file.\n\0"
104285612Sdelphij/*  1534 */ "If the script file already exists and contains Automated Option Processing\n"
105285612Sdelphij            "text, the second line of the file through the ending tag will be replaced\n"
106285612Sdelphij            "by the newly generated text.  The first '#!' line will be regenerated.\n\0"
107285612Sdelphij/*  1755 */ "genshellopt 1";
108285612Sdelphij
109285612Sdelphij/**
110285612Sdelphij *  script option description:
111285612Sdelphij */
112285612Sdelphij/** Descriptive text for the script option */
113285612Sdelphij#define SCRIPT_DESC      (genshellopt_opt_strs+957)
114285612Sdelphij/** Upper-cased name for the script option */
115285612Sdelphij#define SCRIPT_NAME      (genshellopt_opt_strs+976)
116285612Sdelphij/** Name string for the script option */
117285612Sdelphij#define SCRIPT_name      (genshellopt_opt_strs+983)
118285612Sdelphij/** Compiled in flag settings for the script option */
119285612Sdelphij#define SCRIPT_FLAGS     (OPTST_DISABLED \
120181834Sroberto        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
121181834Sroberto
122285612Sdelphij/**
123285612Sdelphij *  shell option description:
124181834Sroberto */
125285612Sdelphij/** Descriptive text for the shell option */
126285612Sdelphij#define SHELL_DESC      (genshellopt_opt_strs+990)
127285612Sdelphij/** Upper-cased name for the shell option */
128285612Sdelphij#define SHELL_NAME      (genshellopt_opt_strs+1022)
129285612Sdelphij/** disablement name for the shell option */
130285612Sdelphij#define NOT_SHELL_name  (genshellopt_opt_strs+1028)
131285612Sdelphij/** disablement prefix for the shell option */
132285612Sdelphij#define NOT_SHELL_PFX   (genshellopt_opt_strs+1037)
133285612Sdelphij/** Name string for the shell option */
134285612Sdelphij#define SHELL_name      (NOT_SHELL_name + 3)
135285612Sdelphij/** Compiled in flag settings for the shell option */
136285612Sdelphij#define SHELL_FLAGS     (OPTST_INITENABLED \
137181834Sroberto        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
138181834Sroberto
139181834Sroberto/*
140181834Sroberto *  Help/More_Help/Version option descriptions:
141181834Sroberto */
142285612Sdelphij#define HELP_DESC       (genshellopt_opt_strs+1040)
143285612Sdelphij#define HELP_name       (genshellopt_opt_strs+1084)
144285612Sdelphij#ifdef HAVE_WORKING_FORK
145285612Sdelphij#define MORE_HELP_DESC  (genshellopt_opt_strs+1089)
146285612Sdelphij#define MORE_HELP_name  (genshellopt_opt_strs+1134)
147285612Sdelphij#define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
148285612Sdelphij#else
149285612Sdelphij#define MORE_HELP_DESC  HELP_DESC
150285612Sdelphij#define MORE_HELP_name  HELP_name
151285612Sdelphij#define MORE_HELP_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
152285612Sdelphij#endif
153285612Sdelphij#ifdef NO_OPTIONAL_OPT_ARGS
154285612Sdelphij#  define VER_FLAGS     (OPTST_IMM | OPTST_NO_INIT)
155285612Sdelphij#else
156285612Sdelphij#  define VER_FLAGS     (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
157285612Sdelphij                         OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
158285612Sdelphij#endif
159285612Sdelphij#define VER_DESC        (genshellopt_opt_strs+1144)
160285612Sdelphij#define VER_name        (genshellopt_opt_strs+1180)
161285612Sdelphij/**
162181834Sroberto *  Declare option callback procedures
163181834Sroberto */
164181834Srobertoextern tOptProc
165285612Sdelphij    optionBooleanVal,   optionNestedVal,    optionNumericVal,
166285612Sdelphij    optionPagedUsage,   optionPrintVersion, optionResetOpt,
167285612Sdelphij    optionStackArg,     optionTimeDate,     optionTimeVal,
168285612Sdelphij    optionUnstackArg,   optionVendorOption;
169181834Srobertostatic tOptProc
170181834Sroberto    doUsageOpt;
171285612Sdelphij#define VER_PROC        optionPrintVersion
172181834Sroberto
173285612Sdelphij/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
174285612Sdelphij/**
175285612Sdelphij *  Define the genshellopt Option Descriptions.
176285612Sdelphij * This is an array of GENSHELL_OPTION_CT entries, one for each
177285612Sdelphij * option that the genshellopt program responds to.
178181834Sroberto */
179285612Sdelphijstatic tOptDesc optDesc[GENSHELL_OPTION_CT] = {
180285612Sdelphij  {  /* entry idx, value */ 0, VALUE_GENSHELL_OPT_SCRIPT,
181285612Sdelphij     /* equiv idx, value */ 0, VALUE_GENSHELL_OPT_SCRIPT,
182181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
183181834Sroberto     /* min, max, act ct */ 0, 1, 0,
184181834Sroberto     /* opt state flags  */ SCRIPT_FLAGS, 0,
185285612Sdelphij     /* last opt argumnt */ { NULL }, /* --script */
186181834Sroberto     /* arg list/cookie  */ NULL,
187181834Sroberto     /* must/cannot opts */ NULL, NULL,
188181834Sroberto     /* option proc      */ NULL,
189285612Sdelphij     /* desc, NAME, name */ SCRIPT_DESC, SCRIPT_NAME, SCRIPT_name,
190181834Sroberto     /* disablement strs */ NULL, NULL },
191181834Sroberto
192285612Sdelphij  {  /* entry idx, value */ 1, VALUE_GENSHELL_OPT_SHELL,
193285612Sdelphij     /* equiv idx, value */ 1, VALUE_GENSHELL_OPT_SHELL,
194181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
195181834Sroberto     /* min, max, act ct */ 0, 1, 0,
196181834Sroberto     /* opt state flags  */ SHELL_FLAGS, 0,
197285612Sdelphij     /* last opt argumnt */ { NULL }, /* --shell */
198181834Sroberto     /* arg list/cookie  */ NULL,
199181834Sroberto     /* must/cannot opts */ NULL, NULL,
200181834Sroberto     /* option proc      */ NULL,
201285612Sdelphij     /* desc, NAME, name */ SHELL_DESC, SHELL_NAME, SHELL_name,
202285612Sdelphij     /* disablement strs */ NOT_SHELL_name, NOT_SHELL_PFX },
203181834Sroberto
204285612Sdelphij  {  /* entry idx, value */ INDEX_GENSHELL_OPT_VERSION, VALUE_GENSHELL_OPT_VERSION,
205285612Sdelphij     /* equiv idx value  */ NO_EQUIVALENT, VALUE_GENSHELL_OPT_VERSION,
206181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
207181834Sroberto     /* min, max, act ct */ 0, 1, 0,
208285612Sdelphij     /* opt state flags  */ VER_FLAGS, AOUSE_VERSION,
209181834Sroberto     /* last opt argumnt */ { NULL },
210181834Sroberto     /* arg list/cookie  */ NULL,
211181834Sroberto     /* must/cannot opts */ NULL, NULL,
212285612Sdelphij     /* option proc      */ VER_PROC,
213285612Sdelphij     /* desc, NAME, name */ VER_DESC, NULL, VER_name,
214181834Sroberto     /* disablement strs */ NULL, NULL },
215181834Sroberto
216181834Sroberto
217181834Sroberto
218285612Sdelphij  {  /* entry idx, value */ INDEX_GENSHELL_OPT_HELP, VALUE_GENSHELL_OPT_HELP,
219285612Sdelphij     /* equiv idx value  */ NO_EQUIVALENT, VALUE_GENSHELL_OPT_HELP,
220181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
221181834Sroberto     /* min, max, act ct */ 0, 1, 0,
222285612Sdelphij     /* opt state flags  */ OPTST_IMM | OPTST_NO_INIT, AOUSE_HELP,
223181834Sroberto     /* last opt argumnt */ { NULL },
224181834Sroberto     /* arg list/cookie  */ NULL,
225181834Sroberto     /* must/cannot opts */ NULL, NULL,
226181834Sroberto     /* option proc      */ doUsageOpt,
227285612Sdelphij     /* desc, NAME, name */ HELP_DESC, NULL, HELP_name,
228181834Sroberto     /* disablement strs */ NULL, NULL },
229181834Sroberto
230285612Sdelphij  {  /* entry idx, value */ INDEX_GENSHELL_OPT_MORE_HELP, VALUE_GENSHELL_OPT_MORE_HELP,
231285612Sdelphij     /* equiv idx value  */ NO_EQUIVALENT, VALUE_GENSHELL_OPT_MORE_HELP,
232181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
233181834Sroberto     /* min, max, act ct */ 0, 1, 0,
234285612Sdelphij     /* opt state flags  */ MORE_HELP_FLAGS, AOUSE_MORE_HELP,
235181834Sroberto     /* last opt argumnt */ { NULL },
236181834Sroberto     /* arg list/cookie  */ NULL,
237181834Sroberto     /* must/cannot opts */ NULL,  NULL,
238181834Sroberto     /* option proc      */ optionPagedUsage,
239285612Sdelphij     /* desc, NAME, name */ MORE_HELP_DESC, NULL, MORE_HELP_name,
240181834Sroberto     /* disablement strs */ NULL, NULL }
241181834Sroberto};
242181834Sroberto
243181834Sroberto
244285612Sdelphij/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
245285612Sdelphij/** Reference to the upper cased version of genshellopt. */
246285612Sdelphij#define zPROGNAME       (genshellopt_opt_strs+1188)
247285612Sdelphij/** Reference to the title line for genshellopt usage. */
248285612Sdelphij#define zUsageTitle     (genshellopt_opt_strs+1200)
249285612Sdelphij/** There is no genshellopt configuration file. */
250285612Sdelphij#define zRcName         NULL
251285612Sdelphij/** There are no directories to search for genshellopt config files. */
252285612Sdelphij#define apzHomeList     NULL
253285612Sdelphij/** The genshellopt program bug email address. */
254285612Sdelphij#define zBugsAddr       (genshellopt_opt_strs+1321)
255285612Sdelphij/** Clarification/explanation of what genshellopt does. */
256285612Sdelphij#define zExplain        (genshellopt_opt_strs+1357)
257285612Sdelphij/** Extra detail explaining what genshellopt does. */
258285612Sdelphij#define zDetail         (genshellopt_opt_strs+1534)
259285612Sdelphij/** The full version string for genshellopt. */
260285612Sdelphij#define zFullVersion    (genshellopt_opt_strs+1755)
261285612Sdelphij/* extracted from optcode.tlib near line 364 */
262181834Sroberto
263181834Sroberto#if defined(ENABLE_NLS)
264181834Sroberto# define OPTPROC_BASE OPTPROC_TRANSLATE
265181834Sroberto  static tOptionXlateProc translate_option_strings;
266181834Sroberto#else
267181834Sroberto# define OPTPROC_BASE OPTPROC_NONE
268181834Sroberto# define translate_option_strings NULL
269181834Sroberto#endif /* ENABLE_NLS */
270181834Sroberto
271285612Sdelphij#define genshellopt_full_usage (NULL)
272285612Sdelphij#define genshellopt_short_usage (NULL)
273285612Sdelphij
274285612Sdelphij#endif /* not defined __doxygen__ */
275285612Sdelphij
276285612Sdelphij/*
277285612Sdelphij *  Create the static procedure(s) declared above.
278285612Sdelphij */
279285612Sdelphij/**
280285612Sdelphij * The callout function that invokes the genshelloptUsage function.
281285612Sdelphij *
282285612Sdelphij * @param[in] opts the AutoOpts option description structure
283285612Sdelphij * @param[in] od   the descriptor for the "help" (usage) option.
284285612Sdelphij * @noreturn
285285612Sdelphij */
286285612Sdelphijstatic void
287285612SdelphijdoUsageOpt(tOptions * opts, tOptDesc * od)
288285612Sdelphij{
289285612Sdelphij    int ex_code;
290285612Sdelphij    ex_code = GENSHELLOPT_EXIT_SUCCESS;
291285612Sdelphij    genshelloptUsage(&genshelloptOptions, ex_code);
292285612Sdelphij    /* NOTREACHED */
293285612Sdelphij    exit(1);
294285612Sdelphij    (void)opts;
295285612Sdelphij    (void)od;
296285612Sdelphij}
297285612Sdelphij/* extracted from optmain.tlib near line 1250 */
298285612Sdelphij
299285612Sdelphij/**
300285612Sdelphij * The directory containing the data associated with genshellopt.
301285612Sdelphij */
302285612Sdelphij#ifndef  PKGDATADIR
303285612Sdelphij# define PKGDATADIR ""
304285612Sdelphij#endif
305285612Sdelphij
306285612Sdelphij/**
307285612Sdelphij * Information about the person or institution that packaged genshellopt
308285612Sdelphij * for the current distribution.
309285612Sdelphij */
310285612Sdelphij#ifndef  WITH_PACKAGER
311285612Sdelphij# define genshellopt_packager_info NULL
312285612Sdelphij#else
313285612Sdelphij/** Packager information for genshellopt. */
314285612Sdelphijstatic char const genshellopt_packager_info[] =
315285612Sdelphij    "Packaged by " WITH_PACKAGER
316285612Sdelphij
317285612Sdelphij# ifdef WITH_PACKAGER_VERSION
318285612Sdelphij        " ("WITH_PACKAGER_VERSION")"
319285612Sdelphij# endif
320285612Sdelphij
321285612Sdelphij# ifdef WITH_PACKAGER_BUG_REPORTS
322285612Sdelphij    "\nReport genshellopt bugs to " WITH_PACKAGER_BUG_REPORTS
323285612Sdelphij# endif
324285612Sdelphij    "\n";
325285612Sdelphij#endif
326285612Sdelphij#ifndef __doxygen__
327285612Sdelphij
328285612Sdelphij#endif /* __doxygen__ */
329285612Sdelphij/**
330285612Sdelphij * The option definitions for genshellopt.  The one structure that
331285612Sdelphij * binds them all.
332285612Sdelphij */
333181834SrobertotOptions genshelloptOptions = {
334181834Sroberto    OPTIONS_STRUCT_VERSION,
335181834Sroberto    0, NULL,                    /* original argc + argv    */
336181834Sroberto    ( OPTPROC_BASE
337181834Sroberto    + OPTPROC_ERRSTOP
338181834Sroberto    + OPTPROC_SHORTOPT
339181834Sroberto    + OPTPROC_LONGOPT
340181834Sroberto    + OPTPROC_NO_REQ_OPT
341181834Sroberto    + OPTPROC_NEGATIONS
342181834Sroberto    + OPTPROC_NO_ARGS ),
343181834Sroberto    0, NULL,                    /* current option index, current option */
344181834Sroberto    NULL,         NULL,         zPROGNAME,
345285612Sdelphij    zRcName,      zCopyright,   zLicenseDescrip,
346181834Sroberto    zFullVersion, apzHomeList,  zUsageTitle,
347181834Sroberto    zExplain,     zDetail,      optDesc,
348181834Sroberto    zBugsAddr,                  /* address to send bugs to */
349181834Sroberto    NULL, NULL,                 /* extensions/saved state  */
350285612Sdelphij    genshelloptUsage, /* usage procedure */
351181834Sroberto    translate_option_strings,   /* translation procedure */
352181834Sroberto    /*
353181834Sroberto     *  Indexes to special options
354181834Sroberto     */
355285612Sdelphij    { INDEX_GENSHELL_OPT_MORE_HELP, /* more-help option index */
356285612Sdelphij      NO_EQUIVALENT, /* save option index */
357285612Sdelphij      NO_EQUIVALENT, /* '-#' option index */
358181834Sroberto      NO_EQUIVALENT /* index of default opt */
359181834Sroberto    },
360285612Sdelphij    5 /* full option count */, 2 /* user option count */,
361285612Sdelphij    genshellopt_full_usage, genshellopt_short_usage,
362285612Sdelphij    NULL, NULL,
363285612Sdelphij    PKGDATADIR, genshellopt_packager_info
364181834Sroberto};
365181834Sroberto
366285612Sdelphij#if ENABLE_NLS
367285612Sdelphij/**
368285612Sdelphij * This code is designed to translate translatable option text for the
369285612Sdelphij * genshellopt program.  These translations happen upon entry
370285612Sdelphij * to optionProcess().
371181834Sroberto */
372181834Sroberto#include <stdio.h>
373181834Sroberto#include <stdlib.h>
374181834Sroberto#include <string.h>
375181834Sroberto#include <unistd.h>
376285612Sdelphij#ifdef HAVE_DCGETTEXT
377285612Sdelphij# include <gettext.h>
378285612Sdelphij#endif
379181834Sroberto#include <autoopts/usage-txt.h>
380181834Sroberto
381285612Sdelphijstatic char * AO_gettext(char const * pz);
382285612Sdelphijstatic void   coerce_it(void ** s);
383181834Sroberto
384285612Sdelphij/**
385285612Sdelphij * AutoGen specific wrapper function for gettext.  It relies on the macro _()
386285612Sdelphij * to convert from English to the target language, then strdup-duplicates the
387285612Sdelphij * result string.  It tries the "libopts" domain first, then whatever has been
388285612Sdelphij * set via the \a textdomain(3) call.
389285612Sdelphij *
390285612Sdelphij * @param[in] pz the input text used as a lookup key.
391285612Sdelphij * @returns the translated text (if there is one),
392285612Sdelphij *   or the original text (if not).
393285612Sdelphij */
394285612Sdelphijstatic char *
395285612SdelphijAO_gettext(char const * pz)
396181834Sroberto{
397285612Sdelphij    char * res;
398181834Sroberto    if (pz == NULL)
399181834Sroberto        return NULL;
400285612Sdelphij#ifdef HAVE_DCGETTEXT
401285612Sdelphij    /*
402285612Sdelphij     * While processing the option_xlateable_txt data, try to use the
403285612Sdelphij     * "libopts" domain.  Once we switch to the option descriptor data,
404285612Sdelphij     * do *not* use that domain.
405285612Sdelphij     */
406285612Sdelphij    if (option_xlateable_txt.field_ct != 0) {
407285612Sdelphij        res = dgettext("libopts", pz);
408285612Sdelphij        if (res == pz)
409285612Sdelphij            res = (char *)VOIDP(_(pz));
410285612Sdelphij    } else
411285612Sdelphij        res = (char *)VOIDP(_(pz));
412285612Sdelphij#else
413285612Sdelphij    res = (char *)VOIDP(_(pz));
414285612Sdelphij#endif
415285612Sdelphij    if (res == pz)
416285612Sdelphij        return res;
417285612Sdelphij    res = strdup(res);
418285612Sdelphij    if (res == NULL) {
419285612Sdelphij        fputs(_("No memory for duping translated strings\n"), stderr);
420285612Sdelphij        exit(GENSHELLOPT_EXIT_FAILURE);
421181834Sroberto    }
422285612Sdelphij    return res;
423181834Sroberto}
424181834Sroberto
425285612Sdelphij/**
426285612Sdelphij * All the pointers we use are marked "* const", but they are stored in
427285612Sdelphij * writable memory.  Coerce the mutability and set the pointer.
428285612Sdelphij */
429285612Sdelphijstatic void coerce_it(void ** s) { *s = AO_gettext(*s);
430285612Sdelphij}
431181834Sroberto
432285612Sdelphij/**
433285612Sdelphij * Translate all the translatable strings in the genshelloptOptions
434285612Sdelphij * structure defined above.  This is done only once.
435181834Sroberto */
436181834Srobertostatic void
437285612Sdelphijtranslate_option_strings(void)
438181834Sroberto{
439285612Sdelphij    tOptions * const opts = &genshelloptOptions;
440285612Sdelphij
441181834Sroberto    /*
442181834Sroberto     *  Guard against re-translation.  It won't work.  The strings will have
443181834Sroberto     *  been changed by the first pass through this code.  One shot only.
444181834Sroberto     */
445285612Sdelphij    if (option_xlateable_txt.field_ct != 0) {
446285612Sdelphij        /*
447285612Sdelphij         *  Do the translations.  The first pointer follows the field count
448285612Sdelphij         *  field.  The field count field is the size of a pointer.
449285612Sdelphij         */
450285612Sdelphij        char ** ppz = (char**)VOIDP(&(option_xlateable_txt));
451285612Sdelphij        int     ix  = option_xlateable_txt.field_ct;
452181834Sroberto
453181834Sroberto        do {
454285612Sdelphij            ppz++; /* skip over field_ct */
455181834Sroberto            *ppz = AO_gettext(*ppz);
456181834Sroberto        } while (--ix > 0);
457285612Sdelphij        /* prevent re-translation and disable "libopts" domain lookup */
458285612Sdelphij        option_xlateable_txt.field_ct = 0;
459181834Sroberto
460285612Sdelphij        coerce_it(VOIDP(&(opts->pzCopyright)));
461285612Sdelphij        coerce_it(VOIDP(&(opts->pzCopyNotice)));
462285612Sdelphij        coerce_it(VOIDP(&(opts->pzFullVersion)));
463285612Sdelphij        coerce_it(VOIDP(&(opts->pzUsageTitle)));
464285612Sdelphij        coerce_it(VOIDP(&(opts->pzExplain)));
465285612Sdelphij        coerce_it(VOIDP(&(opts->pzDetail)));
466285612Sdelphij        {
467285612Sdelphij            tOptDesc * od = opts->pOptDesc;
468285612Sdelphij            for (ix = opts->optCt; ix > 0; ix--, od++)
469285612Sdelphij                coerce_it(VOIDP(&(od->pzText)));
470181834Sroberto        }
471181834Sroberto    }
472181834Sroberto}
473181834Sroberto#endif /* ENABLE_NLS */
474181834Sroberto
475285612Sdelphij#ifdef DO_NOT_COMPILE_THIS_CODE_IT_IS_FOR_GETTEXT
476285612Sdelphij/** I18N function strictly for xgettext.  Do not compile. */
477285612Sdelphijstatic void bogus_function(void) {
478285612Sdelphij  /* TRANSLATORS:
479285612Sdelphij
480285612Sdelphij     The following dummy function was crated solely so that xgettext can
481285612Sdelphij     extract the correct strings.  These strings are actually referenced
482285612Sdelphij     by a field name in the genshelloptOptions structure noted in the
483285612Sdelphij     comments below.  The literal text is defined in genshellopt_opt_strs.
484285612Sdelphij
485285612Sdelphij     NOTE: the strings below are segmented with respect to the source string
486285612Sdelphij     genshellopt_opt_strs.  The strings above are handed off for translation
487285612Sdelphij     at run time a paragraph at a time.  Consequently, they are presented here
488285612Sdelphij     for translation a paragraph at a time.
489285612Sdelphij
490285612Sdelphij     ALSO: often the description for an option will reference another option
491285612Sdelphij     by name.  These are set off with apostrophe quotes (I hope).  Do not
492285612Sdelphij     translate option names.
493285612Sdelphij   */
494285612Sdelphij  /* referenced via genshelloptOptions.pzCopyright */
495285612Sdelphij  puts(_("genshellopt 1\n\
496285612SdelphijCopyright (C) 1999-2014 Bruce Korb, all rights reserved.\n\
497285612SdelphijThis is free software. It is licensed for use, modification and\n\
498285612Sdelphijredistribution under the terms of the GNU Lesser General Public License,\n\
499285612Sdelphijversion 2 or later <http://www.gnu.org/licenses/old-licenses/lgpl-2.0.html>\n"));
500285612Sdelphij
501285612Sdelphij  /* referenced via genshelloptOptions.pzCopyNotice */
502285612Sdelphij  puts(_("The genshellopt library is free software; you can redistribute it and/or\n\
503285612Sdelphijmodify it under the terms of the GNU Library General Public License as\n\
504285612Sdelphijpublished by the Free Software Foundation; either version 2 of the License,\n\
505285612Sdelphijor (at your option) any later version.\n\n"));
506285612Sdelphij  puts(_("This library is distributed in the hope that it will be useful, but WITHOUT\n\
507285612SdelphijANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\n\
508285612SdelphijFITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public\n\
509285612SdelphijLicense for more details.\n\n"));
510285612Sdelphij  puts(_("You should have received a copy of the GNU Library General Public License\n\
511285612Sdelphijalong with this library; if not, see\n\
512285612Sdelphij<http://www.gnu.org/licenses/old-licenses/lgpl-2.0.html>\n"));
513285612Sdelphij
514285612Sdelphij  /* referenced via genshelloptOptions.pOptDesc->pzText */
515285612Sdelphij  puts(_("Output Script File"));
516285612Sdelphij
517285612Sdelphij  /* referenced via genshelloptOptions.pOptDesc->pzText */
518285612Sdelphij  puts(_("Shell name (follows \"#!\" magic)"));
519285612Sdelphij
520285612Sdelphij  /* referenced via genshelloptOptions.pOptDesc->pzText */
521285612Sdelphij  puts(_("display extended usage information and exit"));
522285612Sdelphij
523285612Sdelphij  /* referenced via genshelloptOptions.pOptDesc->pzText */
524285612Sdelphij  puts(_("extended usage information passed thru pager"));
525285612Sdelphij
526285612Sdelphij  /* referenced via genshelloptOptions.pOptDesc->pzText */
527285612Sdelphij  puts(_("output version information and exit"));
528285612Sdelphij
529285612Sdelphij  /* referenced via genshelloptOptions.pzUsageTitle */
530285612Sdelphij  puts(_("genshellopt - Generate Shell Option Processing Script - Ver. 1\n\
531285612SdelphijUsage:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n"));
532285612Sdelphij
533285612Sdelphij  /* referenced via genshelloptOptions.pzExplain */
534285612Sdelphij  puts(_("Note that 'shell' is only useful if the output file does not already exist.\n\
535285612SdelphijIf it does, then the shell name and optional first argument will be\n\
536285612Sdelphijextracted from the script file.\n"));
537285612Sdelphij
538285612Sdelphij  /* referenced via genshelloptOptions.pzDetail */
539285612Sdelphij  puts(_("If the script file already exists and contains Automated Option Processing\n\
540285612Sdelphijtext, the second line of the file through the ending tag will be replaced\n\
541285612Sdelphijby the newly generated text.  The first '#!' line will be regenerated.\n"));
542285612Sdelphij
543285612Sdelphij  /* referenced via genshelloptOptions.pzFullVersion */
544285612Sdelphij  puts(_("genshellopt 1"));
545285612Sdelphij
546285612Sdelphij  /* referenced via genshelloptOptions.pzFullUsage */
547285612Sdelphij  puts(_("<<<NOT-FOUND>>>"));
548285612Sdelphij
549285612Sdelphij  /* referenced via genshelloptOptions.pzShortUsage */
550285612Sdelphij  puts(_("<<<NOT-FOUND>>>"));
551285612Sdelphij  /* LIBOPTS-MESSAGES: */
552285612Sdelphij#line 67 "../autoopts.c"
553285612Sdelphij  puts(_("allocation of %d bytes failed\n"));
554285612Sdelphij#line 93 "../autoopts.c"
555285612Sdelphij  puts(_("allocation of %d bytes failed\n"));
556285612Sdelphij#line 53 "../init.c"
557285612Sdelphij  puts(_("AutoOpts function called without option descriptor\n"));
558285612Sdelphij#line 86 "../init.c"
559285612Sdelphij  puts(_("\tThis exceeds the compiled library version:  "));
560285612Sdelphij#line 84 "../init.c"
561285612Sdelphij  puts(_("Automated Options Processing Error!\n"
562285612Sdelphij       "\t%s called AutoOpts function with structure version %d:%d:%d.\n"));
563285612Sdelphij#line 80 "../autoopts.c"
564285612Sdelphij  puts(_("realloc of %d bytes at 0x%p failed\n"));
565285612Sdelphij#line 88 "../init.c"
566285612Sdelphij  puts(_("\tThis is less than the minimum library version:  "));
567285612Sdelphij#line 121 "../version.c"
568285612Sdelphij  puts(_("Automated Options version %s\n"
569285612Sdelphij       "\tCopyright (C) 1999-2014 by Bruce Korb - all rights reserved\n"));
570285612Sdelphij#line 87 "../makeshell.c"
571285612Sdelphij  puts(_("(AutoOpts bug):  %s.\n"));
572285612Sdelphij#line 90 "../reset.c"
573285612Sdelphij  puts(_("optionResetOpt() called, but reset-option not configured"));
574285612Sdelphij#line 292 "../usage.c"
575285612Sdelphij  puts(_("could not locate the 'help' option"));
576285612Sdelphij#line 336 "../autoopts.c"
577285612Sdelphij  puts(_("optionProcess() was called with invalid data"));
578285612Sdelphij#line 748 "../usage.c"
579285612Sdelphij  puts(_("invalid argument type specified"));
580285612Sdelphij#line 598 "../find.c"
581285612Sdelphij  puts(_("defaulted to option with optional arg"));
582285612Sdelphij#line 76 "../alias.c"
583285612Sdelphij  puts(_("aliasing option is out of range."));
584285612Sdelphij#line 234 "../enum.c"
585285612Sdelphij  puts(_("%s error:  the keyword '%s' is ambiguous for %s\n"));
586285612Sdelphij#line 108 "../find.c"
587285612Sdelphij  puts(_("  The following options match:\n"));
588285612Sdelphij#line 293 "../find.c"
589285612Sdelphij  puts(_("%s: ambiguous option name: %s (matches %d options)\n"));
590285612Sdelphij#line 161 "../check.c"
591285612Sdelphij  puts(_("%s: Command line arguments required\n"));
592285612Sdelphij#line 43 "../alias.c"
593285612Sdelphij  puts(_("%d %s%s options allowed\n"));
594285612Sdelphij#line 94 "../makeshell.c"
595285612Sdelphij  puts(_("%s error %d (%s) calling %s for '%s'\n"));
596285612Sdelphij#line 306 "../makeshell.c"
597285612Sdelphij  puts(_("interprocess pipe"));
598285612Sdelphij#line 168 "../version.c"
599285612Sdelphij  puts(_("error: version option argument '%c' invalid.  Use:\n"
600285612Sdelphij       "\t'v' - version only\n"
601285612Sdelphij       "\t'c' - version and copyright\n"
602285612Sdelphij       "\t'n' - version and full copyright notice\n"));
603285612Sdelphij#line 58 "../check.c"
604285612Sdelphij  puts(_("%s error:  the '%s' and '%s' options conflict\n"));
605285612Sdelphij#line 217 "../find.c"
606285612Sdelphij  puts(_("%s: The '%s' option has been disabled."));
607285612Sdelphij#line 430 "../find.c"
608285612Sdelphij  puts(_("%s: The '%s' option has been disabled."));
609285612Sdelphij#line 38 "../alias.c"
610285612Sdelphij  puts(_("-equivalence"));
611285612Sdelphij#line 469 "../find.c"
612285612Sdelphij  puts(_("%s: illegal option -- %c\n"));
613285612Sdelphij#line 110 "../reset.c"
614285612Sdelphij  puts(_("%s: illegal option -- %c\n"));
615285612Sdelphij#line 271 "../find.c"
616285612Sdelphij  puts(_("%s: illegal option -- %s\n"));
617285612Sdelphij#line 755 "../find.c"
618285612Sdelphij  puts(_("%s: illegal option -- %s\n"));
619285612Sdelphij#line 118 "../reset.c"
620285612Sdelphij  puts(_("%s: illegal option -- %s\n"));
621285612Sdelphij#line 335 "../find.c"
622285612Sdelphij  puts(_("%s: unknown vendor extension option -- %s\n"));
623285612Sdelphij#line 159 "../enum.c"
624285612Sdelphij  puts(_("  or an integer from %d through %d\n"));
625285612Sdelphij#line 169 "../enum.c"
626285612Sdelphij  puts(_("  or an integer from %d through %d\n"));
627285612Sdelphij#line 747 "../usage.c"
628285612Sdelphij  puts(_("%s error:  invalid option descriptor for %s\n"));
629285612Sdelphij#line 1081 "../usage.c"
630285612Sdelphij  puts(_("%s error:  invalid option descriptor for %s\n"));
631285612Sdelphij#line 385 "../find.c"
632285612Sdelphij  puts(_("%s: invalid option name: %s\n"));
633285612Sdelphij#line 527 "../find.c"
634285612Sdelphij  puts(_("%s: The '%s' option requires an argument.\n"));
635285612Sdelphij#line 156 "../autoopts.c"
636285612Sdelphij  puts(_("(AutoOpts bug):  Equivalenced option '%s' was equivalenced to both\n"
637285612Sdelphij       "\t'%s' and '%s'."));
638285612Sdelphij#line 94 "../check.c"
639285612Sdelphij  puts(_("%s error:  The %s option is required\n"));
640285612Sdelphij#line 632 "../find.c"
641285612Sdelphij  puts(_("%s: The '%s' option cannot have an argument.\n"));
642285612Sdelphij#line 151 "../check.c"
643285612Sdelphij  puts(_("%s: Command line arguments are not allowed.\n"));
644285612Sdelphij#line 535 "../save.c"
645285612Sdelphij  puts(_("error %d (%s) creating %s\n"));
646285612Sdelphij#line 234 "../enum.c"
647285612Sdelphij  puts(_("%s error:  '%s' does not match any %s keywords.\n"));
648285612Sdelphij#line 93 "../reset.c"
649285612Sdelphij  puts(_("%s error: The '%s' option requires an argument.\n"));
650285612Sdelphij#line 184 "../save.c"
651285612Sdelphij  puts(_("error %d (%s) stat-ing %s\n"));
652285612Sdelphij#line 238 "../save.c"
653285612Sdelphij  puts(_("error %d (%s) stat-ing %s\n"));
654285612Sdelphij#line 143 "../restore.c"
655285612Sdelphij  puts(_("%s error: no saved option state\n"));
656285612Sdelphij#line 231 "../autoopts.c"
657285612Sdelphij  puts(_("'%s' is not a command line option.\n"));
658285612Sdelphij#line 111 "../time.c"
659285612Sdelphij  puts(_("%s error:  '%s' is not a recognizable date/time.\n"));
660285612Sdelphij#line 132 "../save.c"
661285612Sdelphij  puts(_("'%s' not defined\n"));
662285612Sdelphij#line 50 "../time.c"
663285612Sdelphij  puts(_("%s error:  '%s' is not a recognizable time duration.\n"));
664285612Sdelphij#line 92 "../check.c"
665285612Sdelphij  puts(_("%s error:  The %s option must appear %d times.\n"));
666285612Sdelphij#line 164 "../numeric.c"
667285612Sdelphij  puts(_("%s error:  '%s' is not a recognizable number.\n"));
668285612Sdelphij#line 200 "../enum.c"
669285612Sdelphij  puts(_("%s error:  %s exceeds %s keyword count\n"));
670285612Sdelphij#line 330 "../usage.c"
671285612Sdelphij  puts(_("Try '%s %s' for more information.\n"));
672285612Sdelphij#line 45 "../alias.c"
673285612Sdelphij  puts(_("one %s%s option allowed\n"));
674285612Sdelphij#line 208 "../makeshell.c"
675285612Sdelphij  puts(_("standard output"));
676285612Sdelphij#line 943 "../makeshell.c"
677285612Sdelphij  puts(_("standard output"));
678285612Sdelphij#line 274 "../usage.c"
679285612Sdelphij  puts(_("standard output"));
680285612Sdelphij#line 415 "../usage.c"
681285612Sdelphij  puts(_("standard output"));
682285612Sdelphij#line 625 "../usage.c"
683285612Sdelphij  puts(_("standard output"));
684285612Sdelphij#line 175 "../version.c"
685285612Sdelphij  puts(_("standard output"));
686285612Sdelphij#line 274 "../usage.c"
687285612Sdelphij  puts(_("standard error"));
688285612Sdelphij#line 415 "../usage.c"
689285612Sdelphij  puts(_("standard error"));
690285612Sdelphij#line 625 "../usage.c"
691285612Sdelphij  puts(_("standard error"));
692285612Sdelphij#line 175 "../version.c"
693285612Sdelphij  puts(_("standard error"));
694285612Sdelphij#line 208 "../makeshell.c"
695285612Sdelphij  puts(_("write"));
696285612Sdelphij#line 943 "../makeshell.c"
697285612Sdelphij  puts(_("write"));
698285612Sdelphij#line 273 "../usage.c"
699285612Sdelphij  puts(_("write"));
700285612Sdelphij#line 414 "../usage.c"
701285612Sdelphij  puts(_("write"));
702285612Sdelphij#line 624 "../usage.c"
703285612Sdelphij  puts(_("write"));
704285612Sdelphij#line 174 "../version.c"
705285612Sdelphij  puts(_("write"));
706285612Sdelphij#line 60 "../numeric.c"
707285612Sdelphij  puts(_("%s error:  %s option value %ld is out of range.\n"));
708285612Sdelphij#line 44 "../check.c"
709285612Sdelphij  puts(_("%s error:  %s option requires the %s option\n"));
710285612Sdelphij#line 131 "../save.c"
711285612Sdelphij  puts(_("%s warning:  cannot save options - %s not regular file\n"));
712285612Sdelphij#line 183 "../save.c"
713285612Sdelphij  puts(_("%s warning:  cannot save options - %s not regular file\n"));
714285612Sdelphij#line 237 "../save.c"
715285612Sdelphij  puts(_("%s warning:  cannot save options - %s not regular file\n"));
716285612Sdelphij#line 256 "../save.c"
717285612Sdelphij  puts(_("%s warning:  cannot save options - %s not regular file\n"));
718285612Sdelphij#line 534 "../save.c"
719285612Sdelphij  puts(_("%s warning:  cannot save options - %s not regular file\n"));
720285612Sdelphij  /* END-LIBOPTS-MESSAGES */
721285612Sdelphij
722285612Sdelphij  /* USAGE-TEXT: */
723285612Sdelphij#line 873 "../usage.c"
724285612Sdelphij  puts(_("\t\t\t\t- an alternate for '%s'\n"));
725285612Sdelphij#line 1148 "../usage.c"
726285612Sdelphij  puts(_("Version, usage and configuration options:"));
727285612Sdelphij#line 924 "../usage.c"
728285612Sdelphij  puts(_("\t\t\t\t- default option for unnamed options\n"));
729285612Sdelphij#line 837 "../usage.c"
730285612Sdelphij  puts(_("\t\t\t\t- disabled as '--%s'\n"));
731285612Sdelphij#line 1117 "../usage.c"
732285612Sdelphij  puts(_(" --- %-14s %s\n"));
733285612Sdelphij#line 1115 "../usage.c"
734285612Sdelphij  puts(_("This option has been disabled"));
735285612Sdelphij#line 864 "../usage.c"
736285612Sdelphij  puts(_("\t\t\t\t- enabled by default\n"));
737285612Sdelphij#line 40 "../alias.c"
738285612Sdelphij  puts(_("%s error:  only "));
739285612Sdelphij#line 1194 "../usage.c"
740285612Sdelphij  puts(_(" - examining environment variables named %s_*\n"));
741285612Sdelphij#line 168 "../file.c"
742285612Sdelphij  puts(_("\t\t\t\t- file must not pre-exist\n"));
743285612Sdelphij#line 172 "../file.c"
744285612Sdelphij  puts(_("\t\t\t\t- file must pre-exist\n"));
745285612Sdelphij#line 380 "../usage.c"
746285612Sdelphij  puts(_("Options are specified by doubled hyphens and their name or by a single\n"
747285612Sdelphij       "hyphen and the flag character.\n"));
748285612Sdelphij#line 921 "../makeshell.c"
749285612Sdelphij  puts(_("\n"
750285612Sdelphij       "= = = = = = = =\n\n"
751285612Sdelphij       "This incarnation of genshell will produce\n"
752285612Sdelphij       "a shell script to parse the options for %s:\n\n"));
753285612Sdelphij#line 166 "../enum.c"
754285612Sdelphij  puts(_("  or an integer mask with any of the lower %d bits set\n"));
755285612Sdelphij#line 897 "../usage.c"
756285612Sdelphij  puts(_("\t\t\t\t- is a set membership option\n"));
757285612Sdelphij#line 918 "../usage.c"
758285612Sdelphij  puts(_("\t\t\t\t- must appear between %d and %d times\n"));
759285612Sdelphij#line 382 "../usage.c"
760285612Sdelphij  puts(_("Options are specified by single or double hyphens and their name.\n"));
761285612Sdelphij#line 904 "../usage.c"
762285612Sdelphij  puts(_("\t\t\t\t- may appear multiple times\n"));
763285612Sdelphij#line 891 "../usage.c"
764285612Sdelphij  puts(_("\t\t\t\t- may not be preset\n"));
765285612Sdelphij#line 1309 "../usage.c"
766285612Sdelphij  puts(_("   Arg Option-Name    Description\n"));
767285612Sdelphij#line 1245 "../usage.c"
768285612Sdelphij  puts(_("  Flg Arg Option-Name    Description\n"));
769285612Sdelphij#line 1303 "../usage.c"
770285612Sdelphij  puts(_("  Flg Arg Option-Name    Description\n"));
771285612Sdelphij#line 1304 "../usage.c"
772285612Sdelphij  puts(_(" %3s %s"));
773285612Sdelphij#line 1310 "../usage.c"
774285612Sdelphij  puts(_(" %3s %s"));
775285612Sdelphij#line 387 "../usage.c"
776285612Sdelphij  puts(_("The '-#<number>' option may omit the hash char\n"));
777285612Sdelphij#line 383 "../usage.c"
778285612Sdelphij  puts(_("All arguments are named options.\n"));
779285612Sdelphij#line 971 "../usage.c"
780285612Sdelphij  puts(_(" - reading file %s"));
781285612Sdelphij#line 409 "../usage.c"
782285612Sdelphij  puts(_("\n"
783285612Sdelphij       "Please send bug reports to:  <%s>\n"));
784285612Sdelphij#line 100 "../version.c"
785285612Sdelphij  puts(_("\n"
786285612Sdelphij       "Please send bug reports to:  <%s>\n"));
787285612Sdelphij#line 129 "../version.c"
788285612Sdelphij  puts(_("\n"
789285612Sdelphij       "Please send bug reports to:  <%s>\n"));
790285612Sdelphij#line 903 "../usage.c"
791285612Sdelphij  puts(_("\t\t\t\t- may NOT appear - preset only\n"));
792285612Sdelphij#line 944 "../usage.c"
793285612Sdelphij  puts(_("\n"
794285612Sdelphij       "The following option preset mechanisms are supported:\n"));
795285612Sdelphij#line 1192 "../usage.c"
796285612Sdelphij  puts(_("\n"
797285612Sdelphij       "The following option preset mechanisms are supported:\n"));
798285612Sdelphij#line 682 "../usage.c"
799285612Sdelphij  puts(_("prohibits these options:\n"));
800285612Sdelphij#line 677 "../usage.c"
801285612Sdelphij  puts(_("prohibits the option '%s'\n"));
802285612Sdelphij#line 81 "../numeric.c"
803285612Sdelphij  puts(_("%s%ld to %ld"));
804285612Sdelphij#line 79 "../numeric.c"
805285612Sdelphij  puts(_("%sgreater than or equal to %ld"));
806285612Sdelphij#line 75 "../numeric.c"
807285612Sdelphij  puts(_("%s%ld exactly"));
808285612Sdelphij#line 68 "../numeric.c"
809285612Sdelphij  puts(_("%sit must lie in one of the ranges:\n"));
810285612Sdelphij#line 68 "../numeric.c"
811285612Sdelphij  puts(_("%sit must be in the range:\n"));
812285612Sdelphij#line 88 "../numeric.c"
813285612Sdelphij  puts(_(", or\n"));
814285612Sdelphij#line 66 "../numeric.c"
815285612Sdelphij  puts(_("%sis scalable with a suffix: k/K/m/M/g/G/t/T\n"));
816285612Sdelphij#line 77 "../numeric.c"
817285612Sdelphij  puts(_("%sless than or equal to %ld"));
818285612Sdelphij#line 390 "../usage.c"
819285612Sdelphij  puts(_("Operands and options may be intermixed.  They will be reordered.\n"));
820285612Sdelphij#line 652 "../usage.c"
821285612Sdelphij  puts(_("requires the option '%s'\n"));
822285612Sdelphij#line 655 "../usage.c"
823285612Sdelphij  puts(_("requires these options:\n"));
824285612Sdelphij#line 1321 "../usage.c"
825285612Sdelphij  puts(_("   Arg Option-Name   Req?  Description\n"));
826285612Sdelphij#line 1315 "../usage.c"
827285612Sdelphij  puts(_("  Flg Arg Option-Name   Req?  Description\n"));
828285612Sdelphij#line 167 "../enum.c"
829285612Sdelphij  puts(_("or you may use a numeric representation.  Preceding these with a '!'\n"
830285612Sdelphij       "will clear the bits, specifying 'none' will clear all bits, and 'all'\n"
831285612Sdelphij       "will set them all.  Multiple entries may be passed as an option\n"
832285612Sdelphij       "argument list.\n"));
833285612Sdelphij#line 910 "../usage.c"
834285612Sdelphij  puts(_("\t\t\t\t- may appear up to %d times\n"));
835285612Sdelphij#line 77 "../enum.c"
836285612Sdelphij  puts(_("The valid \"%s\" option keywords are:\n"));
837285612Sdelphij#line 1152 "../usage.c"
838285612Sdelphij  puts(_("The next option supports vendor supported extra options:"));
839285612Sdelphij#line 773 "../usage.c"
840285612Sdelphij  puts(_("These additional options are:"));
841285612Sdelphij  /* END-USAGE-TEXT */
842285612Sdelphij}
843285612Sdelphij#endif /* uncompilable code */
844181834Sroberto#ifdef  __cplusplus
845181834Sroberto}
846181834Sroberto#endif
847181834Sroberto/* genshell.c ends here */
848