lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Message-handling: Make the Input class use the functions in warn.cc (iss


From: reinhold . kainhofer
Subject: Message-handling: Make the Input class use the functions in warn.cc (issue 5032048)
Date: Sun, 18 Sep 2011 00:13:06 +0000

Reviewers: ,

Message:
Please review this patch, which moves all message formatting from the
Input class to the warn.cc functions. So far, there was some duplication
in those two places.

Description:
Message-handling: Make the Input class use the functions in warn.cc

This allows us to handle all warnings/error really similar in warn.cc.
For example, we can then
simply suppress some warnings by only checking in warn.cc. This patch
makes the whole handling
much more consistent, as now everything is in warn.cc

Please review this at http://codereview.appspot.com/5032048/

Affected files:
  M lily/include/input.hh
  M lily/input.cc


Index: lily/include/input.hh
diff --git a/lily/include/input.hh b/lily/include/input.hh
index 91c15df3299dba369b234c1e2de9d84ff0ffb1f0..c319de0829e8c425b2c66a5b24ca77da88d91df9 100644
--- a/lily/include/input.hh
+++ b/lily/include/input.hh
@@ -62,7 +62,8 @@ public:
   Input (Input const &i);
   Input ();
 protected:
-  void print_message (int level, string s) const;
+  string message_location () const;
+  string message_string (string msg) const;
 };

 #include "smobs.hh"
Index: lily/input.cc
diff --git a/lily/input.cc b/lily/input.cc
index 292e06a44950fc623eab74d985faacd6f9534a39..563724584e0f2536793fcac35ff68a01f29e8007 100644
--- a/lily/input.cc
+++ b/lily/input.cc
@@ -78,21 +78,24 @@ Input::set_location (Input const &i_start, Input const &i_end)

   [file:line:column:][warning:]message
 */
-void
-Input::print_message (int level, string s) const
+string
+Input::message_string (string msg) const
 {
-  string location;
   if (source_file_)
-    ::print_message (level, location_string (),
-                     s + "\n" + source_file_->quote_input (start_) + "\n");
+    return msg + "\n" + source_file_->quote_input (start_) + "\n";
   else
-    ::print_message (level, "", s);
+    return msg;
 }

+string
+Input::message_location () const
+{
+  return (source_file_) ? location_string () : "";
+}
 void
 Input::error (string s) const
 {
-  print_message (LOG_ERROR, _f ("error: %s", s));
+  ::non_fatal_error (message_string (s), message_location ());
   // UGH, fix naming or usage (use non_fatal_error in most places, instead)
   // exit (1);
 }
@@ -101,39 +104,36 @@ void
 Input::programming_error (string s) const
 {
   if (get_program_option ("warning-as-error"))
-    error (s);
+    ::error (message_string (s), message_location ());
   else
-    {
-      print_message (LOG_ERROR, _f ("programming error: %s", s));
-      print_message (LOG_ERROR, _ ("continuing, cross fingers") + "\n");
-    }
+    ::programming_error (message_string (s), message_location ());
 }

 void
 Input::non_fatal_error (string s) const
 {
-  print_message (LOG_ERROR, _f ("error: %s", s));
+  ::non_fatal_error (message_string (s), message_location ());
 }

 void
 Input::warning (string s) const
 {
   if (get_program_option ("warning-as-error"))
-    error (s);
+    ::non_fatal_error (message_string (s), message_location ());
   else
-    print_message (LOG_WARN, _f ("warning: %s", s));
+    ::warning (message_string (s), message_location ());
 }

 void
 Input::message (string s) const
 {
-  print_message (LOG_INFO, s);
+  ::message (message_string (s), true, message_location ());
 }

 void
 Input::debug_output (string s) const
 {
-  print_message (LOG_DEBUG, s);
+  ::debug_output (message_string (s), true, message_location ());
 }

 string





reply via email to

[Prev in Thread] Current Thread [Next in Thread]