(require 'mcharset)
(require 'alist)
-(eval-when-compile (require 'cl)) ; list*
-
(eval-and-compile
- (defconst mime-library-product ["FLIM" (1 13 1) "Tawaramoto"]
+ (defconst mime-library-product ["CLIME" (1 13 3) "\e$BJ?C<\e(B"]
"Product name, version number and code name of MIME-library package.")
)
(defmacro mime-product-name (product)
- `(aref ,product 0))
+ (` (aref (, product) 0)))
(defmacro mime-product-version (product)
- `(aref ,product 1))
+ (` (aref (, product) 1)))
(defmacro mime-product-code-name (product)
- `(aref ,product 2))
+ (` (aref (, product) 2)))
(defconst mime-library-version
(eval-when-compile
(concat (mime-product-name mime-library-product) " "
- (mapconcat #'number-to-string
+ (mapconcat (function int-to-string)
(mime-product-version mime-library-product) ".")
" - \"" (mime-product-code-name mime-library-product) "\"")))
;;; @ variables
;;;
-(require 'custom)
-
(defgroup mime '((default-mime-charset custom-variable))
"Emacs MIME Interfaces"
:group 'news
;;;
(defsubst make-mime-content-type (type subtype &optional parameters)
- (list* (cons 'type type)
- (cons 'subtype subtype)
- (nreverse parameters))
- )
+ (cons (cons 'type type)
+ (cons (cons 'subtype subtype)
+ (nreverse parameters))))
(defsubst mime-content-type-primary-type (content-type)
"Return primary-type of CONTENT-TYPE."
(autoload 'mime-entity-content-type "mime")
(autoload 'mime-parse-multipart "mime-parse")
(autoload 'mime-parse-encapsulated "mime-parse")
+(autoload 'mime-entity-content "mime")
(luna-define-class mime-entity ()
(location
))
))
+(luna-define-method mime-insert-text-content ((entity mime-entity))
+ (insert
+ (decode-mime-charset-string (mime-entity-content entity)
+ (or (mime-content-type-parameter
+ (mime-entity-content-type entity)
+ "charset")
+ default-mime-charset)
+ 'CRLF)
+ ))
+
;;; @ for mm-backend
;;;
(defmacro mm-expand-class-name (type)
- `(intern (format "mime-%s-entity" ,type)))
+ (` (intern (format "mime-%s-entity" (, type)))))
(defmacro mm-define-backend (type &optional parents)
- `(luna-define-class ,(mm-expand-class-name type)
- ,(nconc (mapcar (lambda (parent)
- (mm-expand-class-name parent)
- )
- parents)
- '(mime-entity))))
+ (` (luna-define-class (, (mm-expand-class-name type))
+ (, (nconc (mapcar (function
+ (lambda (parent)
+ (mm-expand-class-name parent)
+ ))
+ parents)
+ '(mime-entity))))))
(defmacro mm-define-method (name args &rest body)
(or (eq name 'initialize-instance)
(cons (list (car spec)
(mm-expand-class-name (nth 1 spec)))
(cdr args)))
- `(luna-define-method ,name ,args ,@body)
+ (` (luna-define-method (, name) (, args) (,@ body)))
))
(put 'mm-define-method 'lisp-indent-function 'defun)
"Define NAME as a service for Content-Transfer-Encodings.
If ARGS is specified, NAME is defined as a generic function for the
service."
- `(progn
- (add-to-list 'mel-service-list ',name)
- (defvar ,(intern (format "%s-obarray" name)) (make-vector 7 0))
- ,@(if args
- `((defun ,name ,args
- ,@rest
- (funcall (mel-find-function ',name ,(car (last args)))
- ,@(luna-arglist-to-arguments (butlast args)))
- )))
- ))
+ (` (progn
+ (add-to-list 'mel-service-list '(, name))
+ (defvar (, (intern (format "%s-obarray" name))) (make-vector 7 0))
+ (,@ (if args
+ (` ((defun (, name) (, args)
+ (,@ rest)
+ (funcall (mel-find-function '(, name)
+ (, (car (last args))))
+ (,@ (luna-arglist-to-arguments (butlast args))))
+ )))))
+ )))
(put 'mel-define-service 'lisp-indent-function 'defun)
If PARENTS is specified, TYPE inherits PARENTS.
Each parent must be backend name (string)."
(cons 'progn
- (mapcar (lambda (parent)
- `(mel-copy-backend ,parent ,type)
- )
+ (mapcar (function
+ (lambda (parent)
+ (` (mel-copy-backend (, parent) (, type)))
+ ))
parents)))
(defmacro mel-define-method (name args &rest body)
and (nth 1 (car (last ARGS))) is name of backend (encoding)."
(let* ((specializer (car (last args)))
(class (nth 1 specializer)))
- `(progn
- (mel-define-service ,name)
- (fset (intern ,class ,(intern (format "%s-obarray" name)))
- (lambda ,(butlast args)
- ,@body)))))
+ (` (progn
+ (mel-define-service (, name))
+ (fset (intern (, class) (, (intern (format "%s-obarray" name))))
+ (function
+ (lambda (, (butlast args))
+ (,@ body))))))))
(put 'mel-define-method 'lisp-indent-function 'defun)
(args (cdr spec))
(specializer (car (last args)))
(class (nth 1 specializer)))
- `(let (sym)
- (mel-define-service ,name)
- (setq sym (intern ,class ,(intern (format "%s-obarray" name))))
- (or (fboundp sym)
- (fset sym (symbol-function ,function))))))
+ (` (let (sym)
+ (mel-define-service (, name))
+ (setq sym (intern (, class) (, (intern (format "%s-obarray" name)))))
+ (or (fboundp sym)
+ (fset sym (symbol-function (, function))))))))
(defmacro mel-define-function (function spec)
(let* ((name (car spec))
(args (cdr spec))
(specializer (car (last args)))
(class (nth 1 specializer)))
- `(progn
- (define-function ,function
- (intern ,class ,(intern (format "%s-obarray" name))))
- )))
+ (` (progn
+ (define-function (, function)
+ (intern (, class) (, (intern (format "%s-obarray" name)))))
+ ))))
(defvar base64-dl-module
(if (and (fboundp 'base64-encode-string)