2012-04-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
+ * 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.
;; 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))
(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
'(