]> git.eshelyaron.com Git - emacs.git/commitdiff
(url-insert-file-contents): Decode contents.
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 20 Sep 2004 21:27:10 +0000 (21:27 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Mon, 20 Sep 2004 21:27:10 +0000 (21:27 +0000)
lisp/url/ChangeLog
lisp/url/url-handlers.el

index e19df5d2ef63ace75fc408b26b190de3438bdcec..69851ac50462907216e271357430be55ad3aeaba 100644 (file)
@@ -1,3 +1,7 @@
+2004-09-20  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * url-handlers.el (url-insert-file-contents): Decode contents.
+
 2004-04-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * url-util.el (url-debug): Use with-current-buffer.
index 6c540e8d61bf4090b308e09e6f7e44fd2459d9dd..56497b001191d05be8cbe3d482c048ef3d9fc81c 100644 (file)
@@ -1,6 +1,6 @@
 ;;; url-handlers.el --- file-name-handler stuff for URL loading
 
-;; Copyright (c) 1996,97,98,1999,2004  Free Software Foundation, Inc.
+;; Copyright (c) 1996, 1997, 1998, 1999, 2004  Free Software Foundation, Inc.
 ;; Copyright (c) 1993 - 1996 by William M. Perry <wmperry@cs.indiana.edu>
 
 ;; Keywords: comm, data, processes, hypermedia
@@ -170,8 +170,7 @@ A prefix arg makes KEEP-TIME non-nil."
        (handle nil))
     (if (not buffer)
        (error "Opening input file: No such file or directory, %s" url))
-    (save-excursion
-      (set-buffer buffer)
+    (with-current-buffer buffer
       (setq handle (mm-dissect-buffer t)))
     (mm-save-part-to-file handle newname)
     (kill-buffer buffer)
@@ -194,18 +193,22 @@ accessible."
     (if (not buffer)
        (error "Opening input file: No such file or directory, %s" url))
     (if visit (setq buffer-file-name url))
-    (save-excursion
-      (set-buffer buffer)
+    (with-current-buffer buffer
       (setq handle (mm-dissect-buffer t))
       (set-buffer (mm-handle-buffer handle))
-      (if beg
-         (setq data (buffer-substring beg end))
-       (setq data (buffer-string))))
+      (setq data (if beg (buffer-substring beg end)
+                  (buffer-string))))
     (kill-buffer buffer)
     (mm-destroy-parts handle)
     (if replace (delete-region (point-min) (point-max)))
     (save-excursion
-      (insert data))
+      (let ((start (point)))
+       (insert data)
+       ;; FIXME: for text/plain data, we sometimes receive a `charset'
+       ;; annotation which we could use as a hint of the locale in use
+       ;; at the remote site.  Not sure how/if that should be done.  --Stef
+       (decode-coding-inserted-region
+        start (point) buffer-file-name visit beg end replace)))
     (list url (length data))))
 
 (defun url-file-name-completion (url directory)