1 |
;;; url-handlers.el --- file-name-handler stuff for URL loading |
;;; url-handlers.el --- file-name-handler stuff for URL loading |
2 |
|
|
3 |
;; Copyright (c) 1996,97,98,1999,2004 Free Software Foundation, Inc. |
;; Copyright (c) 1996, 1997, 1998, 1999, 2004 Free Software Foundation, Inc. |
4 |
;; Copyright (c) 1993 - 1996 by William M. Perry <wmperry@cs.indiana.edu> |
;; Copyright (c) 1993 - 1996 by William M. Perry <wmperry@cs.indiana.edu> |
5 |
|
|
6 |
;; Keywords: comm, data, processes, hypermedia |
;; Keywords: comm, data, processes, hypermedia |
170 |
(handle nil)) |
(handle nil)) |
171 |
(if (not buffer) |
(if (not buffer) |
172 |
(error "Opening input file: No such file or directory, %s" url)) |
(error "Opening input file: No such file or directory, %s" url)) |
173 |
(save-excursion |
(with-current-buffer buffer |
|
(set-buffer buffer) |
|
174 |
(setq handle (mm-dissect-buffer t))) |
(setq handle (mm-dissect-buffer t))) |
175 |
(mm-save-part-to-file handle newname) |
(mm-save-part-to-file handle newname) |
176 |
(kill-buffer buffer) |
(kill-buffer buffer) |
193 |
(if (not buffer) |
(if (not buffer) |
194 |
(error "Opening input file: No such file or directory, %s" url)) |
(error "Opening input file: No such file or directory, %s" url)) |
195 |
(if visit (setq buffer-file-name url)) |
(if visit (setq buffer-file-name url)) |
196 |
(save-excursion |
(with-current-buffer buffer |
|
(set-buffer buffer) |
|
197 |
(setq handle (mm-dissect-buffer t)) |
(setq handle (mm-dissect-buffer t)) |
198 |
(set-buffer (mm-handle-buffer handle)) |
(set-buffer (mm-handle-buffer handle)) |
199 |
(if beg |
(setq data (if beg (buffer-substring beg end) |
200 |
(setq data (buffer-substring beg end)) |
(buffer-string)))) |
|
(setq data (buffer-string)))) |
|
201 |
(kill-buffer buffer) |
(kill-buffer buffer) |
202 |
(mm-destroy-parts handle) |
(mm-destroy-parts handle) |
203 |
(if replace (delete-region (point-min) (point-max))) |
(if replace (delete-region (point-min) (point-max))) |
204 |
(save-excursion |
(save-excursion |
205 |
(insert data)) |
(let ((start (point))) |
206 |
|
(insert data) |
207 |
|
;; FIXME: for text/plain data, we sometimes receive a `charset' |
208 |
|
;; annotation which we could use as a hint of the locale in use |
209 |
|
;; at the remote site. Not sure how/if that should be done. --Stef |
210 |
|
(decode-coding-inserted-region |
211 |
|
start (point) buffer-file-name visit beg end replace))) |
212 |
(list url (length data)))) |
(list url (length data)))) |
213 |
|
|
214 |
(defun url-file-name-completion (url directory) |
(defun url-file-name-completion (url directory) |