anchor.diff:    (let* ((family (menu-choose
   		  (mapcar #'(lambda (fam)
   			      `(,fam :value ,fam :style (,fam :roman :normal)))
  -			  '(:fix #+clim :serif #-clim :dutch :sans-serif))
  +			  '(:fix :serif :sans-serif))
   		  :prompt "Family"))
   	 (style (when family (menu-choose (character-style-choices family)
   					  :prompt "Character Styles"))))
       style))
   
  -(defvar *EDIT-DELIMITER* #-clim #\end #+clim #\return)
  +(defvar *EDIT-DELIMITER* #\return)
   (defvar *min-window-height* 100)
   (defvar *min-window-width* 220)
   
  -#-clim
  -(let ((edit-window nil))
  -  (defun FIND-EDIT-WINDOW (stream)
  -    (let ((window edit-window))
  -      (unless window
  -	(setq window
  -	      (tv:make-window 'tv:pop-up-text-window
  -			      :deexposed-typeout-action :permit
  -			      :more-p nil
  -			      :save-bits t
  -			      :superior stream
  -			      :label (format nil
  -					     "Edit text (~C or ~C):~%"
  -					     *edit-delimiter* #\abort) ))
  -	(setq edit-window window))
  -      (funcall #'(setf sheet-parent) stream window)	; +++ Unresolved genera problem.
  -      window)))
  -
  -#-clim
  -(defmacro with-edit-window ((symbol superior) &body body)
  -  `(let ((,symbol (find-edit-window ,superior))) ,@body))
  -
  -#-clim
  -(defun WINDOW-EDIT-TEXT (window left top right bottom &optional string)
  -  "Edit text in the given region of the window."
  -  (if (> top bottom) (psetq bottom top top bottom))
  -  (if (> left right) (psetq right left left right))
  -  (with-edit-window (ed-window window)
  -    (multiple-value-bind (ml mto mr mb) (scl:send ed-window :margins)
  -      (let* ((extra-width (+ ml mr (values (truncate (* (- right left) .5)))))
  -	     (extra-height (+ mto mb (* (stream-line-height ed-window) 2)))
  -	     width height)
  -	(setq width (max *min-window-width* (+ (- right left) extra-width)))
  -	(setq height (max *min-window-height* (+ (- bottom top) extra-height)))
  -	(change-size ed-window width height)
  -	(dw::position-window-near-carefully ed-window '(:mouse)))
  -      (scl:send ed-window :clear-window)
  -      (tv:with-window-shadowed-for-selection
  -	((sys:console-selected-window (tv:sheet-console window)) ed-window)
  -	(tv:window-call (ed-window :deactivate)
  -	  (scl:with-input-editing-options ((:initial-input string))
  -	    (scl:read-delimited-string *edit-delimiter* ed-window)))))))
  -
  -#+clim
   (defun WINDOW-EDIT-TEXT (window left top right bottom &optional string)
     "Edit text in the given region of the window."
     ;; This only reads a single line...	  
  
positive.code:   (let* ((rad (values (truncate (- size 2) 2)))
  	 (offset rad))
      ;; Since clim insists on flipping the coordinate system...
      #+(or clim-1.0 clim-2) (setq offset (- offset))
  ;;    #+clim-0.9 (terpri stream)
      (multiple-value-bind (x y) (stream-cursor-position* stream)
        #+clim-0.9
        (stream-set-cursor-position* stream (setq x (+ x size)) y)
        (draw-circle (+ x offset) (+ y offset)
  		   rad :stream stream :filled selected-p)
        (if selected-p
  
negative.code:   (when format-args
      ;; Typically, the formatter is not needed.
      (setq format-string (apply #'format nil format-string format-args)))
    (let* ((return #.(aref (format nil "~%") 0))
  	 (line-cnt (1+ (count return format-string :test #'char=))))
      ;; This is 2-3 times faster than using continuation-output-size.
      (multiple-value-bind (x xmax)
  	(stream-string-width stream format-string :text-style style)
        (declare (ignore x))
        (values xmax (* line-cnt (stream-line-height stream style))))))
  
  ;;; These things are needed mainly for annotations, but they are kept in a separate
  ;;; file to minimize the clutter in the annotations code.
  