;;; longlines.el --- automatically wrap long lines
-;; Copyright (C) 2000, 2001, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
;; Authors: Kai Grossjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
;; Alex Schroeder <alex@gnu.org>
(let ((buffer-undo-list t)
(inhibit-read-only t)
(after-change-functions nil)
- (mod (buffer-modified-p)))
+ (mod (buffer-modified-p))
+ buffer-file-name buffer-file-truename)
;; Turning off undo is OK since (spaces + newlines) is
;; conserved, except for a corner case in
;; longlines-wrap-lines that we'll never encounter from here
(longlines-unshow-hard-newlines))
(let ((buffer-undo-list t)
(after-change-functions nil)
- (inhibit-read-only t))
+ (inhibit-read-only t)
+ buffer-file-name buffer-file-truename)
(if longlines-decoded
(save-restriction
(widen)
"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)
+ buffer-file-name buffer-file-truename)
(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)
+ buffer-file-name buffer-file-truename)
(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.