Browse Source

Revert "Make Org links compatible with URI syntax"

This reverts commit 3589f64e42dfbc894e789c2a9fba530eac36c665.
Nicolas Goaziou 11 years ago
parent
commit
1ca819e398
2 changed files with 28 additions and 21 deletions
  1. 24 19
      lisp/org.el
  2. 4 2
      testing/lisp/test-org-element.el

+ 24 - 19
lisp/org.el

@@ -5594,29 +5594,34 @@ 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 "\\`" (regexp-opt org-link-types t) ":\\(?://\\)")
+	(concat
+	 "\\`\\(" (mapconcat 'regexp-quote org-link-types "\\|") "\\):")
 	org-link-re-with-space
-	(concat "<?" (regexp-opt org-link-types t) ":\\(?://\\)"
-		"\\([^" org-non-link-chars " ]"
-		"[^" org-non-link-chars "]*"
-		"[^" org-non-link-chars " ]\\)>?")
+	(concat
+	 "<?\\(" (mapconcat 'regexp-quote org-link-types "\\|") "\\):"
+	 "\\([^" org-non-link-chars " ]"
+	 "[^" org-non-link-chars "]*"
+	 "[^" org-non-link-chars " ]\\)>?")
 	org-link-re-with-space2
-	(concat "<?" (regexp-opt org-link-types t) ":\\(?://\\)?"
-		"\\([^" org-non-link-chars " ]"
-		"[^\t\n\r]*"
-		"[^" org-non-link-chars " ]\\)>?")
+	(concat
+	 "<?\\(" (mapconcat 'regexp-quote org-link-types "\\|") "\\):"
+	 "\\([^" org-non-link-chars " ]"
+	 "[^\t\n\r]*"
+	 "[^" org-non-link-chars " ]\\)>?")
 	org-link-re-with-space3
-	(concat "<?" (regexp-opt org-link-types t) ":\\(?://\\)?"
-		"\\([^" org-non-link-chars " ]"
-		"[^\t\n\r]*\\)")
+	(concat
+	 "<?\\(" (mapconcat 'regexp-quote org-link-types "\\|") "\\):"
+	 "\\([^" org-non-link-chars " ]"
+	 "[^\t\n\r]*\\)")
 	org-angle-link-re
-	(concat "<" (regexp-opt org-link-types t) ":\\(?://\\)?"
-		"\\([^" org-non-link-chars " ]"
-		"[^" org-non-link-chars "]*"
-		"\\)>")
+	(concat
+	 "<\\(" (mapconcat 'regexp-quote org-link-types "\\|") "\\):"
+	 "\\([^" org-non-link-chars " ]"
+	 "[^" org-non-link-chars "]*"
+	 "\\)>")
 	org-plain-link-re
 	(concat
-	 "\\<" (regexp-opt org-link-types t) ":\\(?://\\)?"
+	 "\\<\\(" (mapconcat 'regexp-quote org-link-types "\\|") "\\):"
 	 (org-re "\\([^ \t\n()<>]+\\(?:([[:word:]0-9_]+)\\|\\([^[:punct:] \t\n]\\|/\\)\\)\\)"))
 	;;	 "\\([^]\t\n\r<>() ]+[^]\t\n\r<>,.;() ]\\)")
 	org-bracket-link-regexp
@@ -5624,7 +5629,7 @@ This should be called after the variable `org-link-types' has changed."
 	org-bracket-link-analytic-regexp
 	(concat
 	 "\\[\\["
-	 "\\(" (regexp-opt org-link-types t) ":\\(?://\\)?\\)?"
+	 "\\(\\(" (mapconcat 'regexp-quote org-link-types "\\|") "\\):\\)?"
 	 "\\([^]]+\\)"
 	 "\\]"
 	 "\\(\\[" "\\([^]]+\\)" "\\]\\)?"
@@ -5632,7 +5637,7 @@ This should be called after the variable `org-link-types' has changed."
 	org-bracket-link-analytic-regexp++
 	(concat
 	 "\\[\\["
-	 "\\(" (regexp-opt (cons "coderef" org-link-types) t) ":\\(?://\\)?\\)?"
+	 "\\(\\(" (mapconcat 'regexp-quote (cons "coderef" org-link-types) "\\|") "\\):\\)?"
 	 "\\([^]]+\\)"
 	 "\\]"
 	 "\\(\\[" "\\([^]]+\\)" "\\]\\)?"

+ 4 - 2
testing/lisp/test-org-element.el

@@ -1332,10 +1332,12 @@ 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-context))))))
+	(org-element-property
+	 :path
+	 (org-element-map (org-element-parse-buffer) 'link 'identity nil t))))))
   ;; ... with translation.
   (should
    (equal