From fc0eafe10aa572dd4755e5f670c7e0e220f1272e Mon Sep 17 00:00:00 2001 From: Martin Rudalics Date: Fri, 30 Nov 2007 09:01:17 +0000 Subject: [PATCH] (longlines-show-hard-newlines): Remove handling of buffer-undo-list and buffer-modified status. (longlines-show-region, longlines-unshow-hard-newlines): Handle buffer-undo-list, buffer-modified status, inhibit-read-only, and inhibit-modification-hooks here to avoid that a buffer appears modified when toggling visibility of hard newlines. --- lisp/ChangeLog | 9 +++++++++ lisp/longlines.el | 24 +++++++++++++++--------- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 90c6b988e04..b0de7fabde2 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,12 @@ +2007-11-30 Martin Rudalics + + * longlines.el (longlines-show-hard-newlines): Remove handling of + buffer-undo-list and buffer-modified status. + (longlines-show-region, longlines-unshow-hard-newlines): Handle + buffer-undo-list, buffer-modified status, inhibit-read-only, and + inhibit-modification-hooks here to avoid that a buffer appears + modified when toggling visibility of hard newlines. + 2007-11-30 Glenn Morris * nxml/rng-maint.el (rng-do-some-validation): Fix declaration. diff --git a/lisp/longlines.el b/lisp/longlines.el index f043a48c737..57b5742751f 100644 --- a/lisp/longlines.el +++ b/lisp/longlines.el @@ -207,33 +207,39 @@ major mode changes." "Make hard newlines visible by adding a face. With optional argument ARG, make the hard newlines invisible again." (interactive "P") - (let ((buffer-undo-list t) - (mod (buffer-modified-p))) (if arg (longlines-unshow-hard-newlines) (setq longlines-showing t) - (longlines-show-region (point-min) (point-max))) - (set-buffer-modified-p mod))) + (longlines-show-region (point-min) (point-max)))) (defun longlines-show-region (beg end) "Make hard newlines between BEG and END visible." (let* ((pmin (min beg end)) (pmax (max beg end)) (pos (text-property-not-all pmin pmax 'hard nil)) - (inhibit-read-only t)) + (mod (buffer-modified-p)) + (buffer-undo-list t) + (inhibit-read-only t) + (inhibit-modification-hooks t)) (while pos (put-text-property pos (1+ pos) 'display - (copy-sequence longlines-show-effect)) - (setq pos (text-property-not-all (1+ pos) pmax 'hard nil))))) + (copy-sequence longlines-show-effect)) + (setq pos (text-property-not-all (1+ pos) pmax 'hard nil))) + (restore-buffer-modified-p mod))) (defun longlines-unshow-hard-newlines () "Make hard newlines invisible again." (interactive) (setq longlines-showing nil) - (let ((pos (text-property-not-all (point-min) (point-max) 'hard nil))) + (let ((pos (text-property-not-all (point-min) (point-max) 'hard nil)) + (mod (buffer-modified-p)) + (buffer-undo-list t) + (inhibit-read-only t) + (inhibit-modification-hooks t)) (while pos (remove-text-properties pos (1+ pos) '(display)) - (setq pos (text-property-not-all (1+ pos) (point-max) 'hard nil))))) + (setq pos (text-property-not-all (1+ pos) (point-max) 'hard nil))) + (restore-buffer-modified-p mod))) ;; Wrapping the paragraphs. -- 2.39.2