X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fargmatch.c;h=005be881f21b4c0aa67c958b9bd82e2a2c28ec70;hb=774a9d80728c1f9bb87f44a1296552fd899031d4;hp=f08fba35e91386f8a777d5b4d15199aaaef5df37;hpb=d853588fe7d6602da23b28fd0ed74fbb4e2ba4cc;p=gnulib.git diff --git a/lib/argmatch.c b/lib/argmatch.c index f08fba35e..005be881f 100644 --- a/lib/argmatch.c +++ b/lib/argmatch.c @@ -1,5 +1,5 @@ /* argmatch.c -- find a match for a string in an array - Copyright (C) 1990, 1998, 1999 Free Software Foundation, Inc. + Copyright (C) 1990, 1998, 1999, 2001 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -38,12 +38,14 @@ #include "error.h" #include "quotearg.h" +#include "quote.h" +#include "unlocked-io.h" /* When reporting an invalid argument, show nonprinting characters by using the quoting style ARGMATCH_QUOTING_STYLE. Do not use literal_quoting_style. */ #ifndef ARGMATCH_QUOTING_STYLE -# define ARGMATCH_QUOTING_STYLE escape_quoting_style +# define ARGMATCH_QUOTING_STYLE locale_quoting_style #endif /* The following test is to work around the gross typo in @@ -155,21 +157,12 @@ argcasematch (const char *arg, const char *const *arglist, void argmatch_invalid (const char *context, const char *value, int problem) { - enum quoting_style saved_quoting_style; - char const *format; + char const *format = (problem == -1 + ? _("invalid argument %s for %s") + : _("ambiguous argument %s for %s")); - /* Make sure to have a good quoting style to report errors. - literal is insane here. */ - saved_quoting_style = get_quoting_style (NULL); - set_quoting_style (NULL, ARGMATCH_QUOTING_STYLE); - - format = (problem == -1 - ? _("invalid argument `%s' for `%s'") - : _("ambiguous argument `%s' for `%s'")); - - error (0, 0, format, quotearg (value), context); - - set_quoting_style (NULL, saved_quoting_style); + error (0, 0, format, quotearg_n_style (0, ARGMATCH_QUOTING_STYLE, value), + quote_n (1, context)); } /* List the valid arguments for argmatch.