From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicolas Goaziou Subject: bug#16751: 24.3.50; Export during Org export to HTML Date: Fri, 28 Mar 2014 19:36:12 +0100 Message-ID: <8761myqig3.fsf__27444.2686736167$1396031811$gmane$org@gmail.com> References: <86fvnmoxyp.fsf@somewhere.org> <86txbwlkeh.fsf@somewhere.org> <83ha7w75sc.fsf@gnu.org> <86wqgk7npj.fsf@somewhere.org> <86mwhf4jpo.fsf@somewhere.org> <834n3n17vg.fsf@gnu.org> <87ob1vnml6.fsf@bzg.ath.cx> <83ob1vytf5.fsf@gnu.org> <83eh2muobu.fsf@gnu.org> <87pplgdkz3.fsf__35463.6971526363$1395389941$gmane$org@bzg.ath.cx> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:53574) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WTbdQ-0006iC-Rj for emacs-orgmode@gnu.org; Fri, 28 Mar 2014 14:36:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WTbdK-00010O-OV for emacs-orgmode@gnu.org; Fri, 28 Mar 2014 14:36:07 -0400 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <87pplgdkz3.fsf__35463.6971526363$1395389941$gmane$org@bzg.ath.cx> (Bastien's message of "Fri, 21 Mar 2014 09:17:20 +0100") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Bastien Cc: sva-news@mygooglest.com, 16751@debbugs.gnu.org, Eli Zaretskii --=-=-= Content-Type: text/plain Hello, Bastien writes: > If someone wants to work on this, help is welcome. > Let's keep the bug open in the meantime. Unless I'm mistaken, the following patch should fix the issue. Regards, -- Nicolas Goaziou --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Make-Org-links-compatible-with-URI-syntax.patch >From 4d62387fe035d9aa3d1dc96d12d40c53dca2afe5 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 28 Mar 2014 19:24:38 +0100 Subject: [PATCH] Make Org links compatible with URI syntax * lisp/org.el (org-make-link-regexps): Allow optional double slashes after type. Small refactoring. * testing/lisp/test-org-element.el (test-org-element/link-parser): Update test. This patch allows to write both [[file:/file.org]] and [[file:///file.org]]. See bug#16751. --- lisp/org.el | 43 ++++++++++++++++++---------------------- testing/lisp/test-org-element.el | 6 ++---- 2 files changed, 21 insertions(+), 28 deletions(-) diff --git a/lisp/org.el b/lisp/org.el index bb83eb7..53f142e 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -5658,34 +5658,29 @@ stacked delimiters is N. Escaping delimiters is not possible." "Update the link regular expressions. This should be called after the variable `org-link-types' has changed." (setq org-link-types-re - (concat - "\\`\\(" (mapconcat 'regexp-quote org-link-types "\\|") "\\):") + (concat "\\`" (regexp-opt org-link-types t) ":\\(?://\\)") org-link-re-with-space - (concat - "?") + (concat "?") org-link-re-with-space2 - (concat - "?") + (concat "?") org-link-re-with-space3 - (concat - "") + (concat "<" (regexp-opt org-link-types t) ":\\(?://\\)?" + "\\([^" org-non-link-chars " ]" + "[^" org-non-link-chars "]*" + "\\)>") org-plain-link-re (concat - "\\<\\(" (mapconcat 'regexp-quote org-link-types "\\|") "\\):" + "\\<" (regexp-opt org-link-types t) ":\\(?://\\)?" (org-re "\\([^ \t\n()<>]+\\(?:([[:word:]0-9_]+)\\|\\([^[:punct:] \t\n]\\|/\\)\\)\\)")) ;; "\\([^]\t\n\r<>() ]+[^]\t\n\r<>,.;() ]\\)") org-bracket-link-regexp @@ -5693,7 +5688,7 @@ This should be called after the variable `org-link-types' has changed." org-bracket-link-analytic-regexp (concat "\\[\\[" - "\\(\\(" (mapconcat 'regexp-quote org-link-types "\\|") "\\):\\)?" + "\\(" (regexp-opt org-link-types t) ":\\(?://\\)?\\)?" "\\([^]]+\\)" "\\]" "\\(\\[" "\\([^]]+\\)" "\\]\\)?" @@ -5701,7 +5696,7 @@ This should be called after the variable `org-link-types' has changed." org-bracket-link-analytic-regexp++ (concat "\\[\\[" - "\\(\\(" (mapconcat 'regexp-quote (cons "coderef" org-link-types) "\\|") "\\):\\)?" + "\\(" (regexp-opt (cons "coderef" org-link-types) t) ":\\(?://\\)?\\)?" "\\([^]]+\\)" "\\]" "\\(\\[" "\\([^]]+\\)" "\\]\\)?" diff --git a/testing/lisp/test-org-element.el b/testing/lisp/test-org-element.el index def1659..72eea22 100644 --- a/testing/lisp/test-org-element.el +++ b/testing/lisp/test-org-element.el @@ -1362,12 +1362,10 @@ e^{i\\pi}+1=0 ;; ... with expansion. (should (equal - "//orgmode.org/worg" + "orgmode.org/worg" (org-test-with-temp-text "[[Org:worg]]" (let ((org-link-abbrev-alist '(("Org" . "http://orgmode.org/")))) - (org-element-property - :path - (org-element-map (org-element-parse-buffer) 'link 'identity nil t)))))) + (org-element-property :path (org-element-context)))))) ;; ... with translation. (should (equal -- 1.9.1 --=-=-=--