tm 7.32.
[elisp/tm.git] / tm-def.el
index 297a3b3..2aba73c 100644 (file)
--- a/tm-def.el
+++ b/tm-def.el
@@ -6,7 +6,7 @@
 ;;;
 ;;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;;; Version:
-;;;    $Id: tm-def.el,v 7.1 1995/11/10 10:43:15 morioka Exp $
+;;;    $Id: tm-def.el,v 7.5 1995/12/09 04:11:11 morioka Exp $
 ;;; Keywords: mail, news, MIME, multimedia, definition
 ;;;
 ;;; This file is part of tm (Tools for MIME).
@@ -35,7 +35,7 @@
 ;;;
 
 (defconst mime/output-buffer-name "*MIME-out*")
-(defconst mime/decoding-buffer-name "*MIME-decoding*")
+(defconst mime/temp-buffer-name " *MIME-temp*")
 
 
 ;;; @ for various Emacs variants
@@ -204,6 +204,57 @@ ROT47 will be performed for Japanese text in any case."
          (insert str)))))
 
 
+;;; @ field
+;;;
+
+(defun tm:add-fields (sym field-list &optional regexp-sym)
+  (or regexp-sym
+      (setq regexp-sym
+           (let ((name (symbol-name sym)))
+             (intern
+              (concat (if (string-match "\\(.*\\)-list" name)
+                          (substring name 0 (match-end 1))
+                        name)
+                      "-regexp")
+              )))
+      )
+  (let ((fields (eval sym)))
+    (mapcar (function
+            (lambda (field)
+              (or (member field fields)
+                  (setq fields (cons field fields))
+                  )
+              ))
+           (reverse field-list)
+           )
+    (set regexp-sym
+        (concat "^" (apply (function regexp-or) fields) ":"))
+    (set sym fields)
+    ))
+
+(defun tm:delete-fields (sym field-list &optional regexp-sym)
+  (or regexp-sym
+      (setq regexp-sym
+           (let ((name (symbol-name sym)))
+             (intern
+              (concat (if (string-match "\\(.*\\)-list" name)
+                          (substring name 0 (match-end 1))
+                        name)
+                      "-regexp")
+              )))
+      )
+  (let ((fields (eval sym)))
+    (mapcar (function
+            (lambda (field)
+              (setq fields (delete field fields))
+              ))
+           field-list)
+    (set regexp-sym
+        (concat "^" (apply (function regexp-or) fields) ":"))
+    (set sym fields)
+    ))
+
+
 ;;; @ end
 ;;;