(rfc822/wrap-as-quoted-string): New alias.
[elisp/mu-cite.git] / tl-822.el
1 ;;; tl-822.el --- RFC 822 parser for GNU Emacs
2
3 ;; Copyright (C) 1995,1996 Free Software Foundation, Inc.
4
5 ;; Author:   MORIOKA Tomohiko <morioka@jaist.ac.jp>
6 ;; Keywords: mail, news, RFC 822
7
8 ;; This file is part of MU (Message Utilities).
9
10 ;; This program is free software; you can redistribute it and/or
11 ;; modify it under the terms of the GNU General Public License as
12 ;; published by the Free Software Foundation; either version 2, or (at
13 ;; your option) any later version.
14
15 ;; This program is distributed in the hope that it will be useful, but
16 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18 ;; General Public License for more details.
19
20 ;; You should have received a copy of the GNU General Public License
21 ;; along with This program; see the file COPYING.  If not, write to
22 ;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 ;; Boston, MA 02111-1307, USA.
24
25 ;;; Code:
26
27 (require 'tl-seq)
28 (require 'tl-str)
29 (require 'std11)
30
31
32 (defconst rfc822/RCS-ID
33   "$Id: tl-822.el,v 7.66 1996-09-08 18:09:42 morioka Exp $")
34 (defconst rfc822/version (get-version-string rfc822/RCS-ID))
35
36
37 ;;; @ header
38 ;;;
39
40 (defalias 'rfc822/narrow-to-header      'std11-narrow-to-header)
41 (defalias 'rfc822/get-header-string     'std11-header-string)
42 (defalias 'rfc822/get-header-string-except 'std11-header-string-except)
43 (defalias 'rfc822/get-field-names       'std11-collect-field-names)
44
45
46 ;;; @ field
47 ;;;
48
49 (defalias 'rfc822/field-end             'std11-field-end)
50 (defalias 'rfc822/get-field-body        'std11-field-body)
51 (defalias 'rfc822/get-field-bodies      'std11-field-bodies)
52
53
54 ;;; @ quoting
55 ;;;
56
57 (defconst rfc822/linear-white-space-regexp "\\(\n?[ \t]\\)+")
58 (defconst rfc822/quoted-pair-regexp "\\\\.")
59 (defconst rfc822/qtext-regexp
60   (concat "[^" (char-list-to-string std11-non-qtext-char-list) "]"))
61 (defconst rfc822/quoted-string-regexp
62   (concat "\""
63           (regexp-*
64            (regexp-or rfc822/qtext-regexp rfc822/quoted-pair-regexp)
65            )
66           "\""))
67
68 (defalias 'rfc822/wrap-as-quoted-string 'std11-wrap-as-quoted-string)
69
70 (defun rfc822/strip-quoted-pair (str)
71   (let ((dest "")
72         (i 0)
73         (len (length str))
74         chr flag)
75     (while (< i len)
76       (setq chr (elt str i))
77       (if (or flag (not (eq chr ?\\)))
78           (progn
79             (setq dest (concat dest (char-to-string chr)))
80             (setq flag nil)
81             )
82         (setq flag t)
83         )
84       (setq i (+ i 1))
85       )
86     dest))
87
88 (defun rfc822/strip-quoted-string (str)
89   (rfc822/strip-quoted-pair
90    (let ((max (- (length str) 1))
91          )
92      (if (and (eq (elt str 0) ?\")
93               (eq (elt str max) ?\")
94               )
95          (substring str 1 max)
96        str)
97      )))
98
99
100 ;;; @ unfolding
101 ;;;
102
103 (defalias 'rfc822/unfolding-string 'std11-unfold-string)
104
105
106 ;;; @ lexical analyze
107 ;;;
108
109 (defalias 'rfc822/lexical-analyze 'std11-lexical-analyze)
110
111
112 ;;; @ parser
113 ;;;
114
115 (defalias 'rfc822/parse-address         'std11-parse-address)
116 (defalias 'rfc822/parse-addresses       'std11-parse-addresses)
117 (defalias 'rfc822/address-string        'std11-address-string)
118 (defalias 'rfc822/full-name-string      'std11-full-name-string)
119 (defalias 'rfc822/extract-address-components
120   'std11-extract-address-components)
121
122
123 ;;; @ end
124 ;;;
125
126 (provide 'tl-822)
127
128 ;;; tl-822.el ends here