X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fwarn-scheme.cc;h=cd9efc9ad4014abb410bf10ec047de8bca40f3a1;hb=47db9a3883d726ca53e2133a3b2298f78dd6a32e;hp=2f7a1af611f0f442c7577b589f010130a3dab27e;hpb=1ecdd56060e34a00b2be6b38029b286a601ea6f8;p=lilypond.git diff --git a/lily/warn-scheme.cc b/lily/warn-scheme.cc index 2f7a1af611..cd9efc9ad4 100644 --- a/lily/warn-scheme.cc +++ b/lily/warn-scheme.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1998--2011 Jan Nieuwenhuizen + Copyright (C) 1998--2015 Jan Nieuwenhuizen Han-Wen Nienhuys LilyPond is free software: you can redistribute it and/or modify @@ -49,12 +49,7 @@ LY_DEFINE (ly_programming_error, "ly:programming-error", { LY_ASSERT_TYPE (scm_is_string, str, 1); str = scm_simple_format (SCM_BOOL_F, str, rest); - - if (get_program_option ("warning-as-error")) - error (ly_scm2string (str)); - else - programming_error (ly_scm2string (str)); - + programming_error (ly_scm2string (str)); return SCM_UNSPECIFIED; } @@ -65,12 +60,7 @@ LY_DEFINE (ly_warning, "ly:warning", { LY_ASSERT_TYPE (scm_is_string, str, 1); str = scm_simple_format (SCM_BOOL_F, str, rest); - - if (get_program_option ("warning-as-error")) - error (ly_scm2string (str)); - else - warning (ly_scm2string (str)); - + warning (ly_scm2string (str)); return SCM_UNSPECIFIED; } @@ -129,12 +119,7 @@ LY_DEFINE (ly_warning_located, "ly:warning-located", LY_ASSERT_TYPE (scm_is_string, location, 1); LY_ASSERT_TYPE (scm_is_string, str, 2); str = scm_simple_format (SCM_BOOL_F, str, rest); - - if (get_program_option ("warning-as-error")) - error (ly_scm2string (str), ly_scm2string (location)); - else - warning (ly_scm2string (str), ly_scm2string (location)); - + warning (ly_scm2string (str), ly_scm2string (location)); return SCM_UNSPECIFIED; } @@ -142,7 +127,7 @@ LY_DEFINE (ly_expect_warning, "ly:expect-warning", 1, 0, 1, (SCM str, SCM rest), "A Scheme callable function to register a warning to be expected" " and subsequently suppressed. If the warning is not encountered," - " a warning about the missing warning will be shown. The message" + " a warning about the missing warning will be shown. The message" " should be translated with @code{(_ ...)} and changing parameters" " given after the format string.") { @@ -167,7 +152,7 @@ LY_DEFINE (ly_translate_cpp_warning_scheme, "ly:translate-cpp-warning-scheme", { LY_ASSERT_TYPE (scm_is_string, str, 1); string s = _ (ly_scm2string (str).c_str ()); - + /* Now replace all printf placeholders by scheme placeholders (~a). * Guile's format syntax is pretty similar to C's printf, only with * a tilde as the placeholder instead of a percent sign. @@ -182,27 +167,32 @@ LY_DEFINE (ly_translate_cpp_warning_scheme, "ly:translate-cpp-warning-scheme", // In some cases (%%, %s) we need to do a lookahead. As the C string is // always \0-terminated the next char is never beyond the end of the // memory! - switch (*pos) { + switch (*pos) + { case '~': result += "~~"; break; case '%': - if (*(pos+1) == '%') { - result += "%"; - // Skip the second '%' - pos++; - } else if (*(pos+1) == 's' || *(pos+1) == 'd') { - // %s in C++ corresponds to ~a; ~s would add quotes! - // ~d is only supported by ice-9, use ~a instead - result += "~a"; - // Skip the following 's' - pos++; - } else + if (*(pos + 1) == '%') + { + result += "%"; + // Skip the second '%' + pos++; + } + else if (*(pos + 1) == 's' || *(pos + 1) == 'd') + { + // %s in C++ corresponds to ~a; ~s would add quotes! + // ~d is only supported by ice-9, use ~a instead + result += "~a"; + // Skip the following 's' + pos++; + } + else result += "~"; break; default: result += *pos; - } + } pos++; } return ly_string2scm (result);