]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/lily-library.scm
Merge branch 'master' of git://git.savannah.gnu.org/lilypond.git
[lilypond.git] / scm / lily-library.scm
index 0e2c810da912504b32010ab56219732712c2cf5b..34c9cb3820096c04603fd358393651bb165491e1 100644 (file)
@@ -179,14 +179,14 @@ bookoutput function"
   ;; as the key to out internal a-list
   (let* ((base-name (get-current-filename parser))
         (output-suffix (get-current-suffix parser))
-        (alist-key (format "~a~a" base-name output-suffix))
+        (alist-key (format #f "~a~a" base-name output-suffix))
         (counter-alist (ly:parser-lookup parser 'counter-alist))
         (output-count (assoc-get alist-key counter-alist 0))
         (result base-name))
     ;; Allow all ASCII alphanumerics, including accents
     (if (string? output-suffix)
         (set! result
-              (format "~a-~a"
+              (format #f "~a-~a"
                       result
                       (string-regexp-substitute
                        "[^-[:alnum:]]"
@@ -746,6 +746,23 @@ Handy for debugging, possibly turned off."
 
    (reverse matches))
 
+(define-public (random-string pool n)
+  "Produces a random lowercase string of length n"
+  (define (helper alphabet out num)
+    (let ((rand (random (string-length pool))))
+      (if (< num 1)
+          out
+          (helper alphabet
+                  (string-concatenate `(,out
+                                        ,(substring alphabet
+                                                    rand
+                                                    (+ 1 rand))))
+                  (- num 1)))))
+  (helper pool "" n))
+
+(define-public (random-lowercase-string n)
+  (random-string "abcdefghijklmnopqrstuvwxyz" n))
+
 ;;;;;;;;;;;;;;;;
 ;; other