anchor.diff:          :do (when (<= start pos (1- end))
                 (return value))))
   
  +(defun line-search-property-range (line key pos-start pos-end)
  +  (when (null pos-end)
  +    (setq pos-end most-positive-fixnum))
  +  (loop :for (start end value) :in (getf (line-plist line) key)
  +        :do (when (or (<= pos-start start pos-end)
  +                      (<= start pos-start (1- end)))
  +              (return value))))
  +
   (defun line-property-insert-pos (line pos offset)
     (loop :for values :in (cdr (line-plist line)) :by #'cddr
           :do (dolist (v values)
  
positive.code:                  (concatenate 'string
                                (subseq (line-str line) 0 pos)
                                (line-str (line-next line))))
             (when (eq (line-next line)
                       (buffer-tail-line buffer))
               (setf (buffer-tail-line buffer) line))
  
negative.code: (defun buffer-insert-line (buffer linum pos str)
    (with-buffer-modify buffer
      (let ((line (buffer-get-line buffer linum)))
        (when (line-search-property line 'read-only pos)
          (error 'readonly))
        (setf (line-%scan-cached-p line) nil)
        (line-property-insert-pos line pos (length str))
        (with-push-undo (buffer)
  