;; This file is part of XEmacs.
-;; This file is very similar to mule-files.el
-
;; XEmacs is free software; you can redistribute it and/or modify it
;; under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; General Public License for more details.
;; You should have received a copy of the GNU General Public License
-;; along with XEmacs; see the file COPYING. If not, write to the
+;; along with XEmacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
+;;; Synched up with: Not synched.
+
;;; Commentary:
-;;; Derived from mule.el in the original Mule but heavily modified
-;;; by Ben Wing.
+;; Derived from mule.el in the original Mule but heavily modified
+;; by Ben Wing.
;; 1997/3/11 modified by MORIOKA Tomohiko to sync with Emacs 20 API.
+;; This file was derived from the former mule-files.el which has been removed
+;; as of XEmacs 21.2.15.
+
;;; Code:
-(setq-default buffer-file-coding-system 'no-conversion)
+(setq-default buffer-file-coding-system 'raw-text)
(put 'buffer-file-coding-system 'permanent-local t)
(define-obsolete-variable-alias
("TUTORIAL\\.\\(?:hr\\|pl\\|ro\\)\\'" . iso-8859-2)
;; ("\\.\\(el\\|emacs\\|info\\(-[0-9]+\\)?\\|texi\\)$" . iso-2022-8)
;; ("\\(ChangeLog\\|CHANGES-beta\\)$" . iso-2022-8)
- ("/spool/mail/.*$" . convert-mbox-coding-system))
+
+ ;; This idea is totally broken, and the code didn't work anyway.
+ ;; Mailboxes should be decoded by mail clients, who actually know
+ ;; how to deal with them. Otherwise, their contents should be
+ ;; treated as `binary'.
+ ;("/spool/mail/.*$" . convert-mbox-coding-system)
+ )
"Alist to decide a coding system to use for a file I/O operation.
The format is ((PATTERN . VAL) ...),
where PATTERN is a regular expression matching a file name,
(coding-system-base buffer-file-coding-system)
(cond ((eq eol-type 'lf) 'crlf)
((eq eol-type 'crlf) 'lf)
- ((eq eol-type 'cr) 'lf))))))
+ ((eq eol-type 'cr) 'lf))))
+ (set-buffer-modified-p t)))
(define-obsolete-function-alias
'set-file-coding-system
((find-coding-system codesys))
))))
-(defun convert-mbox-coding-system (filename visit start end)
- "Decoding function for Unix mailboxes.
-Does separate detection and decoding on each message, since each
-message might be in a different encoding."
- (let ((buffer-read-only nil))
- (save-restriction
- (narrow-to-region start end)
- (goto-char (point-min))
- (while (not (eobp))
- (let ((start (point))
- end)
- (forward-char 1)
- (if (re-search-forward "^From" nil 'move)
- (beginning-of-line))
- (setq end (point))
- (decode-coding-region start end 'undecided))))))
+;; This is completely broken, not only in implementation (does not
+;; understand MIME), but in concept -- such high-level decoding should
+;; be done by mail readers, not by IO code!
+
+;(defun convert-mbox-coding-system (filename visit start end)
+;...
(defun find-coding-system-magic-cookie ()
- "Look for the coding-system magic cookie in the current buffer.\n"
-"The coding-system magic cookie is the exact string\n"
-"\";;;###coding system: \" followed by a valid coding system symbol,\n"
-"somewhere within the first 3000 characters of the file. If found,\n"
-"the coding system symbol is returned; otherwise nil is returned.\n"
-"Note that it is extremely unlikely that such a string would occur\n"
-"coincidentally as the result of encoding some characters in a non-ASCII\n"
-"charset, and that the spaces make it even less likely since the space\n"
-"character is not a valid octet in any ISO 2022 encoding of most non-ASCII\n"
-"charsets."
+ "Look for the coding-system magic cookie in the current buffer.
+The coding-system magic cookie is the exact string
+\";;;###coding system: \" followed by a valid coding system symbol,
+somewhere within the first 3000 characters of the file. If found,
+the coding system symbol is returned; otherwise nil is returned.
+Note that it is extremely unlikely that such a string would occur
+coincidentally as the result of encoding some characters in a non-ASCII
+charset, and that the spaces make it even less likely since the space
+character is not a valid octet in any ISO 2022 encoding of most non-ASCII
+charsets."
(save-excursion
(goto-char (point-min))
(or (and (looking-at
(save-excursion
(set-buffer (get-buffer-create " *load*"))
(erase-buffer)
- (let ((coding-system-for-read 'no-conversion))
+ (let ((coding-system-for-read 'raw-text))
(insert-file-contents path nil 1 3001))
(find-coding-system-magic-cookie))
(if elc
a cons of absolute pathname and length of data inserted (the same
thing as will be returned from `insert-file-contents').")
-(defun insert-file-contents (filename &optional visit beg end replace)
+(defun insert-file-contents (filename &optional visit start end replace)
"Insert contents of file FILENAME after point.
Returns list of absolute file name and length of data inserted.
If second argument VISIT is non-nil, the buffer's visited filename
If visiting and the file does not exist, visiting is completed
before the error is signaled.
-The optional third and fourth arguments BEG and END
+The optional third and fourth arguments START and END
specify what portion of the file to insert.
-If VISIT is non-nil, BEG and END must be nil.
+If VISIT is non-nil, START and END must be nil.
If optional fifth argument REPLACE is non-nil,
it means replace the current buffer contents (in the accessible portion)
with the file contents. This is better than simply deleting and inserting
the whole thing because (1) it preserves some marker positions
and (2) it puts less data in the undo list.
-NOTE: When Mule support is enabled, the REPLACE argument is
-currently ignored.
-
The coding system used for decoding the file is determined as follows:
1. `coding-system-for-read', if non-nil.
3. The matching value for this filename from
`file-coding-system-alist', if any.
4. `buffer-file-coding-system-for-read', if non-nil.
-5. The coding system 'no-conversion.
+5. The coding system 'raw-text.
If a local value for `buffer-file-coding-system' in the current buffer
does not exist, it is set to the coding system which was actually used
;; #4.
buffer-file-coding-system-for-read
;; #5.
- 'no-conversion))
+ 'raw-text))
(if (consp coding-system)
(setq return-val coding-system)
(if (null (find-coding-system coding-system))
coding-system)
(setq coding-system 'undecided)))
(setq return-val
- (insert-file-contents-internal filename visit beg end
+ (insert-file-contents-internal filename visit start end
replace coding-system
;; store here!
'used-codesys))
start end filename append visit lockname
coding-system)))
-;;; mule-files.el ends here
+;;; code-files.el ends here