emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/emacs-24 r111005: * lisp/hilit-chg.el (hili


From: Stefan Monnier
Subject: [Emacs-diffs] /srv/bzr/emacs/emacs-24 r111005: * lisp/hilit-chg.el (hilit-chg-set-face-on-change): Don't burp in
Date: Fri, 07 Dec 2012 00:00:04 -0500
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 111005
fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=12361
author: Le Wang <address@hidden>
committer: Stefan Monnier <address@hidden>
branch nick: emacs-24
timestamp: Fri 2012-12-07 00:00:04 -0500
message:
  * lisp/hilit-chg.el (hilit-chg-set-face-on-change): Don't burp in
  narrowed buffer.
modified:
  lisp/ChangeLog
  lisp/hilit-chg.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2012-12-07 04:31:24 +0000
+++ b/lisp/ChangeLog    2012-12-07 05:00:04 +0000
@@ -1,3 +1,8 @@
+2012-12-07  Le Wang  <address@hidden>
+
+       * hilit-chg.el (hilit-chg-set-face-on-change): Don't burp in
+       narrowed buffer (bug#12361).
+
 2012-12-07  Michael Heerdegen  <address@hidden>
 
        * emacs-lisp/debug.el (debug): Fix hard-coded frame counts (bug#10025).
@@ -3341,7 +3346,7 @@
        * calendar/cal-tex.el (cal-tex-weekly-common):
        Restore leading blank page.
 
-2012-08-22  Le Wang  <address@hidden>  (tiny change)
+2012-08-22  Le Wang  <address@hidden>
 
        * misc.el (forward-to-word, backward-to-word): Activate or extend
        the region under `shift-select-mode'.  (Bug#12231)

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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]