summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2022-01-21 11:20:56 +0100
committerLars Ingebrigtsen <larsi@gnus.org>2022-01-21 11:20:56 +0100
commit1e54833e8a4c3d17690a3ca40cd1fab8be674aa5 (patch)
tree32a8712e45fa3628a670733a5dd78d662850baac /lisp/emacs-lisp
parent587edc46dfc0aa035c49a5c97ff36472e2c4dbfd (diff)
downloademacs-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.el14
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