Sfoglia il codice sorgente

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 <joon.ro@outlook.com>
<http://lists.gnu.org/r/emacs-orgmode/2019-02/msg00066.html>
Nicolas Goaziou 6 anni fa
parent
commit
03d7441813
1 ha cambiato i file con 9 aggiunte e 11 eliminazioni
  1. 9 11
      lisp/org.el

+ 9 - 11
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)