]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/c++.scm
Run grand replace for 2015.
[lilypond.git] / scm / c++.scm
index 5a5f8e0bad8b31c5b196c5c8e7bf5f8fb3c00d0c..48f54d3582b77fb6a426803b55022c2da33de424 100644 (file)
@@ -1,6 +1,6 @@
 ;;;; This file is part of LilyPond, the GNU music typesetter.
 ;;;;
-;;;; Copyright (C) 1998--2011 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; Copyright (C) 1998--2015 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;;                 Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;
 ;;;; LilyPond is free software: you can redistribute it and/or modify
   (and (pair? x)
        (number? (car x)) (number? (cdr x))))
 
+(define-public (number-pair-list? x)
+  (and (list? x)
+       (every number-pair? x)))
+
 (define-public (fraction? x)
   (and (pair? x)
-       (integer? (car x)) (integer? (cdr x))
-       (>= (car x) 0) (>= (cdr x) 0)))
+       (index? (car x)) (index? (cdr x))))
+
+(define-public (rational-or-procedure? x)
+  (or
+   (and (rational? x) (exact? x))
+   (procedure? x)))
 
 (define-public (number-or-grob? x)
   (or (ly:grob? x) (number? x)))
 (define-public (grob-list? x)
   (list? x))
 
+(define-public (number-list? x)
+  (and (list? x) (every number? x)))
+
+(define-public (index? x)
+  (and (integer? x) (>= x 0)))
+
 (define-public (moment-pair? x)
   (and (pair? x)
        (ly:moment? (car x)) (ly:moment? (cdr x))))
 (define-public (boolean-or-symbol? x)
   (or (boolean? x) (symbol? x)))
 
+(define-public (symbol-list? x)
+  (and (list? x) (every symbol? x)))
+
+(define-public (symbol-list-or-music? x)
+  (if (list? x)
+      (every symbol? x)
+      (ly:music? x)))
+
 (define-public (string-or-symbol? x)
   (or (string? x) (symbol? x)))
 
 (define-public (number-or-string? x)
   (or (number? x) (string? x)))
 
+(define-public (number-or-markup? x)
+  (or (number? x) (markup? x)))
+
 (define-public (string-or-pair? x)
   (or (string? x) (pair? x)))
 
+(define-public (string-or-music? x)
+  (or (string? x) (ly:music? 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 (symbol-list-or-symbol? x)
+  (if (list? x)
+      (every symbol? x)
+      (symbol? x)))
 
 (define-public (scheme? x) #t)
 
@@ -67,7 +97,7 @@
   (or (symbol? x) (boolean? x)))
 
 (define-public (void? x)
-  (eq? x (begin)))
+  (unspecified? x))
 
 ;; moved list to end of lily.scm: then all type-predicates are
 ;; defined.
   (if (null? alist)
       "Unknown type"
       (if (apply (caar alist) obj)
-         (cdar alist)
-         (match-predicate obj (cdr alist)))))
+          (cdar alist)
+          (match-predicate obj (cdr alist)))))
 
 (define-public (object-type obj)
   (match-predicate obj type-p-name-alist))