- (col (current-column)))
- (when (= length 0)
- ;; Apply occur-target property to inserted (e.g. yanked) text.
- (put-text-property beg end 'occur-target m)
- ;; Did we insert a newline? Occur Edit mode can't create new
- ;; Occur entries; just discard everything after the newline.
- (save-excursion
- (and (search-forward "\n" end t)
- (delete-region (1- (point)) end))))
- (let ((line (- (line-number-at-pos)
- (line-number-at-pos (window-start))))
- (readonly (with-current-buffer buf buffer-read-only))
- (win (or (get-buffer-window buf)
- (display-buffer buf t)))
- (text (save-excursion
- (forward-line 0)
- (search-forward ":" nil t)
- (setq col (- col (current-column)))
- (buffer-substring-no-properties (point) (line-end-position)))))
- (with-selected-window win
- (goto-char m)
- (recenter line)
- (if readonly
- (message "Buffer `%s' is read only." buf)
- (delete-region (line-beginning-position) (line-end-position))
- (insert text))
- (move-to-column col))))))
+ col)
+ (when (and (get-text-property line-beg 'occur-prefix)
+ (not (get-text-property end 'occur-prefix)))
+ (when (= length 0)
+ ;; Apply occur-target property to inserted (e.g. yanked) text.
+ (put-text-property beg end 'occur-target m)
+ ;; Did we insert a newline? Occur Edit mode can't create new
+ ;; Occur entries; just discard everything after the newline.
+ (save-excursion
+ (and (search-forward "\n" end t)
+ (delete-region (1- (point)) end))))
+ (let* ((line (- (line-number-at-pos)
+ (line-number-at-pos (window-start))))
+ (readonly (with-current-buffer buf buffer-read-only))
+ (win (or (get-buffer-window buf)
+ (display-buffer buf t)))
+ (line-end (line-end-position))
+ (text (save-excursion
+ (goto-char (next-single-property-change
+ line-beg 'occur-prefix nil
+ line-end))
+ (setq col (- (point) line-beg))
+ (buffer-substring-no-properties (point) line-end))))
+ (with-selected-window win
+ (goto-char m)
+ (recenter line)
+ (if readonly
+ (message "Buffer `%s' is read only." buf)
+ (delete-region (line-beginning-position) (line-end-position))
+ (insert text))
+ (move-to-column col)))))))