]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/lily.scm
* lily/global-context.cc (run_iterator_on_me): fix grace note
[lilypond.git] / scm / lily.scm
index cf76e0afe5a42fa9ea1c9e59c7db165a7aa1152f..6cdc3656c841d64a84d049e204bd9d822afcfb37 100644 (file)
@@ -7,7 +7,7 @@
 
 ;;; Library functions
 
-
+(set-debug-cell-accesses! #t)
 (use-modules (ice-9 regex)
             (ice-9 safe)
             (oop goops)
@@ -91,7 +91,7 @@
 ;; lily specific variables.
 (define-public default-script-alist '())
 
-(define-public security-paranoia #f)
+(define-public safe-mode? #f)
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; Unassorted utility functions.
          (uniqued-alist (cdr alist) (cons (car alist) acc)))))
 
 
-(define-public (assoc-get key alist)
-  "Return value if KEY in ALIST, else #f."
-  (let ((entry (assoc key alist)))
-    (if entry (cdr entry) #f)))
-  
-(define-public (assoc-get-default key alist default)
-  "Return value if KEY in ALIST, else DEFAULT."
+(define-public (assoc-get key alist . default)
+  "Return value if KEY in ALIST, else DEFAULT (or #f if not specified)."
   (let ((entry (assoc key alist)))
-    (if entry (cdr entry) default)))
-
+    (if (pair? entry)
+       (cdr entry)
+       (if (pair? default) (car default) #f)
+       )))
 
 (define-public (uniqued-alist  alist acc)
   (if (null? alist) acc
            handle
            (chain-assoc x (cdr alist-list))))))
 
-(define (chain-assoc-get x alist-list default)
-  (if (null? alist-list)
-      default
-      (let* ((handle (assoc x (car alist-list))))
-       (if (pair? handle)
-           (cdr handle)
-           (chain-assoc-get x (cdr alist-list) default)))))
 
+(define (chain-assoc-get x alist-list . default)
+  "Return ALIST entry for X. Return DEFAULT (optional, else #f) if not
+found."
+
+  (define (helper x alist-list default)
+    (if (null? alist-list)
+       default
+       (let* ((handle (assoc x (car alist-list))))
+         (if (pair? handle)
+             (cdr handle)
+             (helper x (cdr alist-list) default)))))
+
+  (helper x alist-list
+         (if (pair? default) (car default) #f)))
 
 (define (map-alist-vals func list)
   "map FUNC over the vals of  LIST, leaving the keys."
@@ -363,16 +367,21 @@ L1 is copied, L2 not.
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;  output
 (use-modules (scm output-tex)
-            (scm output-ps)
             (scm output-sketch)
             (scm output-sodipodi)
-            (scm output-pdftex)
-            )
+            (scm output-pdftex))
+
+
+(define output-tex-module
+  (make-module 1021 (list (resolve-interface '(scm new-output-tex)))))
+
+(define (new-tex-output-expression expr port)
+  (display (eval expr output-tex-module) port))
 
 (define output-alist
   `(
     ("tex" . ("TeX output. The default output form." ,tex-output-expression))
-    ("ps" . ("Direct postscript. Requires setting GS_LIB and GS_FONTPATH" ,ps-output-expression))
+    ("safetex" . ("TeX output. The default output form." ,new-tex-output-expression))
     ("scm" . ("Scheme dump: debug scheme stencil expressions" ,write))
     ("sketch" . ("Bare bones Sketch output." ,sketch-output-expression))
     ("sodipodi" . ("Bare bones Sodipodi output." ,sodipodi-output-expression))
@@ -387,9 +396,8 @@ L1 is copied, L2 not.
      output-alist)
    ))
 
-(define-public (find-dumper format )
-  (let* ((d (assoc format output-alist)))
-    
+(define-public (find-dumper format)
+  (let ((d (assoc format output-alist)))
     (if (pair? d)
        (caddr d)
        (scm-error "Could not find dumper for format ~s" format))))
@@ -397,7 +405,7 @@ L1 is copied, L2 not.
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; other files.
 
-(map ly:load
+(for-each ly:load
      ;; load-from-path
      '("define-music-types.scm"
        "output-lib.scm"
@@ -422,7 +430,8 @@ L1 is copied, L2 not.
        "beam.scm"
        "clef.scm"
        "slur.scm"
-       "font.scm"
+;       "font.scm"
+       "new-font.scm"
        
        "define-markup-commands.scm"
        "define-grob-properties.scm"