anchor.diff:  (in-package :CLIM-POSTSCRIPT)
   
   ;;; Postscript output utilities
  -(defun format-postscript-number (number)
  -  (if (not (integerp number))
  -      (string-right-trim
  -       "." (string-right-trim
  -            "0" (format nil "~,3F" (coerce number 'single-float))))
  -      number))
  -
  -(defun format-postscript-angle (angle)
  -  (format-postscript-number (* angle (/ 180 pi))))
  +(defun write-number (stream number)
  +  (format stream "~,3F " (coerce number 'single-float)))
  +
  +(defun write-angle (stream angle)
  +  (write-number stream (* angle (/ 180 pi))))
   
   (defun write-coordinates (stream x y)
     (with-transformed-position (*transformation* x y)
  -    (format stream "~A ~A "
  -            (format-postscript-number x)
  -            (format-postscript-number y))))
  +    (write-number stream x)
  +    (write-number stream y)))
   
   (defun write-transformation* (stream mxx mxy myx myy tx ty)
  -  (format stream "[~{~A~^ ~}] "
  -          (loop for c in (list mxx myx mxy myy tx ty)
  -             collect (format-postscript-number c))))
  +  (write-char #\[ stream)
  +  (dolist (c (list mxx myx mxy myy tx ty))
  +     (write-number stream c))
  +  (write-string "] " stream))
   
   ;;; Low level functions
   (defstruct postscript-procedure
  
positive.code:            (start-angle (or (ellipse-start-angle circle) 0))
             (end-angle (or (ellipse-end-angle circle) (* 2 pi))))
        (write-string (if filled "true " "false ") stream)
        (format stream "~A ~A "
                (format-postscript-angle (if (< end-angle start-angle)
                                             (+ end-angle (* 2 pi))
                                             end-angle))
                (format-postscript-angle start-angle))
        (write-transformation* stream ndx2 ndx1 ndy2 ndy1 cx cy)
        (format stream "pe~%"))))
  
  
negative.code: (defmethod medium-draw-point* ((medium postscript-medium) x y)
    (let ((stream (postscript-medium-file-stream medium))
          (*transformation* (sheet-native-transformation (medium-sheet medium)))
          (radius (/ (medium-line-thickness medium) 2)))
      (postscript-actualize-graphics-state stream medium :color)
      (format stream "newpath~%")
      (write-coordinates stream x y)
      (write-number stream radius)
      (format stream "0 360 arc~%")
      (format stream "fill~%")))
  
  (defmethod medium-draw-points* ((medium postscript-medium) coord-seq)
    (let ((stream (postscript-medium-file-stream medium))
          (*transformation* (sheet-native-transformation (medium-sheet medium)))
          (radius (/ (medium-line-thickness medium) 2)))
      (postscript-actualize-graphics-state stream medium :color)
      (map-repeated-sequence 'nil 2
                             (lambda (x y)
                               (format stream "newpath~%")
                               (write-coordinates stream x y)
                               (write-number stream radius)
                               (format stream "0 360 arc~%")
                               (format stream "fill~%"))
                             coord-seq)))
  
  