]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/c++.scm
Build: end directories in their bare names and avoid some double slashes in logs.
[lilypond.git] / scm / c++.scm
index 362e358b34d9929bf74f158ccdf31d7178e0fdf3..74f58f4da3f4da2449535f0faf6ca1034c85dcd0 100644 (file)
@@ -1,6 +1,6 @@
 ;;;; This file is part of LilyPond, the GNU music typesetter.
 ;;;;
-;;;; Copyright (C) 1998--2010 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; Copyright (C) 1998--2011 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;;                 Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;
 ;;;; LilyPond is free software: you can redistribute it and/or modify
@@ -47,6 +47,9 @@
 (define-public (string-or-pair? x)
   (or (string? x) (pair? x)))
 
+(define-public (number-or-pair? x)
+  (or (number? x) (pair? x)))
+
 (define-public (cheap-list? x)
   (or (pair? x) (null? x)))
 
@@ -55,6 +58,8 @@
 
 (define-public (scheme? x) #t)
 
+(define-public (symbol-or-boolean? x)
+  (or (symbol? x) (boolean? x)))
 
 ;; moved list to end of lily.scm: then all type-predicates are
 ;; defined.
@@ -74,4 +79,8 @@
   (type-name (match-predicate obj type-p-name-alist)))
 
 (define-public (type-name predicate)
-  (assoc-get predicate type-p-name-alist "unknown"))
+  (let ((entry (assoc predicate type-p-name-alist)))
+    (if (pair? entry) (cdr entry)
+        (string-trim-right
+         (symbol->string (procedure-name predicate))
+         #\?))))