aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Magne Ingebrigtsen <[email protected]>2012-04-10 04:14:13 +0200
committerLars Magne Ingebrigtsen <[email protected]>2012-04-10 04:14:13 +0200
commit4bbc3323df984f9614960a066d99460be4a65b4a (patch)
tree8c6082f64f8e151afb5b480cb5a858f769ad0b9c
parent24d78a88add65761b0d0f63777e76fca6f2d66f8 (diff)
(url-unhex-string): Add an optional CODING-SYSTEM parameter.
Fixes: debbugs:6252
-rw-r--r--lisp/url/ChangeLog3
-rw-r--r--lisp/url/url-util.el10
2 files changed, 10 insertions, 3 deletions
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog
index 4c9635f8ec..c2350e5659 100644
--- a/lisp/url/ChangeLog
+++ b/lisp/url/ChangeLog
@@ -1,5 +1,8 @@
2012-04-10 Lars Magne Ingebrigtsen <[email protected]>
+ * url-util.el (url-unhex-string): Add an optional CODING-SYSTEM
+ parameter (bug#6252).
+
* url-domsurf.el: New file (bug#1401).
* url-cookie.el (url-cookie-two-dot-domains): Remove.
diff --git a/lisp/url/url-util.el b/lisp/url/url-util.el
index 848eb66e54..c62b820c2e 100644
--- a/lisp/url/url-util.el
+++ b/lisp/url/url-util.el
@@ -308,11 +308,13 @@ Will not do anything if `url-show-status' is nil."
;; str))
;;;###autoload
-(defun url-unhex-string (str &optional allow-newlines)
+(defun url-unhex-string (str &optional allow-newlines coding-system)
"Remove %XX embedded spaces, etc in a URL.
If optional second argument ALLOW-NEWLINES is non-nil, then allow the
decoding of carriage returns and line feeds in the string, which is normally
-forbidden in URL encoding."
+forbidden in URL encoding.
+If CODING-SYSTEM is non-nil, interpret the unhexed string as
+being encoded in that coding system."
(setq str (or str ""))
(let ((tmp "")
(case-fold-search t))
@@ -331,7 +333,9 @@ forbidden in URL encoding."
(t (byte-to-string code))))
str (substring str (match-end 0)))))
(setq tmp (concat tmp str))
- tmp))
+ (if coding-system
+ (decode-coding-string tmp coding-system)
+ tmp)))
(defconst url-unreserved-chars
'(