emacs-devel
[Top][All Lists]
Advanced

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

Re: address@hidden: highlight-changes-rotate-faces sets buffer modified


From: martin rudalics
Subject: Re: address@hidden: highlight-changes-rotate-faces sets buffer modified flag]
Date: Wed, 09 May 2007 00:00:27 +0200
User-agent: Mozilla Thunderbird 1.0 (Windows/20041206)

I don't know how to use this feature, but looking at the code suggests
that this bug still exists.  Can anyone verify that?

It should be pretty easy to prevent this code from changing the
modified flag (and perhaps bind buffer-undo-list to t).

The attached patch works for me in trivial test cases.
*** hilit-chg.el        Tue Jan 23 06:40:02 2007
--- hilit-chg.el        Tue May  8 23:38:32 2007
***************
*** 790,806 ****
    (interactive)
    ;; If not in active mode do nothing but don't complain because this
    ;; may be bound to a hook.
!   (if (eq highlight-changes-mode 'active)
!       (let ((after-change-functions nil))
!       ;; ensure hilit-chg-list is made and up to date
!       (hilit-chg-make-list)
!       ;; remove our existing overlays
!       (hilit-chg-hide-changes)
!       ;; for each change text property, increment it
!       (hilit-chg-map-changes 'hilit-chg-bump-change)
!       ;; and display them all if active
!       (if (eq highlight-changes-mode 'active)
!           (hilit-chg-display-changes))))
    ;; This always returns nil so it is safe to use in write-file-functions
    nil)

--- 790,811 ----
    (interactive)
    ;; If not in active mode do nothing but don't complain because this
    ;; may be bound to a hook.
!   (when (eq highlight-changes-mode 'active)
!     (let ((modified (buffer-modified-p))
!         (buffer-undo-list t)
!         (after-change-functions nil))
!       (unwind-protect
!         (progn
!           ;; ensure hilit-chg-list is made and up to date
!           (hilit-chg-make-list)
!           ;; remove our existing overlays
!           (hilit-chg-hide-changes)
!           ;; for each change text property, increment it
!           (hilit-chg-map-changes 'hilit-chg-bump-change)
!           ;; and display them all if active
!           (if (eq highlight-changes-mode 'active)
!               (hilit-chg-display-changes)))
!       (unless modified (set-buffer-modified-p nil)))))
    ;; This always returns nil so it is safe to use in write-file-functions
    nil)


reply via email to

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