diff options
author | Chong Yidong <cyd@stupidchicken.com> | 2008-08-12 19:39:50 +0000 |
---|---|---|
committer | Chong Yidong <cyd@stupidchicken.com> | 2008-08-12 19:39:50 +0000 |
commit | 748e001a2604ba7c0211620d894423cfa212f251 (patch) | |
tree | 466e5f93c74cd65c5b0eafbb840e9c736a894db6 /lisp/simple.el | |
parent | a0f3a5f4c000bbb093b17d9299a325fd64a53406 (diff) | |
download | emacs-748e001a2604ba7c0211620d894423cfa212f251.tar.gz |
(visual-line--saved-state): New var.
(visual-line-mode): Save local values of variables, and restore
them when visual-line-mode is disabled.
Diffstat (limited to 'lisp/simple.el')
-rw-r--r-- | lisp/simple.el | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/lisp/simple.el b/lisp/simple.el index db7979bdd83..c32a415dc09 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -4508,6 +4508,8 @@ other purposes." (copy-tree fringe-indicator-alist))))))) (set-default symbol value))) +(defvar visual-line--saved-state nil) + (define-minor-mode visual-line-mode "Redefine simple editing commands to act on visual lines, not logical lines. This also turns on `word-wrap' in the buffer." @@ -4516,6 +4518,15 @@ This also turns on `word-wrap' in the buffer." :lighter " wrap" (if visual-line-mode (progn + (set (make-local-variable 'visual-line--saved-state) nil) + ;; Save the local values of some variables, to be restored if + ;; visual-line-mode is turned off. + (dolist (var '(line-move-visual truncate-lines + truncate-partial-width-windows + word-wrap fringe-indicator-alist)) + (if (local-variable-p var) + (push (cons var (symbol-value var)) + visual-line--saved-state))) (set (make-local-variable 'line-move-visual) t) (set (make-local-variable 'truncate-partial-width-windows) nil) (setq truncate-lines nil @@ -4527,7 +4538,10 @@ This also turns on `word-wrap' in the buffer." (kill-local-variable 'word-wrap) (kill-local-variable 'truncate-lines) (kill-local-variable 'truncate-partial-width-windows) - (kill-local-variable 'fringe-indicator-alist))) + (kill-local-variable 'fringe-indicator-alist) + (dolist (saved visual-line--saved-state) + (set (make-local-variable (car saved)) (cdr saved))) + (kill-local-variable 'visual-line--saved-state))) (defun turn-on-visual-line-mode () (visual-line-mode 1)) |