From 956858a39562c2272807704ef128258804ce45a0 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sat, 6 Oct 2012 21:51:51 +0200 Subject: [PATCH] org-export: Fix menu leak when reloading Org * contrib/lisp/org-export.el (org-export-define-backend, org-export-define-derived-backend): Make sure a given entry won't be added to menu more than once. --- contrib/lisp/org-export.el | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/contrib/lisp/org-export.el b/contrib/lisp/org-export.el index b1b5f9a8d..faea885b7 100644 --- a/contrib/lisp/org-export.el +++ b/contrib/lisp/org-export.el @@ -832,9 +832,8 @@ See `org-export-filters-alist' for more information.")) ',export-block)) ;; Add an entry for back-end in `org-export-dispatch'. ,(when menu-entry - (let ((menu (assq (car menu-entry) org-export-dispatch-menu-entries))) - (unless menu - `(push ',menu-entry org-export-dispatch-menu-entries)))) + `(unless (assq (car ',menu-entry) org-export-dispatch-menu-entries) + (add-to-list 'org-export-dispatch-menu-entries ',menu-entry))) ;; Splice in the body, if any. ,@body))) @@ -965,9 +964,8 @@ structure of the values." "Alist between element or object types and translators.") ;; Add an entry for back-end in `org-export-dispatch'. ,(when menu-entry - (let ((menu (assq (car menu-entry) org-export-dispatch-menu-entries))) - (unless menu - `(push ',menu-entry org-export-dispatch-menu-entries)))) + `(unless (assq (car ',menu-entry) org-export-dispatch-menu-entries) + (add-to-list 'org-export-dispatch-menu-entries ',menu-entry))) ,(when sub-menu-entry (let ((menu (nth 2 (assq (car sub-menu-entry) org-export-dispatch-menu-entries))))