anchor.diff:                       (subseq (line-str line) 0 start)
                        (subseq (line-str line) end))))
   
  -(defun %delete-line-eol/point (marker start)
  +(defun %delete-line-eol/point (point start)
     (declare (special killring-stream line))
  -  (shift-sticky-objects-subtract-line marker nil)
  +  (shift-sticky-objects-subtract-line point nil)
     (write-string (line-str line) killring-stream :start start)
     (setf (line-str line)
           (subseq (line-str line) 0 start)))
   
  -(defun %delete-line/point (marker start)
  +(defun %delete-line/point (point start)
     (declare (special killring-stream line buffer n))
  -  (shift-sticky-objects-subtract-line marker t)
  +  (shift-sticky-objects-subtract-line point t)
     (write-string (line-str line) killring-stream :start start)
     (write-char #\newline killring-stream)
     (unless (eq n 'T)
  
positive.code:        (prog1 (progn ,@body)
           (buffer-modify ,buffer)))))
  
  (defun shift-sticky-objects (marker n)
    (let ((buffer (point-buffer marker))
          (line (get-line/point marker))
          (linum (point-linum marker))
          (charpos (point-charpos marker)))
      (line-property-insert-pos line charpos n)
      (dolist (m (buffer-points buffer))
        (when (and (= linum (point-linum m))
  
negative.code:                               (subseq (line-str line) charpos))))))
        char)))
  
  (defun %insert-line-string/point (point linum charpos string)
    (check-read-only-at-point point 0)
    (shift-sticky-objects point (length string))
    (let ((line
           (buffer-get-line (point-buffer point)
                            linum)))
      (setf (line-str line)
            (concatenate 'string
  