X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finput.cc;h=bc1e79b373554cc5dd2b720ddf444ddd4610a701;hb=7b999268d43ff84fa3ef42b46f0c6f72ec0bb9c6;hp=e3027950424fdfad0b4d4891037a11a65122ea1c;hpb=2a5c70110bba2014507091c353c3e80d5dc5f796;p=lilypond.git diff --git a/lily/input.cc b/lily/input.cc index e302795042..bc1e79b373 100644 --- a/lily/input.cc +++ b/lily/input.cc @@ -1,9 +1,20 @@ /* - input.cc -- implement Input + This file is part of LilyPond, the GNU music typesetter. - source file of the LilyPond music typesetter + Copyright (C) 1997--2012 Han-Wen Nienhuys - (c) 1997--2009 Han-Wen Nienhuys + 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. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #include "input.hh" @@ -67,49 +78,56 @@ Input::set_location (Input const &i_start, Input const &i_end) [file:line:column:][warning:]message */ -void -Input::message (string s) const +string +Input::message_string (string msg) const { if (source_file_) - s = location_string () + ": " + s + "\n" - + source_file_->quote_input (start_) + "\n"; - ::message (s); + return msg + "\n" + source_file_->quote_input (start_); + else + return msg; } +string +Input::message_location () const +{ + return (source_file_) ? location_string () : ""; +} +void +Input::error (string s) const +{ + ::non_fatal_error (message_string (s), message_location ()); + // UGH, fix naming or usage (use non_fatal_error in most places, instead) + // exit (1); +} void Input::programming_error (string s) const { - if (get_program_option ("warning-as-error")) - ::error (s); - else { - message (_f ("programming error: %s", s.c_str ())); - message (_ ("continuing, cross fingers") + "\n"); - } + ::programming_error (message_string (s), message_location ()); } +void +Input::non_fatal_error (string s) const +{ + ::non_fatal_error (message_string (s), message_location ()); +} void Input::warning (string s) const { - if (get_program_option ("warning-as-error")) - ::error (s); - else - message (_f ("warning: %s", s)); + ::warning (message_string (s), message_location ()); } void -Input::error (string s) const +Input::message (string s) const { - message (_f ("error: %s", s)); - // UGH, fix naming or usage - // exit (1); + ::message (message_string (s), true, message_location ()); } void -Input::non_fatal_error (string s) const +Input::debug_output (string s) const { - message (_f ("error: %s", s)); + ::debug_output (message_string (s), true, message_location ()); } string