From: Han-Wen Nienhuys Date: Wed, 17 Jan 2007 14:03:21 +0000 (+0100) Subject: further tweaks to optimized scheme formatting. X-Git-Tag: release/2.10.12-1~3 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=72245b3f302c7bfd7a1e9953d20a55b8234dbeb5;p=lilypond.git further tweaks to optimized scheme formatting. --- diff --git a/lily/general-scheme.cc b/lily/general-scheme.cc index 9b6aaeb7fd..159de6b966 100644 --- a/lily/general-scheme.cc +++ b/lily/general-scheme.cc @@ -145,6 +145,20 @@ LY_DEFINE (ly_assoc_get, "ly:assoc-get", return default_value; } +LY_DEFINE (ly_string_substitute, "ly:string-substitute", + 3, 0, 0, (SCM a, SCM b, SCM s), + "Replace @var{a} by @var{b} in @var{s}.") +{ + SCM_ASSERT_TYPE (scm_is_string (a), s, SCM_ARG1, __FUNCTION__, "string"); + SCM_ASSERT_TYPE (scm_is_string (b), s, SCM_ARG2, __FUNCTION__, "string"); + SCM_ASSERT_TYPE (scm_is_string (s), s, SCM_ARG3, __FUNCTION__, "string"); + + string ss = ly_scm2string (s); + replace_all (ss, string (scm_i_string_chars (a)), + string (scm_i_string_chars (b))); + return ly_string2scm (ss); +} + LY_DEFINE (ly_number2string, "ly:number->string", 1, 0, 0, (SCM s), "Convert @var{num} to a string without generating many decimals.") @@ -164,7 +178,7 @@ LY_DEFINE (ly_number2string, "ly:number->string", r = 0.0; } - snprintf (str, sizeof (str), "%08.4f", r); + snprintf (str, sizeof (str), "%.4f", r); } else snprintf (str, sizeof (str), "%d", int (scm_to_int (s))); diff --git a/scm/lily-library.scm b/scm/lily-library.scm index 2db81d30ce..00e3b10ad6 100644 --- a/scm/lily-library.scm +++ b/scm/lily-library.scm @@ -432,9 +432,9 @@ found." ;; string (define-public (string-endswith s suffix) - (equal? prefix (substring s - (max 0 (- (string-length s)) - (min (string-length s) (string-length prefix)))))) + (equal? suffix (substring s + (max 0 (- (string-length s) (string-length suffix))) + (string-length s)))) (define-public (string-startswith s prefix) (equal? prefix (substring s 0 (min (string-length s) (string-length prefix)))))