X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finput.cc;fp=lily%2Finput.cc;h=cbb609941fb6924d0a0b9cd33e475da78f5b79d9;hb=e90f0536f9be39ada0bef0aeb0d275dec3b2fb5b;hp=084b1f3b643dd4ff9d2802bd3219929f49bcb25a;hpb=a8c9e8a7ca320ab0df5fd32e717fd62cd7635ce6;p=lilypond.git diff --git a/lily/input.cc b/lily/input.cc index 084b1f3b64..cbb609941f 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--2011 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" @@ -12,6 +23,7 @@ using namespace std; #include "international.hh" +#include "program-option.hh" #include "source-file.hh" #include "sources.hh" #include "warn.hh" @@ -79,15 +91,22 @@ Input::message (string s) const void Input::programming_error (string s) const { - message (_f ("programming error: %s", s.c_str ())); - message (_ ("continuing, cross fingers") + "\n"); + if (get_program_option ("warning-as-error")) + ::error (s); + else { + message (_f ("programming error: %s", s.c_str ())); + message (_ ("continuing, cross fingers") + "\n"); + } } void Input::warning (string s) const { - message (_f ("warning: %s", s)); + if (get_program_option ("warning-as-error")) + ::error (s); + else + message (_f ("warning: %s", s)); } void @@ -139,8 +158,8 @@ Input::line_number () const int Input::column_number () const { - int line, chr, col = 0; - source_file_->get_counts (start_, &line, &chr, &col); + int line, chr, col, offset = 0; + source_file_->get_counts (start_, &line, &chr, &col, &offset); return col; } @@ -156,16 +175,16 @@ Input::end_line_number () const int Input::end_column_number () const { - int line, chr, col = 0; - source_file_->get_counts (end_, &line, &chr, &col); + int line, chr, col, offset = 0; + source_file_->get_counts (end_, &line, &chr, &col, &offset); return col; } void -Input::get_counts (int *line, int *chr, int *col) const +Input::get_counts (int *line, int *chr, int *col, int *offset) const { - source_file_->get_counts (start_, line, chr, col); + source_file_->get_counts (start_, line, chr, col, offset); } void