anchor.diff:  (defun %insert-newline/point (point linum charpos)
     (let* ((buffer (point-buffer point))
            (line (buffer-get-line buffer linum)))
  -    (let ((newline (make-line line
  -                              (line-next line)
  -                              (subseq (line-str line) charpos))))
  -      (declare (ignore newline))
  -      (shift-sticky-objects-newline point)
  -      (incf (buffer-nlines buffer))
  -      (setf (line-str line)
  -            (subseq (line-str line) 0 charpos)))))
  +    (make-line line
  +               (line-next line)
  +               (subseq (line-str line) charpos))
  +    (shift-sticky-objects-newline point)
  +    (incf (buffer-nlines buffer))
  +    (setf (line-str line)
  +          (subseq (line-str line) 0 charpos))))
   
   (defgeneric insert-char/point (point char)
     (:method (point char)
  
positive.code:                      (< charpos (point-charpos m)))
                      ((eql :temporary)
                       nil)))
               (incf (point-linum m))
               (decf (point-charpos m) charpos))
              ((< linum (point-linum m))
               (incf (point-linum m)))))))
  
  (defun shift-sticky-objects-subtract (point n)
  
negative.code:                   (< charpos (point-charpos m)))
               (setf (point-charpos m) charpos))
              ((< linum (point-linum m))
               (when (= linum (1- (point-linum m)))
                 (setf (point-line m) (line-prev (point-line m))))
               (decf (point-linum m)))))
      (when nextp
        (line-merge line (line-next line) charpos))))
  