From 03d7441813592eeda71eab5af25f2a9ce84c1e5c Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Wed, 6 Feb 2019 19:32:30 +0100 Subject: [PATCH] Fix `org-edit-special' on INCLUDE with additional parameters * lisp/org.el (org-edit-special): Correctly parse filenames with quotes and additional parameters. Reported-by: Joon Ro --- lisp/org.el | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/lisp/org.el b/lisp/org.el index 751008619..f9b65ee7d 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -20149,17 +20149,15 @@ Otherwise, return a user error." (unless (member (org-element-property :key element) '("INCLUDE" "SETUPFILE")) (user-error "No special environment to edit here")) - (org-open-link-from-string - (format "[[%s]]" - (expand-file-name - (let ((value (org-strip-quotes - (org-element-property :value element)))) - (cond - ((not (org-string-nw-p value)) - (user-error "No file to edit")) - ((org-file-url-p value) - (user-error "Files located with a URL cannot be edited")) - (t value))))))) + (let ((value (org-element-property :value element))) + (unless (org-string-nw-p value) (user-error "No file to edit")) + (let ((file (and (string-match "\\`\"\\(.*?\\)\"\\|\\S-+" value) + (or (match-string 1 value) + (match-string 0 value))))) + (when (org-file-url-p file) + (user-error "Files located with a URL cannot be edited")) + (org-open-link-from-string + (format "[[%s]]" (expand-file-name file)))))) (`table (if (eq (org-element-property :type element) 'table.el) (org-edit-table.el)