summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2019-03-22 18:32:51 +0100
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2019-03-22 18:32:51 +0100
commit6c88d8e406ba878c27ee07b017c2c6b201ae1276 (patch)
tree2f39ef5d005d508ac3a04518fc26740a56fef8bc
parenta39ee9887360a32494ea6405fa760ad3baf493b6 (diff)
downloadorg-mode-6c88d8e406ba878c27ee07b017c2c6b201ae1276.tar.gz
Fix multiple calls to `org-dynamic-block-alist'.
* lisp/org.el (org-dynamic-block-define): Update entry instead of piling up entries of the same type.
-rw-r--r--lisp/org.el8
1 files changed, 6 insertions, 2 deletions
diff --git a/lisp/org.el b/lisp/org.el
index d8edaff..7c18090 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -9593,8 +9593,12 @@ TYPE is the dynamic block type, as a string."
(mapcar #'car org-dynamic-block-alist))
(defun org-dynamic-block-define (type func)
- "Define dynamic block TYPE with FUNC."
- (push (cons type func) org-dynamic-block-alist))
+ "Define dynamic block TYPE with FUNC.
+TYPE is a string. FUNC is the function creating the dynamic
+block of such type."
+ (pcase (assoc type org-dynamic-block-alist)
+ (`nil (push (cons type func) org-dynamic-block-alist))
+ (`(,def . ,_) (setcdr def func))))
(defun org-dynamic-block-insert-dblock (type)
"Insert a dynamic block of type TYPE.