This patch is also in the docview branch at:
http://github.com/jboecker/org-docview

The function org-insert-link checks if it is inserting a "file:" link.
If this is the case, the path is manipulated according to the current
buffer file name and the variable 'org-link-file-path-type'.

I changed the regex to also match "docview:" links, and added a variable
to store the link type which is later re-attached to the path.

I do not know if there is a more elegant way, but this works.

Matthew: docview.el was missing from the Makefile because of my
inexperience with Org development, but I see that Carsten has already
fixed that one :)

---
 lisp/ChangeLog |    5 +++++
 lisp/org.el    |    7 ++++---
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index f385b7c..a716042 100755
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2009-12-04  Jan Böcker  <jan.boec...@jboecker.de>
+
+       * org.el (org-insert-link): respect org-link-file-path-type for
+       docview: links in addition to file: links.
+
 2009-12-03  Carsten Dominik  <carsten.domi...@gmail.com>

        * org-exp.el (org-export-format-source-code-or-example): Avoid
diff --git a/lisp/org.el b/lisp/org.el
index 664bafc..4f699c9 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -7976,8 +7976,9 @@ Use TAB to complete link prefixes, then RET for
type-specific completion support
              (setq link search)))))

     ;; Check if we can/should use a relative path.  If yes, simplify
the link
-    (when (string-match "^file:\\(.*\\)" link)
-      (let* ((path (match-string 1 link))
+    (when (string-match "^\\(file:\\|docview:\\)\\(.*\\)" link)
+      (let* ((type (match-string 1 link))
+            (path (match-string 2 link))
             (origpath path)
             (case-fold-search nil))
        (cond
@@ -7998,7 +7999,7 @@ Use TAB to complete link prefixes, then RET for
type-specific completion support
                (setq path (substring (expand-file-name path)
                                      (match-end 0)))
              (setq path (abbreviate-file-name (expand-file-name path)))))))
-       (setq link (concat "file:" path))
+       (setq link (concat type path))
        (if (equal desc origpath)
            (setq desc path))))

-- 
1.6.5.2



_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

Reply via email to