X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=mime-def.el;h=8b21591caaca78da3a484b710cb1fd5e64481fdc;hb=dc057a908a10a53dd190af93208142a7319aa9a3;hp=0809c6a41ab2fc60612f4e57c14a657ae9a1efad;hpb=4dc7cf2097a13a3101fcf9e2efefc207cc926f05;p=elisp%2Fflim.git diff --git a/mime-def.el b/mime-def.el index 0809c6a..8b21591 100644 --- a/mime-def.el +++ b/mime-def.el @@ -1,11 +1,11 @@ -;;; 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 ;; 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 @@ -25,7 +25,11 @@ ;;; Code: (defconst mime-spadework-module-version-string - "FLIM 1.0.1 - \"Ky-Dòto\"-A ") + "Chao 1.3.0 - \"Kuinabashi\"") + + +;;; @ variables +;;; (require 'custom) @@ -37,6 +41,20 @@ (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." @@ -59,8 +77,29 @@ (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 "][()<>@,\;:\\\"/?=") @@ -71,6 +110,27 @@ (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 ;;;