X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fgetopt.c;h=8bcf5594571c22a8bcd3b44cbcc9938cb16fdfb7;hb=e48f10e4203e9770b4c5b9ca75de51b05e7ea0b6;hp=3cdb1f2264a3d65bc48e087698662591fb34bb9d;hpb=6fdf9952e324120ded583e3ab1e469277d68f826;p=gnulib.git diff --git a/lib/getopt.c b/lib/getopt.c index 3cdb1f226..8bcf55945 100644 --- a/lib/getopt.c +++ b/lib/getopt.c @@ -59,12 +59,15 @@ #include #endif /* GNU C library. */ +#ifndef _ /* This is for other GNU distributions with internationalized messages. - The GNU C Library itself does not yet support such messages. */ -#if HAVE_LIBINTL_H + When compiling libc, the _ macro is predefined. */ +#ifdef HAVE_LIBINTL_H # include +# define _(msgid) gettext (msgid) #else -# define gettext(msgid) (msgid) +# define _(msgid) (msgid) +#endif #endif /* This version of `getopt' appears to the caller like standard Unix `getopt' @@ -490,6 +493,10 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) for (nameend = nextchar; *nameend && *nameend != '='; nameend++) /* Do nothing. */ ; +#ifdef lint + indfound = 0; /* Avoid spurious compiler warning. */ +#endif + /* Test all long options for either exact match or abbreviated matches. */ for (p = longopts, option_index = 0; p->name; p++, option_index++) @@ -510,19 +517,14 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) indfound = option_index; } else - { - /* Second or later nonexact match found. */ - ambig = 1; -#ifdef lint - indfound = 0; -#define - } + /* Second or later nonexact match found. */ + ambig = 1; } if (ambig && !exact) { if (opterr) - fprintf (stderr, gettext ("%s: option `%s' is ambiguous\n"), + fprintf (stderr, _("%s: option `%s' is ambiguous\n"), argv[0], argv[optind]); nextchar += strlen (nextchar); optind++; @@ -545,12 +547,12 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) if (argv[optind - 1][1] == '-') /* --option */ fprintf (stderr, - gettext ("%s: option `--%s' doesn't allow an argument\n"), + _("%s: option `--%s' doesn't allow an argument\n"), argv[0], pfound->name); else /* +option or -option */ fprintf (stderr, - gettext ("%s: option `%c%s' doesn't allow an argument\n"), + _("%s: option `%c%s' doesn't allow an argument\n"), argv[0], argv[optind - 1][0], pfound->name); nextchar += strlen (nextchar); @@ -565,7 +567,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) { if (opterr) fprintf (stderr, - gettext ("%s: option `%s' requires an argument\n"), + _("%s: option `%s' requires an argument\n"), argv[0], argv[optind - 1]); nextchar += strlen (nextchar); return optstring[0] == ':' ? ':' : '?'; @@ -593,11 +595,11 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) { if (argv[optind][1] == '-') /* --option */ - fprintf (stderr, gettext ("%s: unrecognized option `--%s'\n"), + fprintf (stderr, _("%s: unrecognized option `--%s'\n"), argv[0], nextchar); else /* +option or -option */ - fprintf (stderr, gettext ("%s: unrecognized option `%c%s'\n"), + fprintf (stderr, _("%s: unrecognized option `%c%s'\n"), argv[0], argv[optind][0], nextchar); } nextchar = (char *) ""; @@ -622,10 +624,10 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) { if (posixly_correct) /* 1003.2 specifies the format of this message. */ - fprintf (stderr, gettext ("%s: illegal option -- %c\n"), + fprintf (stderr, _("%s: illegal option -- %c\n"), argv[0], c); else - fprintf (stderr, gettext ("%s: invalid option -- %c\n"), + fprintf (stderr, _("%s: invalid option -- %c\n"), argv[0], c); } optopt = c; @@ -661,7 +663,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) { /* 1003.2 specifies the format of this message. */ fprintf (stderr, - gettext ("%s: option requires an argument -- %c\n"), + _("%s: option requires an argument -- %c\n"), argv[0], c); } optopt = c;