From ae8e918c873febd58abfc332ebf8f59448e8fff4 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Fri, 3 Mar 2017 00:10:00 -0500 Subject: Add a separate function for testing if point is on a link The slurping and barfing commands are interested in point being on a link, so it is sufficient for them to use org-link-edit--get-link-data and get a user-error when point is not on a link. But an upcoming command will want to know that point is _not_ in a link. --- org-link-edit.el | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'org-link-edit.el') diff --git a/org-link-edit.el b/org-link-edit.el index 49e9aa0..833d620 100644 --- a/org-link-edit.el +++ b/org-link-edit.el @@ -61,6 +61,14 @@ (require 'org-element) (require 'cl-lib) +(defun org-link-edit--on-link-p (&optional element) + (let ((el (or element (org-element-context)))) + ;; Don't use `org-element-lineage' because it isn't available + ;; until Org version 8.3. + (while (and el (not (memq (car el) '(link)))) + (setq el (org-element-property :parent el))) + (eq (car el) 'link))) + (defun org-link-edit--link-data () "Return list with information about the link at point. The list includes @@ -69,11 +77,7 @@ The list includes - the link text - the link description (nil when on a plain link)" (let ((el (org-element-context))) - ;; Don't use `org-element-lineage' because it isn't available - ;; until Org version 8.3. - (while (and el (not (memq (car el) '(link)))) - (setq el (org-element-property :parent el))) - (unless (eq (car el) 'link) + (unless (org-link-edit--on-link-p el) (user-error "Point is not on a link")) (save-excursion (goto-char (org-element-property :begin el)) -- cgit v1.2.3