From: Reinhold Kainhofer Date: Sun, 18 Sep 2011 00:09:41 +0000 (+0200) Subject: Message-handling: Make the Input class use the functions in warn.cc X-Git-Tag: release/2.15.13-1~18 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=05f05a51ca0078ce9a8c87cbf30ac7fbd4def706;p=lilypond.git 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 --- diff --git a/lily/include/input.hh b/lily/include/input.hh index 91c15df329..c319de0829 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" diff --git a/lily/input.cc b/lily/input.cc index 292e06a449..28923f4948 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_); 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