1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-25 10:47:00 +00:00

(format-find-file, format-insert-file): New functions.

This commit is contained in:
Karl Heuer 1995-06-09 01:23:01 +00:00
parent d144b02862
commit ce6af52bd2

View File

@ -251,6 +251,43 @@ name as FILE, to write a file of the same old name in that directory."
(setq buffer-file-format format)
(write-file filename))
(defun format-find-file (filename format)
"Find the file FILE using data format FORMAT.
If FORMAT is nil then do not do any format conversion."
(interactive
;; Same interactive spec as write-file, plus format question.
(let* ((file (read-file-name "Find file: "))
(fmt (format-read (format "Read file `%s' in format: "
(file-name-nondirectory file)))))
(list file fmt)))
(let ((format-alist nil))
(find-file filename))
(if format
(format-decode-buffer format)))
(defun format-insert-file (filename format &optional beg end)
"Insert the contents of file FILE using data format FORMAT.
If FORMAT is nil then do not do any format conversion.
The optional third and fourth arguments BEG and END specify
the part of the file to read.
The return value is like the value of `insert-file-contents':
a list (ABSOLUTE-FILE-NAME . SIZE)."
(interactive
;; Same interactive spec as write-file, plus format question.
(let* ((file (read-file-name "Find file: "))
(fmt (format-read (format "Read file `%s' in format: "
(file-name-nondirectory file)))))
(list file fmt)))
(let (value size)
(let ((format-alist nil))
(setq value (insert-file-contents filename nil beg end))
(setq size (nth 1 value)))
(if format
(setq size (format-decode size format)
value (cons (car value) size)))
value))
(defun format-read (&optional prompt)
"Read and return the name of a format.
Return value is a list, like `buffer-file-format'; it may be nil.