From: Lars Magne Ingebrigtsen Date: Tue, 10 Apr 2012 02:14:13 +0000 (+0200) Subject: (url-unhex-string): Add an optional CODING-SYSTEM parameter. X-Git-Tag: emacs-24.2.90~471^2~365^2~26 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=4bbc3323df984f9614960a066d99460be4a65b4a;p=emacs.git (url-unhex-string): Add an optional CODING-SYSTEM parameter. Fixes: debbugs:6252 --- diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog index 4c9635f8ecf..c2350e56594 100644 --- a/lisp/url/ChangeLog +++ b/lisp/url/ChangeLog @@ -1,5 +1,8 @@ 2012-04-10 Lars Magne Ingebrigtsen + * 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 848eb66e54b..c62b820c2e7 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 '(