From 9c3d22f86449d284efd5126254e4c76e43c09f48 Mon Sep 17 00:00:00 2001 From: Christopher Schmidt Date: Sat, 11 Oct 2014 21:40:45 +0200 Subject: [PATCH] org.el (orgstruct-make-binding): Do not use loop in interpreted code. * lisp/org.el (orgstruct-make-binding): Do not use loop in interpreted code. --- lisp/org.el | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/lisp/org.el b/lisp/org.el index c42102cac..2b5603ce5 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -9099,14 +9099,16 @@ if `orgstruct-heading-prefix-regexp' is not empty." (if fallback (let* ((orgstruct-mode) (binding - (loop with key = ,key - for rep in - '(nil - ("<\\([^>]*\\)tab>" . "\\1TAB") - ("<\\([^>]*\\)return>" . "\\1RET") - ("<\\([^>]*\\)escape>" . "\\1ESC") - ("<\\([^>]*\\)delete>" . "\\1DEL")) - do + (let ((key ,key)) + (catch 'exit + (dolist + (rep + '(nil + ("<\\([^>]*\\)tab>" . "\\1TAB") + ("<\\([^>]*\\)return>" . "\\1RET") + ("<\\([^>]*\\)escape>" . "\\1ESC") + ("<\\([^>]*\\)delete>" . "\\1DEL")) + nil) (when rep (setq key (read-kbd-macro (let ((case-fold-search)) @@ -9114,7 +9116,8 @@ if `orgstruct-heading-prefix-regexp' is not empty." (car rep) (cdr rep) (key-description key)))))) - thereis (key-binding key)))) + (when (key-binding key) + (throw 'exit (key-binding key)))))))) (if (keymapp binding) (org-set-transient-map binding) (let ((func (or binding