(defconst rfc822/RCS-ID
- "$Id: tl-822.el,v 7.38 1996-08-28 12:50:12 morioka Exp $")
+ "$Id: tl-822.el,v 7.49 1996-08-28 17:06:26 morioka Exp $")
(defconst rfc822/version (get-version-string rfc822/RCS-ID))
;;; @ header
;;;
-(defalias 'rfc822/narrow-to-header 'std11-narrow-to-header)
-(defalias 'rfc822/get-header-string 'std11-header-string)
+(defalias 'rfc822/narrow-to-header 'std11-narrow-to-header)
+(defalias 'rfc822/get-header-string 'std11-header-string)
(defalias 'rfc822/get-header-string-except 'std11-header-string-except)
+(defalias 'rfc822/get-field-names 'std11-collect-field-names)
;;; @ field
;;;
-(defconst rfc822/field-name-regexp "[!-9;-~]+")
-
-(defconst rfc822/field-top-regexp
- (concat "\\(" rfc822/field-name-regexp "\\):"))
-
-(defun rfc822/get-field-names (&optional boundary)
- (save-excursion
- (save-restriction
- (rfc822/narrow-to-header boundary)
- (goto-char (point-min))
- (let ((pat (concat "^\\(" rfc822/field-name-regexp "\\):"))
- dest name)
- (while (re-search-forward pat nil t)
- (setq name (buffer-substring (match-beginning 1)(match-end 1)))
- (or (member name dest)
- (setq dest (cons name dest))
- )
- )
- dest))))
-
-(defalias `rfc822/field-end 'std11-field-end)
-
-(defalias 'rfc822/get-field-body 'std11-field-body)
-
-(defun rfc822/get-field-bodies (field-names &optional default-value boundary)
- (let ((case-fold-search t))
- (save-excursion
- (save-restriction
- (rfc822/narrow-to-header boundary)
- (let* ((dest (make-list (length field-names) default-value))
- (s-rest field-names)
- (d-rest dest)
- field-name)
- (while (setq field-name (car s-rest))
- (goto-char (point-min))
- (if (re-search-forward (concat "^" field-name ":[ \t]*") nil t)
- (setcar d-rest
- (buffer-substring-no-properties
- (match-end 0)
- (rfc822/field-end))))
- (setq s-rest (cdr s-rest)
- d-rest (cdr d-rest))
- )
- dest)))))
+(defalias `rfc822/field-end 'std11-field-end)
+(defalias 'rfc822/get-field-body 'std11-find-field-body)
+(defalias 'rfc822/get-field-bodies 'std11-find-field-bodies)
;;; @ quoting
;;; @ unfolding
;;;
-(defun rfc822/unfolding-string (str)
- (let ((dest ""))
- (while (string-match "\n\\s +" str)
- (setq dest (concat dest (substring str 0 (match-beginning 0)) " "))
- (setq str (substring str (match-end 0)))
- )
- (concat dest str)
- ))
+(defalias 'rfc822/unfolding-string 'std11-unfold-string)
;;; @ lexical analyze
(defconst rfc822/non-dtext-chars "][")
(defconst rfc822/non-ctext-chars "()")
-(defun rfc822/analyze-spaces (str)
- (let ((i (string-match (concat "[^" rfc822/space-chars "]") str)))
- (if i
- (if (> i 0)
- (cons (cons 'spaces (substring str 0 i))
- (substring str i)
- ))
- (if (not (string-equal str ""))
- (cons (cons 'spaces str) "")
- ))))
-
-(defun rfc822/analyze-special (str)
- (if (and (> (length str) 0)
- (find (elt str 0) rfc822/special-chars)
- )
- (cons (cons 'specials (substring str 0 1))
- (substring str 1)
- ))
- )
+(defalias 'rfc822/analyze-spaces 'std11-analyze-spaces)
+(defalias 'rfc822/analyze-special 'std11-analyze-special)
(defun rfc822/analyze-atom (str)
(let ((i (string-match (concat "[" rfc822/non-atom-chars "]") str)))