]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/output-ps.scm
Merge branch 'master' of git://git.sv.gnu.org/lilypond
[lilypond.git] / scm / output-ps.scm
index 108771ee4b9bb2c51da3c2e06a6f523c20615c00..9a65b0c5e56729714378bf9cefba074b1367abc4 100644 (file)
@@ -3,7 +3,7 @@
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
 ;;;; (c) 1998--2006 Jan Nieuwenhuizen <janneke@gnu.org>
-;;;;                 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+;;;;                 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 ;;;; Note: currently misused as testbed for titles with markup, see
 ;;;;       input/test/title-markup.ly
            polygon
            repeat-slash
            resetcolor
-           resetrotatino
+           resetrotation
            round-filled-box
            setcolor
-               setrotation
+           setrotation
            text
            zigzag-line))
 
   (/ (round (* 10000 num)) 10000))
 
 (define (str4 num)
-  (format #f "~f" (round4 num)))
+  (if (or (nan? num) (inf? num))
+      (begin
+       (ly:warning (_ "Found infinity or nan in output. Substituting 0.0"))
+       "0.0")
+      (format #f "~f" (round4 num))))
 
 (define (number-pair->string4 numpair)
-  (format #f "~f ~f" (round4 (car numpair)) (round4 (cdr numpair))))
+  (string-append (str4 (car numpair))
+                " "
+                (str4 (cdr numpair))))
 
 (define (numbers->string4 numlist)
   (string-join (map str4 numlist) " "))
     (format #f "~a draw_repeat_slash"
            (numbers->string4 (list x-width width height)))))
 
-;; restore color from stack
-(define (resetcolor) "setrgbcolor\n")
-
 
 (define (round-filled-box left right bottom top blotdiam)
   (let* ((halfblot (/ blotdiam 2))
 
 ;; save current color on stack and set new color
 (define (setcolor r g b)
-  (format #f "currentrgbcolor ~a setrgbcolor\n"
+  (format #f "gsave ~a setrgbcolor\n"
          (numbers->string4 (list r g b))))
 
+;; restore color from stack
+(define (resetcolor) "grestore \n")
+
 ;; rotation around given point
 (define (setrotation ang x y)
   (format "gsave ~a translate ~a rotate ~a translate\n"