From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?SmFuIELDtmNrZXI=?= Subject: [PATCH] respect org-link-file-path-type when inserting docview: links Date: Fri, 04 Dec 2009 12:22:56 +0100 Message-ID: <4B18F110.1020708@jboecker.de> References: <87bpig5bvo.fsf@fastmail.fm> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NGWGe-0003pD-O0 for emacs-orgmode@gnu.org; Fri, 04 Dec 2009 06:24:08 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NGWGa-0003kR-Gv for emacs-orgmode@gnu.org; Fri, 04 Dec 2009 06:24:08 -0500 Received: from [199.232.76.173] (port=40586 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NGWGa-0003jq-3K for emacs-orgmode@gnu.org; Fri, 04 Dec 2009 06:24:04 -0500 Received: from mail7.worldserver.net ([217.13.200.27]:37843) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1NGWGX-0003qx-VY for emacs-orgmode@gnu.org; Fri, 04 Dec 2009 06:24:03 -0500 In-Reply-To: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Matthew Lundin Cc: Org Mode 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 + + * org.el (org-insert-link): respect org-link-file-path-type for + docview: links in addition to file: links. + 2009-12-03 Carsten Dominik * 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