Browse Source

org-macro: Fix infloop when re-defining built-in macros

* lisp/org-macro.el (org-macro-initialize-templates): User-defined
  macros have higher precedence than built-in macros.

Reported-by: Eric S Fraga <esflists@gmail.com>
<http://lists.gnu.org/r/emacs-orgmode/2018-03/msg00413.html>
Nicolas Goaziou 7 năm trước cách đây
mục cha
commit
143a87e45c
1 tập tin đã thay đổi với 2 bổ sung2 xóa
  1. 2 2
      lisp/org-macro.el

+ 2 - 2
lisp/org-macro.el

@@ -130,7 +130,7 @@ Templates are stored in buffer-local variable
 function installs the following ones: \"property\",
 \"time\". and, if the buffer is associated to a file,
 \"input-file\" and \"modification-time\"."
-  (let* ((templates (org-macro--collect-macros))
+  (let* ((templates nil)
 	 (update-templates
 	  (lambda (cell)
 	    (let ((old-template (assoc (car cell) templates)))
@@ -164,7 +164,7 @@ function installs the following ones: \"property\",
     (org-macro--counter-initialize)
     (funcall update-templates
 	     (cons "n" "(eval (org-macro--counter-increment \"$1\" \"$2\"))"))
-    (setq org-macro-templates templates)))
+    (setq org-macro-templates (nconc (org-macro--collect-macros) templates))))
 
 (defun org-macro-expand (macro templates)
   "Return expanded MACRO, as a string.