1
0
mirror of https://git.savannah.gnu.org/git/emacs/org-mode.git synced 2024-12-13 09:32:19 +00:00

org-macs.el: Fix template expansion

* lisp/org-macs.el (org-fill-template): Fix a bug in template
expansion: if one key is a substring of another key (like "noweb" and
"noweb-ref", or "tangle" and "tangle-mode"), the second key wouldn't
get expanded properly.  The problem was that keys were processed in
order of increasing length; they are now sorted in order of descending
length.

TINYCHANGE
This commit is contained in:
Andrew Arensburger 2022-04-06 17:02:19 -04:00 committed by Ihor Radchenko
parent 4a30e8cc0c
commit 82a09ba0ae
No known key found for this signature in database
GPG Key ID: 6470762A7DA11D8B

View File

@ -1139,7 +1139,10 @@ as-is if removal failed."
"Find each %key of ALIST in TEMPLATE and replace it."
(let ((case-fold-search nil))
(dolist (entry (sort (copy-sequence alist)
(lambda (a b) (< (length (car a)) (length (car b))))))
; Sort from longest key to shortest, so that
; "noweb-ref" and "tangle-mode" get processed
; before "noweb" and "tangle", respectively.
(lambda (a b) (< (length (car b)) (length (car a))))))
(setq template
(replace-regexp-in-string
(concat "%" (regexp-quote (car entry)))