From f29387e80b31f675b8e54516ab94b1eca157b730 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Wed, 22 Jan 2003 02:33:07 +0000 Subject: [PATCH] (decode-coding-region-as-inserted-from-file): New function. --- lisp/international/mule.el | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/lisp/international/mule.el b/lisp/international/mule.el index 909ba315b77..aa14f442bd0 100644 --- a/lisp/international/mule.el +++ b/lisp/international/mule.el @@ -1899,6 +1899,33 @@ or a function symbol which, when called, returns such a cons cell." (cons (cons regexp coding-system) network-coding-system-alist))))))) +(defun decode-coding-region-as-inserted-from-file (from to filename + &optional + visit beg end replace) + "Decode the region between FROM and TO as if it is read from file FILENAME. +Optional arguments VISIT, BEG, END, and REPLACE are the same as those +of the function `insert-file-contents'." + (save-excursion + (save-restriction + (narrow-to-region from to) + (goto-char (point-min)) + (let ((coding coding-system-for-read)) + (or coding + (setq coding (funcall set-auto-coding-function + filename (- (point-max) (point-min))))) + (or coding + (setq coding (find-operation-coding-system + 'insert-file-contents + filename visit beg end replace))) + (if (coding-system-p coding) + (or enable-multibyte-characters + (setq coding + (coding-system-change-text-conversion coding 'raw-text))) + (setq coding nil)) + (if coding + (decode-coding-region (point-min) (point-max) coding)) + (setq last-coding-system-used coding))))) + (defun make-translation-table (&rest args) "Make a translation table from arguments. A translation table is a char table intended for character -- 2.39.2