X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fgetopt.c;h=e852127f626003de9d997f6c16b6490449334dd3;hb=118c7c3af6b537e01580f3ddd29262cdc7ee17b9;hp=c7ddad0fe81111dd7ed3f0ec0947a83f35204902;hpb=0e167051bb305bc05bcc068ee267e327b9d37610;p=gnulib.git diff --git a/lib/getopt.c b/lib/getopt.c index c7ddad0fe..e852127f6 100644 --- a/lib/getopt.c +++ b/lib/getopt.c @@ -75,11 +75,12 @@ #endif #ifndef _ -/* This is for other GNU distributions with internationalized messages. - When compiling libc, the _ macro is predefined. */ -# ifdef HAVE_LIBINTL_H +/* This is for other GNU distributions with internationalized messages. */ +# if defined HAVE_LIBINTL_H || defined _LIBC # include -# define _(msgid) gettext (msgid) +# ifndef _ +# define _(msgid) gettext (msgid) +# endif # else # define _(msgid) (msgid) # endif @@ -671,7 +672,8 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) pfound = p; indfound = option_index; } - else if (pfound->has_arg != p->has_arg + else if (long_only + || pfound->has_arg != p->has_arg || pfound->flag != p->flag || pfound->val != p->val) /* Second or later nonexact match found. */