-;;; mime-def.el --- definition module for SEMI
+;;; mime-def.el --- definition module about MIME
;; Copyright (C) 1995,1996,1997,1998 Free Software Foundation, Inc.
;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
;; Keywords: definition, MIME, multimedia, mail, news
-;; This file is part of SEMI (Spadework for Emacs MIME Interfaces).
+;; This file is part of FLIM (Faithful Library about Internet Message).
;; This program is free software; you can redistribute it and/or
;; modify it under the terms of the GNU General Public License as
;;; Code:
(defconst mime-spadework-module-version-string
- "FLIM 1.0.1 - \"Ky\e-Dòto\"\e-A ")
+ "Chao 1.3.0 - \"Kuinabashi\"")
+
+
+;;; @ variables
+;;;
(require 'custom)
(custom-handle-keyword 'default-mime-charset :group 'mime
'custom-variable)
+(defcustom mime-temp-directory (or (getenv "MIME_TMP_DIR")
+ (getenv "TM_TMP_DIR")
+ (getenv "TMPDIR")
+ (getenv "TMP")
+ (getenv "TEMP")
+ "/tmp/")
+ "*Directory for temporary files."
+ :group 'mime
+ :type 'directory)
+
+
+;;; @ required functions
+;;;
+
(unless (fboundp 'butlast)
(defun butlast (x &optional n)
"Returns a copy of LIST with the last N elements removed."
(substring string (match-end 0))
string))
+(defsubst regexp-* (regexp)
+ (concat regexp "*"))
+
+(defsubst regexp-or (&rest args)
+ (concat "\\(" (mapconcat (function identity) args "\\|") "\\)"))
+
+
+;;; @ about STD 11
+;;;
+
+(defconst std11-quoted-pair-regexp "\\\\.")
+(defconst std11-non-qtext-char-list '(?\" ?\\ ?\r ?\n))
+(defconst std11-qtext-regexp
+ (concat "[^" (char-list-to-string std11-non-qtext-char-list) "]"))
+(defconst std11-quoted-string-regexp
+ (concat "\""
+ (regexp-*
+ (regexp-or std11-qtext-regexp std11-quoted-pair-regexp)
+ )
+ "\""))
+
-;;; @ definitions about MIME
+;;; @ about MIME
;;;
(defconst mime-tspecials "][()<>@,\;:\\\"/?=")
(concat mime-token-regexp "/" mime-token-regexp))
+;;; @@ Quoted-Printable
+;;;
+
+(defconst quoted-printable-hex-chars "0123456789ABCDEF")
+
+(defconst quoted-printable-octet-regexp
+ (concat "=[" quoted-printable-hex-chars
+ "][" quoted-printable-hex-chars "]"))
+
+
+;;; @ utility
+;;;
+
+(defsubst mime-type/subtype-string (type &optional subtype)
+ "Return type/subtype string from TYPE and SUBTYPE."
+ (if type
+ (if subtype
+ (format "%s/%s" type subtype)
+ (format "%s" type))))
+
+
;;; @ end
;;;