diff options
author | Lars Ingebrigtsen <larsi@gnus.org> | 2022-01-21 11:20:56 +0100 |
---|---|---|
committer | Lars Ingebrigtsen <larsi@gnus.org> | 2022-01-21 11:20:56 +0100 |
commit | 1e54833e8a4c3d17690a3ca40cd1fab8be674aa5 (patch) | |
tree | 32a8712e45fa3628a670733a5dd78d662850baac /lisp/emacs-lisp | |
parent | 587edc46dfc0aa035c49a5c97ff36472e2c4dbfd (diff) | |
download | emacs-1e54833e8a4c3d17690a3ca40cd1fab8be674aa5.tar.gz emacs-1e54833e8a4c3d17690a3ca40cd1fab8be674aa5.tar.bz2 emacs-1e54833e8a4c3d17690a3ca40cd1fab8be674aa5.zip |
Update multisession variables when editing the values
* lisp/emacs-lisp/multisession.el (multisession-edit-value):
Update multisession variables when editing the values (bug#53361).
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/multisession.el | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/lisp/emacs-lisp/multisession.el b/lisp/emacs-lisp/multisession.el index e6a2424c518..4a293796a83 100644 --- a/lisp/emacs-lisp/multisession.el +++ b/lisp/emacs-lisp/multisession.el @@ -434,10 +434,16 @@ storage method to list." multisession-edit-mode) (unless id (error "No value on the current line")) - (let* ((object (make-multisession - :package (car id) - :key (cdr id) - :storage multisession-storage)) + (let* ((object (or + ;; If the multisession variable already exists, use + ;; it (so that we update it). + (and (boundp (intern-soft (cdr id))) + (symbol-value (intern (cdr id)))) + ;; Create a new object. + (make-multisession + :package (car id) + :key (cdr id) + :storage multisession-storage))) (value (multisession-value object))) (setf (multisession-value object) (car (read-from-string |