diff options
-rw-r--r-- | lisp/url/ChangeLog | 6 | ||||
-rw-r--r-- | lisp/url/url-handlers.el | 9 |
2 files changed, 13 insertions, 2 deletions
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog index 6e0c157e39c..c26b080c050 100644 --- a/lisp/url/ChangeLog +++ b/lisp/url/ChangeLog @@ -1,3 +1,9 @@ +2015-03-26 Stefan Monnier <monnier@iro.umontreal.ca> + + * url-handlers.el (url-insert-file-contents): Call + after-insert-file-set-coding like insert-file-contents, to set + buffer-file-coding-system (bug#20010). [Backport] + 2014-10-20 Glenn Morris <rgm@gnu.org> * url-vars.el (url-bug-address): Make into an obsolete alias. diff --git a/lisp/url/url-handlers.el b/lisp/url/url-handlers.el index 9c16cffd4af..e42f552c416 100644 --- a/lisp/url/url-handlers.el +++ b/lisp/url/url-handlers.el @@ -324,8 +324,13 @@ They count bytes from the beginning of the body." (unless (cadr size-and-charset) ;; If the headers don't specify any particular charset, use the ;; usual heuristic/rules that we apply to files. - (decode-coding-inserted-region start (point) url visit beg end replace)) - (list url (car size-and-charset)))))) + (decode-coding-inserted-region start (point) url + visit beg end replace)) + (let ((inserted (car size-and-charset))) + (when (fboundp 'after-insert-file-set-coding) + (let ((insval (after-insert-file-set-coding inserted visit))) + (if insval (setq inserted insval)))) + (list url inserted)))))) (put 'insert-file-contents 'url-file-handlers 'url-insert-file-contents) |