]> git.eshelyaron.com Git - emacs.git/commitdiff
(url-insert-file-contents): Set buffer-file-coding-system
authorStefan Monnier <monnier@iro.umontreal.ca>
Sun, 15 Mar 2015 18:21:04 +0000 (14:21 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Sun, 15 Mar 2015 18:21:04 +0000 (14:21 -0400)
Fixes: debbugs:20010
* lisp/url/url-handlers.el (url-insert-file-contents): Call
after-insert-file-set-coding like insert-file-contents, to set
buffer-file-coding-system.

lisp/url/ChangeLog
lisp/url/url-handlers.el

index 0f464135840616a26d0609f889d75da37f055ead..8733614387a127d219aedcfb5e61faf8c7991f9f 100644 (file)
@@ -1,3 +1,9 @@
+2015-03-15  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).
+
 2015-01-22  Paul Eggert  <eggert@cs.ucla.edu>
 
        Don't downcase system diagnostics' first letters
index 23006e1e0873043a2aec4ed1f286ef95dc149f2d..ff3eafd19dac3018541674d815ca59c862d5ade0 100644 (file)
@@ -1,4 +1,4 @@
-;;; url-handlers.el --- file-name-handler stuff for URL loading
+;;; url-handlers.el --- file-name-handler stuff for URL loading  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1996-1999, 2004-2015 Free Software Foundation, Inc.
 
@@ -228,7 +228,7 @@ the arguments that would have been passed to OPERATION."
       ;; a local process.
       nil)))
 
-(defun url-handler-file-remote-p (filename &optional identification connected)
+(defun url-handler-file-remote-p (filename &optional identification _connected)
   (let ((url (url-generic-parse-url filename)))
     (if (and (url-type url) (not (equal (url-type url) "file")))
        ;; Maybe we can find a suitable check for CONNECTED.  For now,
@@ -250,7 +250,7 @@ the arguments that would have been passed to OPERATION."
 ;; The actual implementation
 ;;;###autoload
 (defun url-copy-file (url newname &optional ok-if-already-exists
-                         keep-time preserve-uid-gid)
+                         _keep-time _preserve-uid-gid)
   "Copy URL to NEWNAME.  Both args must be strings.
 Signals a `file-already-exists' error if file NEWNAME already exists,
 unless a third argument OK-IF-ALREADY-EXISTS is supplied and non-nil.
@@ -334,8 +334,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)