projects
/
gnulib.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
(mkdir): Use pid_t instead of int; check status
[gnulib.git]
/
lib
/
argmatch.c
diff --git
a/lib/argmatch.c
b/lib/argmatch.c
index
19d5aa4
..
f08fba3
100644
(file)
--- a/
lib/argmatch.c
+++ b/
lib/argmatch.c
@@
-36,21
+36,31
@@
# define _(Text) Text
#endif
# define _(Text) Text
#endif
+#include "error.h"
#include "quotearg.h"
#include "quotearg.h"
-/* When reporting a failing argument, make sure to show invisible
- characters hidden using the quoting style
- ARGMATCH_QUOTING_STYLE. literal_quoting_style is not good. */
-
+/* 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
#endif
#ifndef ARGMATCH_QUOTING_STYLE
# define ARGMATCH_QUOTING_STYLE escape_quoting_style
#endif
-extern char *program_name;
+/* The following test is to work around the gross typo in
+ systems like Sony NEWS-OS Release 4.0C, whereby EXIT_FAILURE
+ is defined to 0, not 1. */
+#if !EXIT_FAILURE
+# undef EXIT_FAILURE
+# define EXIT_FAILURE 1
+#endif
/* Non failing version of argmatch call this function after failing. */
#ifndef ARGMATCH_DIE
/* Non failing version of argmatch call this function after failing. */
#ifndef ARGMATCH_DIE
-# define ARGMATCH_DIE exit (2)
+# define ARGMATCH_DIE exit (EXIT_FAILURE)
+#endif
+
+#ifdef ARGMATCH_DIE_DECL
+ARGMATCH_DIE_DECL;
#endif
static void
#endif
static void
@@
-59,7
+69,10
@@
__argmatch_die (void)
ARGMATCH_DIE;
}
ARGMATCH_DIE;
}
-argmatch_exit_fn argmatch_exit_failure = __argmatch_exit_failure;
+/* Used by XARGMATCH and XARGCASEMATCH. See description in argmatch.h.
+ Default to __argmatch_die, but allow caller to change this at run-time. */
+argmatch_exit_fn argmatch_die = __argmatch_die;
+
\f
/* If ARG is an unambiguous match for an element of the
null-terminated array ARGLIST, return the index in ARGLIST
\f
/* If ARG is an unambiguous match for an element of the
null-terminated array ARGLIST, return the index in ARGLIST
@@
-151,10
+164,10
@@
argmatch_invalid (const char *context, const char *value, int problem)
set_quoting_style (NULL, ARGMATCH_QUOTING_STYLE);
format = (problem == -1
set_quoting_style (NULL, ARGMATCH_QUOTING_STYLE);
format = (problem == -1
- ? _("
%s: invalid argument `%s' for `%s'\n
")
- : _("
%s: ambiguous argument `%s' for `%s'\n
"));
+ ? _("
invalid argument `%s' for `%s'
")
+ : _("
ambiguous argument `%s' for `%s'
"));
-
fprintf (stderr, format, program_name
, quotearg (value), context);
+
error (0, 0, format
, quotearg (value), context);
set_quoting_style (NULL, saved_quoting_style);
}
set_quoting_style (NULL, saved_quoting_style);
}