anchor.diff:    (setf string (normalize-text-data string))
     (setf text-style (or text-style (make-text-style nil nil nil)))
     (setf text-style
  -	(merge-text-styles text-style (medium-default-text-style medium)))
  +        (merge-text-styles text-style (medium-default-text-style medium)))
     (gfw:with-graphics-context (gc (target-of medium))
  -    (let* ((font (text-style-to-font gc text-style nil))
  -	   (metrics (gfg:metrics gc font))
  -	   (width (gfs:size-width (gfg:text-extent gc (subseq string
  -							      start
  -							      (or end (length string)))))))
  -      (values width
  -	      (gfg:height metrics)
  -	      width
  -	      (gfg:height metrics)
  -	      (gfg:ascent metrics)))))
  +    (let ((font (text-style-to-font gc text-style nil)))
  +      (setf (gfg:font gc) font)
  +      (let ((metrics (gfg:metrics gc font))
  +            (extent (gfg:text-extent gc (subseq string
  +                                                start
  +                                                (or end (length string))))))
  +        (values (gfs:size-width extent)
  +                (gfg:height metrics)
  +                (gfs:size-width extent)
  +                (gfg:height metrics)
  +                (gfg:ascent metrics))))))
   
   (defmethod climi::text-bounding-rectangle*
       ((medium graphic-forms-medium) string &key text-style (start 0) end)
  
positive.code:     ;; have better control over them
      ;;
      (let ((face-name (if (stringp family)
  			 family
  			 (ecase family
  			   ((:fix :fixed) "Lucida Console")
  			   (:serif        "Times New Roman")
  			   (:sans-serif    "Arial"))))
  	  (pnt-size (case size
  		      (:tiny       6)
  		      (:very-small 8)
  		      (:small      10)
  		      (:normal     12)
  		      (:large      14)
  		      (:very-large 16)
  		      (:huge       18)
  		      (otherwise   10)))
  	  (style nil))
        (pushnew (case face
  		 ((:bold :bold-italic :bold-oblique :italic-bold :oblique-bold)
  		  :bold)
  		 (otherwise
  		  :normal))
  	       style)
        (pushnew (case face
  		 ((:bold-italic :italic :italic-bold)
  		  :italic)
  		 (otherwise
  		  :normal))
  	       style)
        (pushnew (case family
  		 ((:fix :fixed) :fixed)
  		 (otherwise     :normal))
  	       style)
        (when (or (null old-data)
  		(not (eql pnt-size (gfg:font-data-point-size old-data)))
  		(string-not-equal face-name (gfg:font-data-face-name old-data))
  		(/= (length style)
  		    (length (intersection style (gfg:font-data-style old-data)))))
  	(let ((new-data (gfg:make-font-data :face-name face-name
  					    :point-size pnt-size
  					    :style style)))
  	  (make-instance 'gfg:font :gc gc :data new-data))))))
  
  (defmethod (setf medium-text-style) :before (text-style (medium graphic-forms-medium))
    (sync-text-style medium
  
negative.code:       (let ((font (font-of medium)))
          (if font
            (setf (gfg:font gc) font))
          (let ((ascent (gfg:ascent (gfg:metrics gc font)))
  	      (x (round-coordinate x))
  	      (y (round-coordinate y)))
  	  (gfg:draw-text gc
  			 (subseq string start (or end (length string)))
  			 (gfs:make-point :x x :y (- y ascent))))))
      (add-medium-to-render medium)))
  
  (defmethod medium-buffering-output-p ((medium graphic-forms-medium))
  