Hi,

attached are Patches for contrib except ox-bibtex.el and
org-velocity.el.

Some files are spitting out errors during compile, some of those
probably vanish if you require the stuff they depend on.

I modified Matt's patch to also open eww links with eww (but this could
also be something with `browse-url').

The last patch also updates the replacement for org-add-link-type in
org-compat.el.

Best regards
Robert

On Sun, 07 Aug 2016 20:12:21 -0400
John Kitchin <jkitc...@andrew.cmu.edu> wrote:

> That looks like the correct fix for org-eww.el.
> 
> What is the protocol for fixing the contrib packages? I can take a
> pass at doing it if it is ok.
> 
> 
> 
> Matt Lundin writes:
> 
> > Thanks, John, for improving link functionality in org-mode!
> >
> > I just discovered that this change breaks the contrib files that use
> > org-store-link-functions and org-add-link-type.
> >
> > I'm not familiar enough with the details of org-link-set-parameters
> > to fix all of the contrib files, but I am including a simple patch
> > to update a contrib file that I use regularly: org-eww.el.
> >
> > Thanks,
> > Matt  
> 
> 

>From 5c56aab31caff84241856cb019d496bee2376937 Mon Sep 17 00:00:00 2001
From: Robert Klein <rokl...@roklein.de>
Date: Mon, 8 Aug 2016 03:24:09 +0200
Subject: [PATCH 01/14] Update bookmark link definition

* contrib/lisp/org-bookmark.el ("bookmark"):

Update to use org-link-set-parameters.
---
 contrib/lisp/org-bookmark.el | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/contrib/lisp/org-bookmark.el b/contrib/lisp/org-bookmark.el
index 40c7cd0..f042467 100644
--- a/contrib/lisp/org-bookmark.el
+++ b/contrib/lisp/org-bookmark.el
@@ -47,8 +47,9 @@ Otherwise prompt the user for the right bookmark to use."
   :group 'org-bookmark
   :type 'boolean)
 
-(org-add-link-type "bookmark" 'org-bookmark-open)
-(add-hook 'org-store-link-functions 'org-bookmark-store-link)
+(org-link-set-parameters "bookmark"
+			 :follow #'org-bookmark-open
+			 :store #'org-bookmark-store-link)
 
 (defun org-bookmark-open (bookmark)
   "Visit the bookmark BOOKMARK."
-- 
2.9.2

>From 76518d2668e274b48c5b67ad698cb6c5d1659627 Mon Sep 17 00:00:00 2001
From: Robert Klein <rokl...@roklein.de>
Date: Mon, 8 Aug 2016 03:24:23 +0200
Subject: [PATCH 02/14] Update tel link definition

* contrib/lisp/org-contacts.el ("contacts"):

Update to use org-link-set-parameters.
---
 contrib/lisp/org-contacts.el | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/contrib/lisp/org-contacts.el b/contrib/lisp/org-contacts.el
index 309b9b9..2cadd1d 100644
--- a/contrib/lisp/org-contacts.el
+++ b/contrib/lisp/org-contacts.el
@@ -1107,8 +1107,7 @@ link string and return the pure link target."
 
 ;; Add the link type supported by org-contacts-strip-link
 ;; so everything is in order for its use in Org files
-(org-add-link-type "tel")
-
+(org-link-set-parameters "tel")
 
 (defun org-contacts-split-property (string &optional separators omit-nulls)
   "Custom version of `split-string'.
-- 
2.9.2

>From a1d89751290a6594d559dd3ccf5ac957f31c30e0 Mon Sep 17 00:00:00 2001
From: Robert Klein <rokl...@roklein.de>
Date: Mon, 8 Aug 2016 03:24:23 +0200
Subject: [PATCH 03/14] Update ebib link definition

* contrib/lisp/org-ebib.el ("ebib"):

Update to use org-link-set-parameters.
---
 contrib/lisp/org-ebib.el | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/contrib/lisp/org-ebib.el b/contrib/lisp/org-ebib.el
index 2136a13..4ed5e50 100644
--- a/contrib/lisp/org-ebib.el
+++ b/contrib/lisp/org-ebib.el
@@ -22,9 +22,9 @@
 
 (require 'org)
 
-(org-add-link-type "ebib" 'org-ebib-open)
-
-(add-hook 'org-store-link-functions 'org-ebib-store-link)
+(org-link-set-parameters "ebib"
+			 :follow #'org-ebib-open
+			 :store #'org-ebib-store-link)
 
 (defun org-ebib-open (key)
   "Open Ebib and jump to KEY."
-- 
2.9.2

>From aafd21ba551dd87959eba47e89b402ef7e53826f Mon Sep 17 00:00:00 2001
From: Robert Klein <rokl...@roklein.de>
Date: Mon, 8 Aug 2016 03:24:23 +0200
Subject: [PATCH 04/14] Update elisp-symbol link definition

* contrib/lisp/org-elisp-symbol.el ("elisp-symbol"):

Update to use org-link-set-parameters.
---
 contrib/lisp/org-elisp-symbol.el | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/contrib/lisp/org-elisp-symbol.el b/contrib/lisp/org-elisp-symbol.el
index cdf868b..7c98962 100644
--- a/contrib/lisp/org-elisp-symbol.el
+++ b/contrib/lisp/org-elisp-symbol.el
@@ -78,8 +78,9 @@
 
 (require 'org)
 
-(org-add-link-type "elisp-symbol" 'org-elisp-symbol-open)
-(add-hook 'org-store-link-functions 'org-elisp-symbol-store-link)
+(org-link-set-parameters "elisp-symbol"
+			 :follow #'org-elisp-symbol-open
+			 :store #'org-elisp-symbol-store-link)
 
 (defun org-elisp-symbol-open (path)
   "Visit the emacs-lisp elisp-symbol at PATH."
-- 
2.9.2

>From 6bae91b2ddfe6691c7615c16bb1cab3722f9625a Mon Sep 17 00:00:00 2001
From: Robert Klein <rokl...@roklein.de>
Date: Mon, 8 Aug 2016 03:24:23 +0200
Subject: [PATCH 05/14] Update eww link definition

* contrib/lisp/org-eww.el ("eww"):

Update to use org-link-set-parameters.
---
 contrib/lisp/org-eww.el | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/contrib/lisp/org-eww.el b/contrib/lisp/org-eww.el
index 11ccb68..822aba5 100644
--- a/contrib/lisp/org-eww.el
+++ b/contrib/lisp/org-eww.el
@@ -48,7 +48,8 @@
 
 
 ;; Store Org-link in eww-mode buffer
-(add-hook 'org-store-link-functions 'org-eww-store-link)
+(org-link-set-parameters "eww" :follow #'eww :store #'org-eww-store-link)
+
 (defun org-eww-store-link ()
   "Store a link to the url of a eww buffer."
   (when (eq major-mode 'eww-mode)
-- 
2.9.2

>From f1e36266438122ef7a0555e5334dfbfed86f083f Mon Sep 17 00:00:00 2001
From: Robert Klein <rokl...@roklein.de>
Date: Mon, 8 Aug 2016 03:24:23 +0200
Subject: [PATCH 06/14] Update git, gitbare link definitions

* contrib/lisp/org-git-link.el ("git-link"):

Update to use org-link-set-parameters.
---
 contrib/lisp/org-git-link.el | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/contrib/lisp/org-git-link.el b/contrib/lisp/org-git-link.el
index d3ba848..9d3ff32 100644
--- a/contrib/lisp/org-git-link.el
+++ b/contrib/lisp/org-git-link.el
@@ -69,7 +69,7 @@
 
 ;; org link functions
 ;; bare git link
-(org-add-link-type "gitbare" 'org-gitbare-open)
+(org-link-set-parameters "gitbare" :follow #'org-gitbare-open)
 
 (defun org-gitbare-open (str)
   (let* ((strlist (org-git-split-string str))
@@ -92,7 +92,7 @@
     (setq buffer-read-only t)))
 
 ;; user friendly link
-(org-add-link-type "git" 'org-git-open)
+(org-link-set-parameters "git" :follow #'org-git-open :store #'org-git-store-link)
 
 (defun org-git-open (str)
   (let* ((strlist (org-git-split-string str))
@@ -190,8 +190,6 @@ than two double colons, str2 and/or str3 may be set the empty string."
 	 :type "git"
 	 :link (org-git-create-git-link file line))))))
 
-(add-hook 'org-store-link-functions 'org-git-store-link)
-
 (defun org-git-insert-link-interactively (file searchstring &optional description)
   (interactive "FFile: \nsSearch string: \nsDescription: ")
   (insert (org-make-link-string (concat "git:" file "::" searchstring) description)))
-- 
2.9.2

>From ddb707a985e1caf21e6c7eb9cf798b20d3bffb73 Mon Sep 17 00:00:00 2001
From: Robert Klein <rokl...@roklein.de>
Date: Mon, 8 Aug 2016 03:24:23 +0200
Subject: [PATCH 07/14] Update misc mac link definitions

* contrib/lisp/org-mac-link.el ("mac-link"):

Update to use org-link-set-parameters.
---
 contrib/lisp/org-mac-link.el | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/contrib/lisp/org-mac-link.el b/contrib/lisp/org-mac-link.el
index 076483c..ae2def3 100644
--- a/contrib/lisp/org-mac-link.el
+++ b/contrib/lisp/org-mac-link.el
@@ -442,8 +442,7 @@ The links are of the form <link>::split::<name>."
 
 
 ;; Handle links from together.app
-
-(org-add-link-type "x-together-item" 'org-mac-together-item-open)
+(org-link-set-parameters "x-together-item" :follow #'org-mac-together-item-open)
 
 (defun org-mac-together-item-open (uid)
   "Open UID, which is a reference to an item in Together."
@@ -498,8 +497,7 @@ The links are of the form <link>::split::<name>."
 
 
 ;; Handle links from AddressBook.app
-
-(org-add-link-type "addressbook" 'org-mac-addressbook-item-open)
+(org-link-set-parameters "addressbook" :follow #'org-mac-addressbook-item-open)
 
 (defun org-mac-addressbook-item-open (uid)
   "Open UID, which is a reference to an item in the addressbook."
@@ -532,7 +530,7 @@ The links are of the form <link>::split::<name>."
 ;;
 ;; Original code & idea by Christopher Suckling (org-mac-protocol)
 
-(org-add-link-type "skim" 'org-mac-skim-open)
+(org-link-set-parameters "skim" :follow #'org-mac-skim-open)
 
 (defun org-mac-skim-open (uri)
   "Visit page of pdf in Skim"
@@ -589,7 +587,7 @@ The links are of the form <link>::split::<name>."
 ;;
 ;; The URI format is path_to_pdf_file::page_number
 
-(org-add-link-type "acrobat" 'org-mac-acrobat-open)
+(org-link-set-parameters "acrobat" :follow #'org-mac-acrobat-open)
 
 (defun org-mac-acrobat-open (uri)
   "Visit page of pdf in Acrobat"
@@ -637,7 +635,7 @@ The links are of the form <link>::split::<name>."
 
 ;; Handle links from Microsoft Outlook.app
 
-(org-add-link-type "mac-outlook" 'org-mac-outlook-message-open)
+(org-link-set-parameters "mac-outlook" :follow #'org-mac-outlook-message-open)
 
 (defun org-mac-outlook-message-open (msgid)
   "Open a message in Outlook"
@@ -746,7 +744,7 @@ after heading."
 
 ;; Handle links from Evernote.app
 
-(org-add-link-type "mac-evernote" 'org-mac-evernote-note-open)
+(org-link-set-parameters "mac-evernote" :follow #'org-mac-evernote-note-open)
 
 (defun org-mac-evernote-note-open (noteid)
   "Open a note in Evernote"
@@ -796,7 +794,7 @@ note(s) in Evernote.app and make a link out of it/them."
 
 ;; Handle links from DEVONthink Pro Office.app
 
-(org-add-link-type "x-devonthink-item" 'org-devonthink-item-open)
+(org-link-set-parameters "x-devonthink-item" :follow #'org-devonthink-item-open)
 
 (defun org-devonthink-item-open (uid)
   "Open UID, which is a reference to an item in DEVONthink Pro Office."
@@ -843,7 +841,7 @@ selected items in DEVONthink Pro Office and make link(s) out of it/them."
 
 ;; Handle links from Mail.app
 
-(org-add-link-type "message" 'org-mac-message-open)
+(org-link-set-parameters "message" :follow #'org-mac-message-open)
 
 (defun org-mac-message-open (message-id)
   "Visit the message with MESSAGE-ID.
-- 
2.9.2

>From 3245b6acbde612b65c99369838293fe7c598b5dc Mon Sep 17 00:00:00 2001
From: Robert Klein <rokl...@roklein.de>
Date: Mon, 8 Aug 2016 03:24:23 +0200
Subject: [PATCH 08/14] Update mairix link definition

* contrib/lisp/org-mairix.el ("mairix"):

Update to use org-link-set-parameters.
---
 contrib/lisp/org-mairix.el | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/contrib/lisp/org-mairix.el b/contrib/lisp/org-mairix.el
index a19719e..84a9582 100644
--- a/contrib/lisp/org-mairix.el
+++ b/contrib/lisp/org-mairix.el
@@ -82,8 +82,9 @@ correctly, you should not need to change this.
 
 ;;; The hooks to integrate mairix into org
 
-(org-add-link-type "mairix" 'org-mairix-open)
-(add-hook 'org-store-link-functions 'org-mairix-store-gnus-link)
+(org-link-set-parameters "mairix"
+			 :follow #'org-mairix-open
+			 :store #'org-mairix-store-gnus-link)
 
 ;;; Generic org-mairix functions
 
-- 
2.9.2

>From 97a3fe593203a2357d092793c7222082807d1f4f Mon Sep 17 00:00:00 2001
From: Robert Klein <rokl...@roklein.de>
Date: Mon, 8 Aug 2016 03:24:23 +0200
Subject: [PATCH 09/14] Update man link definition

* contrib/lisp/org-man.el ("man"):

Update to use org-link-set-parameters.
---
 contrib/lisp/org-man.el | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/contrib/lisp/org-man.el b/contrib/lisp/org-man.el
index a9db83d..1ccd942 100644
--- a/contrib/lisp/org-man.el
+++ b/contrib/lisp/org-man.el
@@ -25,8 +25,10 @@
 
 (require 'org)
 
-(org-add-link-type "man" 'org-man-open 'org-man-export)
-(add-hook 'org-store-link-functions 'org-man-store-link)
+(org-link-set-parameters "man"
+			 :follow #'org-man-open
+			 :export #'org-man-export
+			 :store #'org-man-store-link)
 
 (defcustom org-man-command 'man
   "The Emacs command to be used to display a man page."
-- 
2.9.2

>From d263e3e0915ef120b4fa8e77947d1955692a586b Mon Sep 17 00:00:00 2001
From: Robert Klein <rokl...@roklein.de>
Date: Mon, 8 Aug 2016 03:24:23 +0200
Subject: [PATCH 10/14] Update mew link definition

* contrib/lisp/org-mew.el ("mew"):

Update to use org-link-set-parameters.
---
 contrib/lisp/org-mew.el | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/contrib/lisp/org-mew.el b/contrib/lisp/org-mew.el
index 4f2559b..f4c845c 100644
--- a/contrib/lisp/org-mew.el
+++ b/contrib/lisp/org-mew.el
@@ -148,8 +148,7 @@ with \"t\" key."
 (defvar mew-summary-goto-line-then-display)
 
 ;; Install the link type
-(org-add-link-type "mew" 'org-mew-open)
-(add-hook 'org-store-link-functions 'org-mew-store-link)
+(org-link-set-parameters "mew" :follow #'org-mew-open :store #'org-mew-store-link)
 
 ;; Implementation
 (defun org-mew-store-link ()
-- 
2.9.2

>From d93acc39c724f5e55b39804e2751c904297c26da Mon Sep 17 00:00:00 2001
From: Robert Klein <rokl...@roklein.de>
Date: Mon, 8 Aug 2016 03:24:23 +0200
Subject: [PATCH 11/14] Update notmuch and notmuch-search link definitions

* contrib/lisp/org-notmuch.el ("notmuch"):

Update to use org-link-set-parameters.
---
 contrib/lisp/org-notmuch.el | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/contrib/lisp/org-notmuch.el b/contrib/lisp/org-notmuch.el
index 265742e..b77df03 100644
--- a/contrib/lisp/org-notmuch.el
+++ b/contrib/lisp/org-notmuch.el
@@ -65,8 +65,9 @@ Should accept a notmuch search string as the sole argument."
 
 
 ;; Install the link type
-(org-add-link-type "notmuch" 'org-notmuch-open)
-(add-hook 'org-store-link-functions 'org-notmuch-store-link)
+(org-link-set-parameters "notmuch"
+			 :follow #'org-notmuch-open
+			 :store #'org-notmuch-store-link)
 
 (defun org-notmuch-store-link ()
   "Store a link to a notmuch search or message."
@@ -98,8 +99,9 @@ Can link to more than one message, if so all matching messages are shown."
 
 
 
-(org-add-link-type "notmuch-search" 'org-notmuch-search-open)
-(add-hook 'org-store-link-functions 'org-notmuch-search-store-link)
+(org-link-set-parameters "notmuch-search"
+			 :follow #'org-notmuch-search-open
+			 :store #'org-notmuch-search-store-link)
 
 (defun org-notmuch-search-store-link ()
   "Store a link to a notmuch search or message."
-- 
2.9.2

>From 66dbfd7a3781e3c026e0f605df464b0a3ff8c041 Mon Sep 17 00:00:00 2001
From: Robert Klein <rokl...@roklein.de>
Date: Mon, 8 Aug 2016 03:24:23 +0200
Subject: [PATCH 12/14] Update vm link definition

* contrib/lisp/org-vm.el ("vm"):

Update to use org-link-set-parameters.
---
 contrib/lisp/org-vm.el | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/contrib/lisp/org-vm.el b/contrib/lisp/org-vm.el
index ce20314..f55d7f8 100644
--- a/contrib/lisp/org-vm.el
+++ b/contrib/lisp/org-vm.el
@@ -55,9 +55,8 @@
 (defvar vm-folder-directory)
 
 ;; Install the link type
-(org-add-link-type "vm" 'org-vm-open)
-(org-add-link-type "vm-imap" 'org-vm-imap-open)
-(add-hook 'org-store-link-functions 'org-vm-store-link)
+(org-link-set-parameters "vm" :follow #'org-vm-open :store #'org-vm-store-link)
+(org-link-set-parameters "vm-imap" :follow #'org-vm-imap-open)
 
 ;; Implementation
 (defun org-vm-store-link ()
-- 
2.9.2

>From 6b5bd1f02b996ae9612e77ab88a9686f05077bf3 Mon Sep 17 00:00:00 2001
From: Robert Klein <rokl...@roklein.de>
Date: Mon, 8 Aug 2016 03:24:23 +0200
Subject: [PATCH 13/14] Update wl link definition

* contrib/lisp/org-wl.el ("wl"):

Update to use org-link-set-parameters.
---
 contrib/lisp/org-wl.el | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/contrib/lisp/org-wl.el b/contrib/lisp/org-wl.el
index befbc16..e4d7306 100644
--- a/contrib/lisp/org-wl.el
+++ b/contrib/lisp/org-wl.el
@@ -109,8 +109,7 @@ googlegroups otherwise."
   "List of folder indicators.  See Wanderlust manual, section 3.")
 
 ;; Install the link type
-(org-add-link-type "wl" 'org-wl-open)
-(add-hook 'org-store-link-functions 'org-wl-store-link)
+(org-link-set-parameters "wl" :follow #'org-wl-open :store #'org-wl-store-link)
 
 ;; Implementation
 
-- 
2.9.2

>From 39741405189fba92eff4ff5b0c6e834167d47db4 Mon Sep 17 00:00:00 2001
From: Robert Klein <rokl...@roklein.de>
Date: Mon, 8 Aug 2016 03:24:24 +0200
Subject: [PATCH 14/14] Update replacement for org-add-link-type

* lisp/org-compat.el ("org-add-link-type"):

replacement for org-add-link-type is org-link-set-parameters,
notorg-linkk-add, now.
---
 lisp/org-compat.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/org-compat.el b/lisp/org-compat.el
index d5b4515..3120e80 100644
--- a/lisp/org-compat.el
+++ b/lisp/org-compat.el
@@ -223,7 +223,7 @@ See `org-link-parameters' for documentation on the other parameters."
   (org-link-set-parameters type :follow follow :export export)
   (message "Created %s link." type))
 
-(make-obsolete 'org-add-link-type "use `org-link-add' instead." "Org 9.0")
+(make-obsolete 'org-add-link-type "use `org-link-set-parameters' instead." "Org 9.0")
 
 ;;;; Obsolete link types
 
-- 
2.9.2

Reply via email to