diff options
author | Eric Schulte <schulte.eric@gmail.com> | 2011-07-01 12:09:34 -0700 |
---|---|---|
committer | Eric Schulte <schulte.eric@gmail.com> | 2011-07-01 12:09:34 -0700 |
commit | 0b6eb6de3caba434cd37566b0a6bdc91fc1c15bc (patch) | |
tree | e74f54e8d5fa2478e984d6c83a297bab77c1b4e1 | |
parent | 549a5212566e300023e038ec945cb9e8efe37e19 (diff) | |
download | org-mode-0b6eb6de3caba434cd37566b0a6bdc91fc1c15bc.tar.gz |
ob-ref: don't let org-id rescan all IDs when trying to resolve a reference
* lisp/ob-ref.el (org-babel-ref-goto-headline-id): Don't let org-id
rescan all IDs when trying to resolve a reference.
-rw-r--r-- | lisp/ob-ref.el | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/lisp/ob-ref.el b/lisp/ob-ref.el index 4c4a8f8..1ff5ee0 100644 --- a/lisp/ob-ref.el +++ b/lisp/ob-ref.el @@ -87,7 +87,15 @@ the variable." (let ((rx (regexp-quote id))) (or (re-search-forward (concat "^[ \t]*:CUSTOM_ID:[ \t]+" rx "[ \t]*$") nil t) - (condition-case nil (progn (org-id-goto id) t) (error nil))))) + (let* ((file (org-id-find-id-file id)) + (m (when file (org-id-find-id-in-file id file 'marker)))) + (when (and file m) + (message "file:%S" file) + (switch-to-buffer (marker-buffer m)) + (goto-char m) + (move-marker m nil) + (org-show-context) + t))))) (defun org-babel-ref-headline-body () (save-restriction |