# HG changeset patch # User Chong Yidong # Date 1186503020 0 # Node ID c668fe19825bf99c8d2e5e22ea492e2a2d33132a # Parent 968a6f97228367f80a81b2494458700e4aa987c9 (longlines-decoded): New variable. (longlines-mode): Avoid encoding or decoding the buffer twice. diff -r 968a6f972283 -r c668fe19825b lisp/longlines.el --- a/lisp/longlines.el Tue Aug 07 16:10:11 2007 +0000 +++ b/lisp/longlines.el Tue Aug 07 16:10:20 2007 +0000 @@ -79,11 +79,13 @@ (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 @@ ;; 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 @@ (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)