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.
This commit is contained in:
parent
af72f6d510
commit
2017bf0dd1
2 changed files with 16 additions and 13 deletions
|
@ -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)
|
||||
|
|
|
@ -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 ()
|
||||
|
|
Loading…
Add table
Reference in a new issue