From: Katsumi Yamaoka Date: Tue, 5 Oct 2010 00:44:05 +0000 (+0000) Subject: shr.el (shr-encode-url-chars): New function. X-Git-Tag: emacs-pretest-24.0.90~104^2~275^2~438^2~46^2~182 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=ca1bd56c49ca8a47d8eca011fa814d76c8d53b13;p=emacs.git shr.el (shr-encode-url-chars): New function. --- diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index a2371a51b48..95486cbca3f 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,9 @@ +2010-10-05 Katsumi Yamaoka + + * shr.el (shr-encode-url-chars): New function, that's an alias to + browse-url-url-encode-chars or a copy of it. + (shr-tag-img): Use it. + 2010-10-04 Lars Magne Ingebrigtsen * shr.el (shr-tag-blockquote): Ensure paragraph after quote, too. diff --git a/lisp/gnus/shr.el b/lisp/gnus/shr.el index 59d7b784a1f..e97ca1da47a 100644 --- a/lisp/gnus/shr.el +++ b/lisp/gnus/shr.el @@ -191,6 +191,25 @@ redirects somewhere else." (copy-region-as-kill (point-min) (point-max)) (message "Copied %s" url)))))) +(eval-and-compile + (defalias 'shr-encode-url-chars + ;; Neither Emacs 22 nor XEmacs provides this function. + (if (fboundp 'browse-url-url-encode-chars) + 'browse-url-url-encode-chars + (lambda (text chars) + "URL-encode the chars in TEXT that match CHARS. +CHARS is a regexp-like character alternative (e.g., \"[)$]\")." + (let ((encoded-text (copy-sequence text)) + (s 0)) + (while (setq s (string-match chars encoded-text s)) + (setq encoded-text + (replace-match (format "%%%x" + (string-to-char + (match-string 0 encoded-text))) + t t encoded-text) + s (1+ s))) + encoded-text))))) + (defun shr-tag-img (cont) (when (and (> (current-column) 0) (not (eq shr-state 'image))) @@ -204,7 +223,7 @@ redirects somewhere else." ((and shr-blocked-images (string-match shr-blocked-images url)) (insert alt)) - ((url-is-cached (browse-url-url-encode-chars url "[&)$ ]")) + ((url-is-cached (shr-encode-url-chars url "[&)$ ]")) (shr-put-image (shr-get-image-data url) (point) alt)) (t (insert alt)