From 6c88d8e406ba878c27ee07b017c2c6b201ae1276 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 22 Mar 2019 18:32:51 +0100 Subject: [PATCH] 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. --- lisp/org.el | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lisp/org.el b/lisp/org.el index d8edafffc..7c180901f 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.