]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/c++.scm
Imported Upstream version 2.14.2
[lilypond.git] / scm / c++.scm
index b6ec6a4ee7602c31e8daca2ac365102bd64a12e7..74f58f4da3f4da2449535f0faf6ca1034c85dcd0 100644 (file)
@@ -1,9 +1,20 @@
-;;;; c++.scm -- implement Scheme frontends to C++ functions
+;;;; This file is part of LilyPond, the GNU music typesetter.
 ;;;;
-;;;;  source file of the GNU LilyPond music typesetter
-;;;; 
-;;;; (c) 1998--2009 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
+;;;; it under the terms of the GNU General Public License as published by
+;;;; the Free Software Foundation, either version 3 of the License, or
+;;;; (at your option) any later version.
+;;;;
+;;;; LilyPond is distributed in the hope that it will be useful,
+;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;;; GNU General Public License for more details.
+;;;;
+;;;; You should have received a copy of the GNU General Public License
+;;;; along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Note: this file can't be used without LilyPond executable
 
 (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)))
+
+(define-public (list-or-symbol? x)
+  (or (cheap-list? x) (symbol? x)))
+
 (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.
-(define type-p-name-alist '()) 
+(define type-p-name-alist '())
 
 (define (match-predicate obj alist)
   (if (null? alist)
@@ -59,4 +81,6 @@
 (define-public (type-name predicate)
   (let ((entry (assoc predicate type-p-name-alist)))
     (if (pair? entry) (cdr entry)
-       "unknown")))
+        (string-trim-right
+         (symbol->string (procedure-name predicate))
+         #\?))))