]> git.donarmstrong.com Git - lilypond.git/blobdiff - flower/warn.cc
apply Julian's patch to fix install-info warnings
[lilypond.git] / flower / warn.cc
index 40a2b8a3318a156ee3a71593240a83f09c80a718..1c2f4ed134724bfb04c36fde2f380e7ce710cbf2 100644 (file)
@@ -1,47 +1,89 @@
 /*
-  warn.cc -- implement warnings
+  This file is part of LilyPond, the GNU music typesetter.
 
-  source file of the Flower Library
+  Copyright (C) 1997--2011 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
-  (c) 1997--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
+  LilyPond is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  LilyPond is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
 
-#include <stdlib.h>
-#include <stdio.h>
+  You should have received a copy of the GNU General Public License
+  along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
+*/
 
 #include "warn.hh"
 
+#include <cstdlib>
+#include <cstdio>
+
+#include "international.hh"
 
+using namespace std;
+
+/* Is progress indication at NEWLINE?  */
+static bool progress_newline = true;
+
+/* Display user information that is not a full message.  */
 void
-message (String s)
+progress_indication (string s)
 {
-  fputs (s.to_str0 (), stderr);
+  /* Test if all silly progress_indication ("\n") can be dropped now.  */
+  if (s == "\n")
+    return;
+
+  fputs (s.c_str (), stderr);
   fflush (stderr);
+  if (s.length ())
+    progress_newline = s[s.length () - 1] == '\n';
+}
+
+/* Display a single user message.  Always starts on a new line.  */
+void
+message (string s)
+{
+  if (!progress_newline)
+    fputc ('\n', stderr);
+  progress_indication (s);
+}
+
+/* Display a success message.  Always starts on a new line.  */
+void
+successful (string s)
+{
+  message (_f ("success: %s", s.c_str ()) + "\n");
 }
 
+/* Display a warning message.  Always starts on a new line.  */
 void
-warning (String s)
+warning (string s)
 {
-  message (_f ("warning: %s\n", s.to_str0 ()));
+  message (_f ("warning: %s", s.c_str ()) + "\n");
 }
 
 void
-non_fatal_error (String s)
+non_fatal_error (string s)
 {
-  message (_f ("error: %s\n", s.to_str0 ()));
+  message (_f ("error: %s", s.c_str ()) + "\n");
 }
 
+/* Display an error message.  Always starts on a new line.  */
 void
-error (String s)
+error (string s)
 {
   non_fatal_error (s);
   exit (1);
 }
 
 void
-programming_error (String s)
+programming_error (string s)
 {
-  message (_f ("programming error: %s (Continuing; crossing fingers)\n",
-              s.to_str0 ()));
+  message (_f ("programming error: %s", s) + "\n");
+  message (_ ("continuing, cross fingers") + "\n");
 }