anchor.diff:  
   ;;;  (c) copyright 1998,1999,2000,2001 by Michael McDonald (mikemac@mikemac.com)
   ;;;  (c) copyright 2001 by Arnaud Rouanet (rouanet@emi.u-bordeaux.fr)
  -;;;  (c) copyright 2014 by
  -;;;      Robert Strandh (robert.strandh@gmail.com)
  +;;;  (c) copyright 2014 by Robert Strandh (robert.strandh@gmail.com)
   
   ;;; This library is free software; you can redistribute it and/or
   ;;; modify it under the terms of the GNU Library General Public
  
positive.code:                ;; on screen backends, using :normal units. There is no function
                 ;; documented for converting the units to stream coordinates.
                 (thickness (multiple-value-bind (dx dy)
  			      (transform-distance
  			       (invert-transformation
  				(medium-transformation sheet))
  			       (line-style-thickness line-style)
  			       0)
  			    (sqrt (+ (* dx dx) (* dy dy)))))
                 (width/2 (/ head-width 2))
                 (a (atan (/ width/2 head-length)))
                 (offset (if (and head-length (not (zerop head-length)))
  			   (/ thickness (* 2 (sin a )))
  			   0.0))
                 (tip-to-peak (+ head-length
  			       offset
  			       (- (* thickness 0.5 (sin a)))))) ;; okay, a guess..
  	  (when to-head   (incf p offset))
  	  (when from-head (decf q offset))
  	  (if (and to-head
  		   from-head
  		   (< (abs (- start end)) (* 2 tip-to-peak)))
  	      (let ((width (* 0.5 (+ head-width thickness)
  			      (/ (abs (- start end))
  				 (* 2 tip-to-peak)) )))
  		(draw-polygon* sheet
  			       (list end 0
  				     (/ start 2) width
  				     start 0
                                       (/ start 2) (- width))
  			       :filled t
  			       :line-thickness 0))
  	      (progn
  		(when to-head
  		  (draw-polygon* sheet
  				 (list (+ p head-length) (- width/2)
  				       p 0
  				       (+ p head-length) width/2)
  				 :filled nil
  				 :closed nil))
  		(when from-head
  		  (draw-polygon* sheet
  				 (list (- q head-length) (- width/2)
  				       q 0
  				       (- q head-length) width/2)
  				 :filled nil
  				 :closed nil))
  
  		(unless (< q p)
  		  (draw-line* sheet q 0 p 0)))))))))
  
  (defun draw-oval (sheet center-pt x-radius y-radius
  		  &rest args
  		  &key (filled t) ink clipping-region transformation
  		    line-style line-thickness line-unit
  		    line-dashes line-cap-shape)
    (declare (ignore filled ink clipping-region transformation
  		   line-style line-thickness
  		   line-unit line-dashes line-cap-shape))
    (multiple-value-bind (x1 y1) (point-position center-pt)
      (apply #'draw-oval* sheet x1 y1 x-radius y-radius args)))
  
  (defun draw-oval* (sheet center-x center-y x-radius y-radius
                     &rest args
                     &key (filled t) ink clipping-region transformation
  		     line-style line-thickness line-unit
  		     line-dashes line-cap-shape)
    (declare (ignore ink clipping-region transformation
  		   line-style line-thickness
  		   line-unit line-dashes line-cap-shape))
    (check-type x-radius (real 0))
    (check-type y-radius (real 0))
    (with-medium-options (sheet args)
  
negative.code: 
  ;;; Compatibility with real CLIM
  (defmethod invoke-with-drawing-options ((medium t) continuation
                                          &rest drawing-options)
    (declare (ignore drawing-options))
    (funcall continuation medium))
  
  