projects
/
gnulib.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
.
[gnulib.git]
/
lib
/
getopt.c
diff --git
a/lib/getopt.c
b/lib/getopt.c
index
57fd398
..
8bcf559
100644
(file)
--- a/
lib/getopt.c
+++ b/
lib/getopt.c
@@
-3,7
+3,7
@@
"Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu
before changing it!
"Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu
before changing it!
- Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94
+ Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94
, 95
Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
@@
-59,12
+59,15
@@
#include <stdlib.h>
#endif /* GNU C library. */
#include <stdlib.h>
#endif /* GNU C library. */
+#ifndef _
/* This is for other GNU distributions with internationalized messages.
/* 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
. */
+#if
def
HAVE_LIBINTL_H
# include <libintl.h>
# include <libintl.h>
+# define _(msgid) gettext (msgid)
#else
#else
-# define gettext(msgid) (msgid)
+# define _(msgid) (msgid)
+#endif
#endif
/* This version of `getopt' appears to the caller like standard Unix `getopt'
#endif
/* This version of `getopt' appears to the caller like standard Unix `getopt'
@@
-383,7
+386,10
@@
_getopt_internal (argc, argv, optstring, longopts, longind, long_only)
optarg = NULL;
if (optind == 0)
optarg = NULL;
if (optind == 0)
- optstring = _getopt_initialize (optstring);
+ {
+ optstring = _getopt_initialize (optstring);
+ optind = 1; /* Don't scan ARGV[0], the program name. */
+ }
if (nextchar == NULL || *nextchar == '\0')
{
if (nextchar == NULL || *nextchar == '\0')
{
@@
-473,7
+479,8
@@
_getopt_internal (argc, argv, optstring, longopts, longind, long_only)
if (longopts != NULL
&& (argv[optind][1] == '-'
if (longopts != NULL
&& (argv[optind][1] == '-'
- || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1])))))
+ || (long_only && (argv[optind][2]
+ || !my_index (optstring, argv[optind][1])))))
{
char *nameend;
const struct option *p;
{
char *nameend;
const struct option *p;
@@
-486,6
+493,10
@@
_getopt_internal (argc, argv, optstring, longopts, longind, long_only)
for (nameend = nextchar; *nameend && *nameend != '='; nameend++)
/* Do nothing. */ ;
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++)
/* Test all long options for either exact match
or abbreviated matches. */
for (p = longopts, option_index = 0; p->name; p++, option_index++)
@@
-513,7
+524,7
@@
_getopt_internal (argc, argv, optstring, longopts, longind, long_only)
if (ambig && !exact)
{
if (opterr)
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++;
argv[0], argv[optind]);
nextchar += strlen (nextchar);
optind++;
@@
-536,12
+547,12
@@
_getopt_internal (argc, argv, optstring, longopts, longind, long_only)
if (argv[optind - 1][1] == '-')
/* --option */
fprintf (stderr,
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,
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);
argv[0], argv[optind - 1][0], pfound->name);
nextchar += strlen (nextchar);
@@
-556,7
+567,7
@@
_getopt_internal (argc, argv, optstring, longopts, longind, long_only)
{
if (opterr)
fprintf (stderr,
{
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] == ':' ? ':' : '?';
argv[0], argv[optind - 1]);
nextchar += strlen (nextchar);
return optstring[0] == ':' ? ':' : '?';
@@
-584,11
+595,11
@@
_getopt_internal (argc, argv, optstring, longopts, longind, long_only)
{
if (argv[optind][1] == '-')
/* --option */
{
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 */
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 *) "";
argv[0], argv[optind][0], nextchar);
}
nextchar = (char *) "";
@@
-613,10
+624,10
@@
_getopt_internal (argc, argv, optstring, longopts, longind, long_only)
{
if (posixly_correct)
/* 1003.2 specifies the format of this message. */
{
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
argv[0], c);
else
- fprintf (stderr,
gettext
("%s: invalid option -- %c\n"),
+ fprintf (stderr,
_
("%s: invalid option -- %c\n"),
argv[0], c);
}
optopt = c;
argv[0], c);
}
optopt = c;
@@
-652,7
+663,7
@@
_getopt_internal (argc, argv, optstring, longopts, longind, long_only)
{
/* 1003.2 specifies the format of this message. */
fprintf (stderr,
{
/* 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;
argv[0], c);
}
optopt = c;