From 1aa21dc70d92b4208ff2998e429febacf615bd88 Mon Sep 17 00:00:00 2001 From: Bastien Guerry Date: Sat, 22 Sep 2012 09:20:14 +0200 Subject: [PATCH] contrib/lisp/org-wikinodes.el: Fixes * org-wikinodes.el (org-wikinodes-follow-link): Specify the directory when trying to find a target. (org-wikinodes-which-file): Rewrite. --- contrib/lisp/org-wikinodes.el | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/contrib/lisp/org-wikinodes.el b/contrib/lisp/org-wikinodes.el index 12091b69c..bdc3e340f 100644 --- a/contrib/lisp/org-wikinodes.el +++ b/contrib/lisp/org-wikinodes.el @@ -121,7 +121,8 @@ setting of `org-wikinodes-create-targets'." (setq pos (or (org-find-exact-headline-in-buffer target (current-buffer)) (and (eq org-wikinodes-scope 'directory) - (setq file (org-wikinodes-which-file target)) + (setq file (org-wikinodes-which-file + target (file-name-directory (buffer-file-name)))) (org-find-exact-headline-in-buffer target (or (get-file-buffer file) (find-file-noselect file)))))) @@ -238,12 +239,14 @@ setting of `org-wikinodes-create-targets'." (defun org-wikinodes-which-file (target &optional directory) "Return the file for wiki headline TARGET DIRECTORY. If there is no such wiki target, return nil." - (setq directory (expand-file-name (or directory default-directory))) - (unless (assoc directory org-wikinodes-directory-targets-cache) - (push (cons directory (org-wikinodes-get-links-for-directory directory)) - org-wikinodes-directory-targets-cache)) - (cdr (assoc target (cdr (assoc directory - org-wikinodes-directory-targets-cache))))) + (let* ((directory (expand-file-name (or directory default-directory))) + (founddir (assoc directory org-wikinodes-directory-targets-cache)) + (foundfile (cdr (assoc target (cdr founddir))))) + (or foundfile + (and (push (cons directory (org-wikinodes-get-links-for-directory directory)) + org-wikinodes-directory-targets-cache) + (cdr (assoc target (cdr (assoc directory + org-wikinodes-directory-targets-cache)))))))) ;;; Exporting Wiki links