anchor.diff:                      nil)))
           (incf (point-charpos m) n)))))
   
  -(defun shift-sticky-objects-newline (marker)
  -  (let ((linum (point-linum marker))
  -        (charpos (point-charpos marker))
  -        (buffer (point-buffer marker))
  -        (line (get-line/point marker)))
  +(defun shift-sticky-objects-newline (point)
  +  (let ((linum (point-linum point))
  +        (charpos (point-charpos point))
  +        (buffer (point-buffer point))
  +        (line (get-line/point point)))
       (line-property-insert-newline line (line-next line) charpos)
       (dolist (m (buffer-points buffer))
         (cond ((and (= (point-linum m) linum)
  
positive.code:             ((< linum (point-linum m))
               (incf (point-linum m)))))))
  
  (defun shift-sticky-objects-subtract (marker n)
    (let ((line (get-line/point marker))
          (linum (point-linum marker))
          (charpos (point-charpos marker))
          (buffer (point-buffer marker)))
      (line-property-delete-pos line charpos n)
      (dolist (m (buffer-points buffer))
        (when (and (= linum (point-linum m))
  
negative.code:        (prog1 (progn ,@body)
           (buffer-modify ,buffer)))))
  
  (defun shift-sticky-objects (point n)
    (let ((buffer (point-buffer point))
          (line (get-line/point point))
          (linum (point-linum point))
          (charpos (point-charpos point)))
      (line-property-insert-pos line charpos n)
      (dolist (m (buffer-points buffer))
        (when (and (= linum (point-linum m))
  