;; file if under Mule. If there are any extended characters in the
;; input file, use `escape-quoted' to make sure that both binary and
;; extended characters are output properly and distinguished properly.
- ;; Otherwise, use `no-conversion' for maximum portability with non-Mule
+ ;; Otherwise, use `raw-text' for maximum portability with non-Mule
;; Emacsen.
(when (featurep 'mule)
(defvar buffer-file-coding-system)
;; mrb- There must be a better way than skip-chars-forward
(skip-chars-forward (concat (char-to-string 0) "-"
(char-to-string 255)))
- (eq (point) (point-max)))
- (setq buffer-file-coding-system 'no-conversion)
- (insert "(require 'mule)\n;;;###coding system: escape-quoted\n")
- (setq buffer-file-coding-system 'escape-quoted)
+ (and (eq (point) (point-max))
+ (not
+ (re-search-backward
+ "\\\\u[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]" nil t))))
+ (setq buffer-file-coding-system 'raw-text)
+ (cond ((featurep 'utf-2000)
+ (insert "(require 'mule)\n;;;###coding system: utf-8\n")
+ (setq buffer-file-coding-system 'utf-8)
+ )
+ (t
+ (insert "(require 'mule)\n;;;###coding system: escape-quoted\n")
+ (setq buffer-file-coding-system 'escape-quoted)
+ ))
;; #### Lazy loading not yet implemented for MULE files
;; mrb - Fix this someday.
(save-excursion