* gnus-score.el (gnus-score-headers): Move the "Scoring..."
[gnus] / lisp / ietf-drums.el
1 ;;; ietf-drums.el --- Functions for parsing RFC822bis headers
2 ;; Copyright (C) 1998, 1999, 2000
3 ;;        Free Software Foundation, Inc.
4
5 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
6 ;; This file is part of GNU Emacs.
7
8 ;; GNU Emacs is free software; you can redistribute it and/or modify
9 ;; it under the terms of the GNU General Public License as published by
10 ;; the Free Software Foundation; either version 2, or (at your option)
11 ;; any later version.
12
13 ;; GNU Emacs is distributed in the hope that it will be useful,
14 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
15 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 ;; GNU General Public License for more details.
17
18 ;; You should have received a copy of the GNU General Public License
19 ;; along with GNU Emacs; see the file COPYING.  If not, write to the
20 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21 ;; Boston, MA 02111-1307, USA.
22
23 ;;; Commentary:
24
25 ;; DRUMS is an IETF Working Group that works (or worked) on the
26 ;; successor to RFC822, "Standard For The Format Of Arpa Internet Text
27 ;; Messages".  This library is based on
28 ;; draft-ietf-drums-msg-fmt-05.txt, released on 1998-08-05.
29
30 ;;; Code:
31
32 (eval-when-compile (require 'cl))
33 (require 'time-date)
34 (require 'mm-util)
35
36 (defvar ietf-drums-no-ws-ctl-token "\001-\010\013\014\016-\037\177"
37   "US-ASCII control characters excluding CR, LF and white space.")
38 (defvar ietf-drums-text-token "\001-\011\013\014\016-\177"
39   "US-ASCII characters exlcuding CR and LF.")
40 (defvar ietf-drums-specials-token "()<>[]:;@\\,.\""
41   "Special characters.")
42 (defvar ietf-drums-quote-token "\\"
43   "Quote character.")
44 (defvar ietf-drums-wsp-token " \t"
45   "White space.")
46 (defvar ietf-drums-fws-regexp
47   (concat "[" ietf-drums-wsp-token "]*\n[" ietf-drums-wsp-token "]+")
48   "Folding white space.")
49 (defvar ietf-drums-atext-token "-^a-zA-Z0-9!#$%&'*+/=?_`{|}~"
50   "Textual token.")
51 (defvar ietf-drums-dot-atext-token "-^a-zA-Z0-9!#$%&'*+/=?_`{|}~."
52   "Textual token including full stop.")
53 (defvar ietf-drums-qtext-token
54   (concat ietf-drums-no-ws-ctl-token "\041\043-\133\135-\177")
55   "Non-white-space control characaters, plus the rest of ASCII excluding backslash and doublequote.")
56 (defvar ietf-drums-tspecials "][()<>@,;:\\\"/?="
57   "Tspec