From a129dae5845b634ba291642a3c5a300c898a72a3 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Wed, 17 Jan 2007 15:03:21 +0100 Subject: [PATCH] further tweaks to optimized scheme formatting. --- lily/general-scheme.cc | 16 +++++++++++++++- scm/lily-library.scm | 6 +++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/lily/general-scheme.cc b/lily/general-scheme.cc index a74826c8ac..c52bc54ece 100644 --- a/lily/general-scheme.cc +++ b/lily/general-scheme.cc @@ -146,6 +146,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.") @@ -165,7 +179,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 47e1bcd3ca..70faac6a82 100644 --- a/scm/lily-library.scm +++ b/scm/lily-library.scm @@ -426,9 +426,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))))) -- 2.39.2