Small refactoring

* lisp/org.el (org-link-unescape): Refactor code.
This commit is contained in:
Nicolas Goaziou 2015-06-16 16:51:53 +02:00
parent cf5fd31f0c
commit aea374680c
1 changed files with 7 additions and 9 deletions

View File

@ -10104,15 +10104,13 @@ be replaced with `url-encode-url' which is available since Emacs
text)))
(defun org-link-unescape (str)
"Unhex hexified Unicode strings as returned from the JavaScript function
encodeURIComponent. E.g. `%C3%B6' is the german o-Umlaut."
(unless (and (null str) (string= "" str))
(let ((pos 0) (case-fold-search t) unhexed)
(while (setq pos (string-match "\\(%[0-9a-f][0-9a-f]\\)+" str pos))
(setq unhexed (org-link-unescape-compound (match-string 0 str)))
(setq str (replace-match unhexed t t str))
(setq pos (+ pos (length unhexed))))))
str)
"Unhex hexified Unicode parts in string STR.
E.g. `%C3%B6' becomes the german o-Umlaut. This is the
reciprocal of `org-link-escape', which see."
(if (org-string-nw-p str)
(replace-regexp-in-string
"\\(%[0-9A-Za-z]\\{2\\}\\)+" #'org-link-unescape-compound str t t)
str))
(defun org-link-unescape-compound (hex)
"Unhexify Unicode hex-chars. E.g. `%C3%B6' is the German o-Umlaut.