3 ;;; user customizable variables.
5 (defvar ew-decode-sticked-encoded-word nil)
6 (defvar ew-decode-quoted-encoded-word nil)
7 (defvar ew-ignore-75bytes-limit nil)
8 (defvar ew-ignore-76bytes-limit nil)
9 (defvar ew-permit-sticked-comment nil)
10 (defvar ew-permit-sticked-special nil)
11 (defvar ew-permit-null-encoded-text nil) ; affect when loading time.
13 (defvar ew-remove-bare-crlf nil)
14 (defvar ew-default-mime-charset 'x-ctext)
17 (defvar ew-decode-field-syntax-alist
18 '((from ew-scan-unibyte-std11 . ew:tag-mailbox+)
19 (sender ew-scan-unibyte-std11 . ew:tag-mailbox)
20 (to ew-scan-unibyte-std11 . ew:tag-address+)
21 (resent-to ew-scan-unibyte-std11 . ew:tag-address+)
22 (cc ew-scan-unibyte-std11 . ew:tag-address+)
23 (resent-cc ew-scan-unibyte-std11 . ew:tag-address+)
24 (bcc ew-scan-unibyte-std11 . ew:tag-address*)
25 (resent-bcc ew-scan-unibyte-std11 . ew:tag-address*)
26 (message-id ew-scan-unibyte-std11)
27 (resent-message-id ew-scan-unibyte-std11)
28 (in-reply-to ew-scan-unibyte-std11 . ew:tag-phrase-msg-id*)
29 (references ew-scan-unibyte-std11 . ew:tag-phrase-msg-id*)
30 (keywords ew-scan-unibyte-std11 . ew:tag-phrase*)
31 (subject ew-scan-unibyte-unstructured)
32 (comments ew-scan-unibyte-unstructured)
33 (encrypted ew-scan-unibyte-std11)
34 (date ew-scan-unibyte-std11)
35 (reply-to ew-scan-unibyte-std11 . ew:tag-address+)
36 (received ew-scan-unibyte-std11)
37 (resent-reply-to ew-scan-unibyte-std11 . ew:tag-address+)
38 (resent-from ew-scan-unibyte-std11 . ew:tag-mailbox+)
39 (resent-sender ew-scan-unibyte-std11 . ew:tag-mailbox)
40 (resent-date ew-scan-unibyte-std11)
41 (return-path ew-scan-unibyte-std11)
42 (mime-version ew-scan-unibyte-std11)
43 (content-type ew-scan-unibyte-mime)
44 (content-transfer-encoding ew-scan-unibyte-mime)
45 (content-id ew-scan-unibyte-std11)
46 (content-description ew-scan-unibyte-unstructured)
47 (content-disposition ew-scan-unibyte-mime)
48 (approved ew-scan-unibyte-std11 . ew:tag-address+)
49 (newsgroups ew-scan-unibyte-none)
50 (path ew-scan-unibyte-none)
51 (lines ew-scan-unibyte-none)
52 (xref ew-scan-unibyte-none)
55 (defvar ew-decode-field-default-syntax '(ew-scan-unibyte-unstructured))
57 (defvar ew-parse-error-sit-for-seconds 0)
61 (defconst ew-token-regexp "[-!#-'*+0-9A-Z^-~]+")
62 (defconst ew-encoded-text-regexp
63 (if ew-permit-null-encoded-text
67 (defconst ew-encoded-word-regexp
68 (concat (regexp-quote "=?")
69 "\\(" ew-token-regexp "\\)"
71 "\\(" ew-token-regexp "\\)"
73 "\\(" ew-encoded-text-regexp "\\)"
76 (defconst ew-anchored-encoded-word-regexp
77 (concat "\\`" ew-encoded-word-regexp "\\'"))
90 "\\(==\\|[A-Za-z0-9+/]=\\)"
95 "\\`\\([^=?]\\|=[0-9A-Fa-f][0-9A-Fa-f]\\)*\\'")
97 (defconst ew-quoting-char ?+)
98 (defconst ew-quoting-chars-regexp
99 (concat (regexp-quote (char-to-string ew-quoting-char)) "*"))
101 (defconst ew-type2-regexp
102 (concat (regexp-quote "=?")
103 "\\(" ew-token-regexp "\\)"
105 "\\(" ew-token-regexp "\\)"
107 "\\(" ew-encoded-text-regexp "\\)"
111 (defconst ew-byte-decoder-alist
112 '(("B" . ew-decode-b)
113 ("Q" . ew-decode-q)))
115 (defconst ew-byte-checker-alist
119 ;;; utilities for variables.
121 (defun ew-dynamic-options ()
123 ew-default-mime-charset
125 (if ew-decode-sticked-encoded-word 1 0)
126 (if ew-decode-quoted-encoded-word 2 0)
127 (if ew-ignore-75bytes-limit 4 0)
128 (if ew-ignore-76bytes-limit 8 0)
129 (if ew-permit-sticked-comment 16 0)
130 (if ew-permit-sticked-special 32 0)
131 (if ew-remove-bare-crlf 64 0)
132 (if ew-permit-null-encoded-text 128 0)