summaryrefslogtreecommitdiff
path: root/lisp/longlines.el
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2007-08-07 16:10:20 +0000
committerChong Yidong <cyd@stupidchicken.com>2007-08-07 16:10:20 +0000
commit8a7e2b234935c9c7eabab2538e34ac1f56d15766 (patch)
treef96c840dc3457dd2c185d25a5354c3d4ac28822a /lisp/longlines.el
parente9498e0ff52b0be3200b3d22dd0f70b95879c98b (diff)
downloademacs-8a7e2b234935c9c7eabab2538e34ac1f56d15766.tar.gz
(longlines-decoded): New variable.
(longlines-mode): Avoid encoding or decoding the buffer twice.
Diffstat (limited to 'lisp/longlines.el')
-rw-r--r--lisp/longlines.el14
1 files changed, 10 insertions, 4 deletions
diff --git a/lisp/longlines.el b/lisp/longlines.el
index fa73ef7057d..07977910a22 100644
--- a/lisp/longlines.el
+++ b/lisp/longlines.el
@@ -79,11 +79,13 @@ This is used when `longlines-show-hard-newlines' is on."
(defvar longlines-wrap-end nil)
(defvar longlines-wrap-point nil)
(defvar longlines-showing nil)
+(defvar longlines-decoded nil)
(make-variable-buffer-local 'longlines-wrap-beg)
(make-variable-buffer-local 'longlines-wrap-end)
(make-variable-buffer-local 'longlines-wrap-point)
(make-variable-buffer-local 'longlines-showing)
+(make-variable-buffer-local 'longlines-decoded)
;; Mode
@@ -128,7 +130,9 @@ are indicated with a symbol."
;; longlines-wrap-lines that we'll never encounter from here
(save-restriction
(widen)
- (longlines-decode-buffer)
+ (unless longlines-decoded
+ (longlines-decode-buffer)
+ (setq longlines-decoded t))
(longlines-wrap-region (point-min) (point-max)))
(set-buffer-modified-p mod))
(when (and longlines-show-hard-newlines
@@ -161,9 +165,11 @@ are indicated with a symbol."
(let ((buffer-undo-list t)
(after-change-functions nil)
(inhibit-read-only t))
- (save-restriction
- (widen)
- (longlines-encode-region (point-min) (point-max))))
+ (if longlines-decoded
+ (save-restriction
+ (widen)
+ (longlines-encode-region (point-min) (point-max))
+ (setq longlines-decoded nil))))
(remove-hook 'change-major-mode-hook 'longlines-mode-off t)
(remove-hook 'after-change-functions 'longlines-after-change-function t)
(remove-hook 'post-command-hook 'longlines-post-command-function t)