]> git.saurik.com Git - bison.git/blobdiff - src/complain.c
-Werror: fix for rules useless in parser after conflicts.
[bison.git] / src / complain.c
index 4266af1ee9a0abf53724df58b9f6301f894e3013..496924abca1d3596d87655df2779d5144e9c1a12 100644 (file)
@@ -37,7 +37,10 @@ bool complaint_issued;
  * \param loc     the location, defaulting to the current file,
  *                or the program name.
  * \param prefix  put before the message (e.g., "warning").
- * \param message the error message, a printf format string.
+ * \param message the error message, a printf format string.  Iff it
+ *                ends with ": ", then no trailing newline is printed,
+ *                and the caller should print the remaining
+ *                newline-terminated message to stderr.
  * \param args    the arguments of the format string.
  */
 static
@@ -56,8 +59,13 @@ error_message (location *loc,
     fprintf (stderr, "%s: ", prefix);
 
   vfprintf (stderr, message, args);
-  putc ('\n', stderr);
-  fflush (stderr);
+  {
+    size_t l = strlen (message);
+    if (l < 2 || message[l-2] != ':' || message[l-1] != ' ') {
+      putc ('\n', stderr);
+      fflush (stderr);
+    }
+  }
 }
 
 /** Wrap error_message() with varargs handling. */