[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 2017bf0: Fix restoring data in visual-line-mode
From: |
Lars Ingebrigtsen |
Subject: |
master 2017bf0: Fix restoring data in visual-line-mode |
Date: |
Thu, 1 Oct 2020 12:49:55 -0400 (EDT) |
branch: master
commit 2017bf0dd1ddd9b18cb95c42e3ef4098bff69fa9
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>
Fix restoring data in visual-line-mode
* lisp/simple.el (visual-line-mode): Only save values once, even
if the mode is switched on twice (bug#43730). This makes both
previously set local values for variables like truncate-lines, as
well as default values for truncate-lines restorable.
* lisp/emulation/cua-base.el (cua-mode): Ditto.
---
lisp/emulation/cua-base.el | 7 ++++---
lisp/simple.el | 22 ++++++++++++----------
2 files changed, 16 insertions(+), 13 deletions(-)
diff --git a/lisp/emulation/cua-base.el b/lisp/emulation/cua-base.el
index c4dcb76..926305e 100644
--- a/lisp/emulation/cua-base.el
+++ b/lisp/emulation/cua-base.el
@@ -1379,9 +1379,10 @@ the prefix fallback behavior."
(cond
(cua-mode
- (setq cua--saved-state
- (list
- (and (boundp 'delete-selection-mode) delete-selection-mode)))
+ (unless cua--saved-state
+ (setq cua--saved-state
+ (list
+ (and (boundp 'delete-selection-mode) delete-selection-mode))))
(if cua-delete-selection
(delete-selection-mode 1)
(if (and (boundp 'delete-selection-mode) delete-selection-mode)
diff --git a/lisp/simple.el b/lisp/simple.el
index fef22c2..05a74d9 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -7275,15 +7275,16 @@ Mode' for details."
: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)))
+ (unless visual-line--saved-state
+ (setq-local visual-line--saved-state (list 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
@@ -7297,7 +7298,8 @@ Mode' for details."
(kill-local-variable 'truncate-partial-width-windows)
(kill-local-variable 'fringe-indicator-alist)
(dolist (saved visual-line--saved-state)
- (set (make-local-variable (car saved)) (cdr saved)))
+ (when (car saved)
+ (set (make-local-variable (car saved)) (cdr saved))))
(kill-local-variable 'visual-line--saved-state)))
(defun turn-on-visual-line-mode ()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 2017bf0: Fix restoring data in visual-line-mode,
Lars Ingebrigtsen <=