+(defun mm-coding-system-p (sym)
+ "Return non-nil if SYM is a coding system."
+ (or (and (fboundp 'coding-system-p) (coding-system-p sym))
+ (memq sym (mm-get-coding-system-list))))
+
+(defvar mm-binary-coding-system
+ (cond
+ ((mm-coding-system-p 'binary) 'binary)
+ ((mm-coding-system-p 'no-conversion) 'no-conversion)
+ (t nil))
+ "100% binary coding system.")
+
+(defvar mm-text-coding-system
+ (or (if (memq system-type '(windows-nt ms-dos ms-windows))
+ (and (mm-coding-system-p 'raw-text-dos) 'raw-text-dos)
+ (and (mm-coding-system-p 'raw-text) 'raw-text))
+ mm-binary-coding-system)
+ "Text-safe coding system (For removing ^M).")
+
+(defvar mm-text-coding-system-for-write nil
+ "Text coding system for write.")
+
+(defvar mm-auto-save-coding-system
+ (cond
+ ((mm-coding-system-p 'emacs-mule)
+ (if (memq system-type '(windows-nt ms-dos ms-windows))
+ (if (mm-coding-system-p 'emacs-mule-dos)
+ 'emacs-mule-dos mm-binary-coding-system)
+ 'emacs-mule))
+ ((mm-coding-system-p 'escape-quoted) 'escape-quoted)
+ (t mm-binary-coding-system))
+ "Coding system of auto save file.")
+