(argmatch_invalid): Remove double quotes from the
authorJim Meyering <jim@meyering.net>
Sat, 2 Jan 1999 20:35:06 +0000 (20:35 +0000)
committerJim Meyering <jim@meyering.net>
Sat, 2 Jan 1999 20:35:06 +0000 (20:35 +0000)
offending quoted argument before using it in explanatory diagnostic.
Use a single fprintf stmt.

lib/argmatch.c

index 4e879691f4ce7799af51c512862223f584f9f8b0..517c6e529cedb37ab519ccfb69b4e8365b2a6dac 100644 (file)
@@ -130,6 +130,8 @@ void
 argmatch_invalid (const char *kind, const char *value, int problem)
 {
   enum quoting_style saved_quoting_style;
+  char const *format;
+  char *quoted_arg;
 
   /* Make sure to have a good quoting style to report errors.
      literal is insane here. */
@@ -137,14 +139,17 @@ argmatch_invalid (const char *kind, const char *value, int problem)
   set_quoting_style (NULL, ARGMATCH_QUOTING_STYLE);
 
   /* There is an error */
-  fprintf (stderr, "%s: ", program_name);
-  if (problem == -1)
-    fprintf (stderr, _("invalid argument %s for `%s'"),
-            quotearg (value), kind);
-  else                         /* Assume -2.  */
-    fprintf (stderr, _("ambiguous argument %s for `%s'"),
-            quotearg (value), kind);
-  putc ('\n', stderr);
+  quoted_arg = quotearg (value);
+
+  /* Skip over the first quote character, and overwrite the last one.  */
+  ++quoted_arg;
+  quoted_arg[strlen (quoted_arg) - 1] = '\0';
+
+  format = (problem == -1
+           ? _("%s: invalid argument `%s' for `%s'\n")
+           : _("%s: ambiguous argument `%s' for `%s'\n"));
+
+  fprintf (stderr, format, program_name, quoted_arg, kind);
 
   set_quoting_style (NULL, saved_quoting_style);
 }