1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-25 10:47:00 +00:00

* lisp/hilit-chg.el (hilit-chg-set-face-on-change): Don't burp in

narrowed buffer.

Fixes: debbugs:12361
This commit is contained in:
Le Wang 2012-12-07 00:00:04 -05:00 committed by Stefan Monnier
parent 610251116c
commit 3a21537c13
2 changed files with 39 additions and 32 deletions

View File

@ -1,3 +1,8 @@
2012-12-07 Le Wang <l26wang@gmail.com>
* hilit-chg.el (hilit-chg-set-face-on-change): Don't burp in
narrowed buffer (bug#12361).
2012-12-07 Michael Heerdegen <michael_heerdegen@web.de> 2012-12-07 Michael Heerdegen <michael_heerdegen@web.de>
* emacs-lisp/debug.el (debug): Fix hard-coded frame counts (bug#10025). * emacs-lisp/debug.el (debug): Fix hard-coded frame counts (bug#10025).
@ -3341,7 +3346,7 @@
* calendar/cal-tex.el (cal-tex-weekly-common): * calendar/cal-tex.el (cal-tex-weekly-common):
Restore leading blank page. Restore leading blank page.
2012-08-22 Le Wang <l26wang@gmail.com> (tiny change) 2012-08-22 Le Wang <l26wang@gmail.com>
* misc.el (forward-to-word, backward-to-word): Activate or extend * misc.el (forward-to-word, backward-to-word): Activate or extend
the region under `shift-select-mode'. (Bug#12231) the region under `shift-select-mode'. (Bug#12231)

View File

@ -569,37 +569,39 @@ This allows you to manually remove highlighting from uninteresting changes."
highlight-changes-visible-mode) highlight-changes-visible-mode)
(hilit-chg-fixup beg end)) (hilit-chg-fixup beg end))
(highlight-save-buffer-state (highlight-save-buffer-state
(if (and (= beg end) (> leng-before 0)) (if (and (= beg end) (> leng-before 0))
;; deletion ;; deletion
(progn (progn
;; The eolp and bolp tests are a kludge! But they prevent ;; The eolp and bolp tests are a kludge! But they prevent
;; rather nasty looking displays when deleting text at the end ;; rather nasty looking displays when deleting text at the end
;; of line, such as normal corrections as one is typing and ;; of line, such as normal corrections as one is typing and
;; immediately makes a correction, and when deleting first ;; immediately makes a correction, and when deleting first
;; character of a line. ;; character of a line.
;; (if (= leng-before 1) ;; (if (= leng-before 1)
;; (if (eolp) ;; (if (eolp)
;; (setq beg-decr 0 end-incr 0) ;; (setq beg-decr 0 end-incr 0)
;; (if (bolp) ;; (if (bolp)
;; (setq beg-decr 0)))) ;; (setq beg-decr 0))))
;; (setq beg (max (- beg beg-decr) (point-min))) ;; (setq beg (max (- beg beg-decr) (point-min)))
(setq end (min (+ end end-incr) (point-max))) (setq end (min (+ end end-incr) (point-max)))
(setq type 'hilit-chg-delete)) (setq type 'hilit-chg-delete))
;; Not a deletion. ;; Not a deletion.
;; Most of the time the following is not necessary, but ;; Most of the time the following is not necessary, but
;; if the current text was marked as a deletion then ;; if the current text was marked as a deletion then
;; the old overlay is still in effect, so if we add some ;; the old overlay is still in effect. So if the user adds some
;; text then remove the deletion marking, but set it to ;; text where she earlier deleted text, we have to remove the
;; changed otherwise its highlighting disappears. ;; deletion marking, and replace it explicitly with a `changed'
(if (eq (get-text-property end 'hilit-chg) 'hilit-chg-delete) ;; marking, otherwise its highlighting would disappear.
(progn (if (eq (get-text-property end 'hilit-chg) 'hilit-chg-delete)
(put-text-property end (+ end 1) 'hilit-chg 'hilit-chg) (save-restriction
(if highlight-changes-visible-mode (widen)
(hilit-chg-fixup beg (+ end 1)))))) (put-text-property end (+ end 1) 'hilit-chg 'hilit-chg)
(unless no-property-change (if highlight-changes-visible-mode
(put-text-property beg end 'hilit-chg type)) (hilit-chg-fixup beg (+ end 1))))))
(if (or highlight-changes-visible-mode no-property-change) (unless no-property-change
(hilit-chg-make-ov type beg end))))))) (put-text-property beg end 'hilit-chg type))
(if (or highlight-changes-visible-mode no-property-change)
(hilit-chg-make-ov type beg end)))))))
(defun hilit-chg-update () (defun hilit-chg-update ()
"Update a buffer's highlight changes when visibility changed." "Update a buffer's highlight changes when visibility changed."