summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Guerry <bzg@altern.org>2013-01-16 17:36:29 (GMT)
committer Bastien Guerry <bzg@altern.org>2013-01-16 17:36:29 (GMT)
commitbd779fad624af01dbcb35b381dee10452dc945b1 (patch)
tree885e01670ea028edc4766a8ec8ebc73b0c846014
parent115bd786954a20cffa3f10d1e0a68d5795fd7685 (diff)
downloadorg-mode-bd779fad624af01dbcb35b381dee10452dc945b1.zip
org-mode-bd779fad624af01dbcb35b381dee10452dc945b1.tar.gz
org-agenda.el (org-agenda-open-link): Fix bug with opening all links
* org-agenda.el (org-agenda-open-link): Fix bug with opening all links. Thanks to Ingo Lohmar for pointing this.
-rw-r--r--lisp/org-agenda.el46
1 files changed, 24 insertions, 22 deletions
diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index ab0c2b1..cefdc0e 100644
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -8013,32 +8013,34 @@ It also looks at the text of the entry itself."
(let* ((marker (or (org-get-at-bol 'org-hd-marker)
(org-get-at-bol 'org-marker)))
(buffer (and marker (marker-buffer marker)))
- (prefix (buffer-substring
- (point-at-bol) (point-at-eol)))
+ (prefix (buffer-substring (point-at-bol) (point-at-eol)))
(lkall (org-offer-links-in-entry buffer marker arg prefix))
- (lk (car lkall))
+ (lk0 (car lkall))
+ (lk (if (stringp lk0) (list lk0) lk0))
(lkend (cdr lkall))
trg)
(cond
- ((and buffer (stringp lk))
- (with-current-buffer buffer
- (setq trg (and (string-match org-bracket-link-regexp lk)
- (match-string 1 lk)))
- (if (or (not trg) (string-match org-any-link-re trg))
- (save-excursion
- (save-restriction
- (widen)
- (goto-char marker)
- (when (search-forward lk nil lkend)
- (goto-char (match-beginning 0))
- (org-open-at-point))))
- ;; This is an internal link, widen the buffer
- (switch-to-buffer-other-window buffer)
- (widen)
- (goto-char marker)
- (when (search-forward lk nil lkend)
- (goto-char (match-beginning 0))
- (org-open-at-point)))))
+ ((and buffer lk)
+ (mapcar (lambda(l)
+ (with-current-buffer buffer
+ (setq trg (and (string-match org-bracket-link-regexp l)
+ (match-string 1 l)))
+ (if (or (not trg) (string-match org-any-link-re trg))
+ (save-excursion
+ (save-restriction
+ (widen)
+ (goto-char marker)
+ (when (search-forward l nil lkend)
+ (goto-char (match-beginning 0))
+ (org-open-at-point))))
+ ;; This is an internal link, widen the buffer
+ (switch-to-buffer-other-window buffer)
+ (widen)
+ (goto-char marker)
+ (when (search-forward l nil lkend)
+ (goto-char (match-beginning 0))
+ (org-open-at-point)))))
+ lk))
((or (org-in-regexp (concat "\\(" org-bracket-link-regexp "\\)"))
(save-excursion
(beginning-of-line 1)