X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finput.cc;h=cbb609941fb6924d0a0b9cd33e475da78f5b79d9;hb=90fcc649dc06ad006158945acc15a69e24e942cd;hp=b6378af67f1d1761bfea7a44a29cb1a15da24b5c;hpb=7f3f0083f89d87c5ed0422858e9648fc759e98a4;p=lilypond.git diff --git a/lily/input.cc b/lily/input.cc index b6378af67f..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--2008 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