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)
53 (followup-to ew-scan-unibyte-none)
56 (defvar ew-decode-field-default-syntax '(ew-scan-unibyte-unstructured))
58 (defvar ew-parse-error-sit-for-seconds 0)
62 (defconst ew-token-regexp "[-!#-'*+0-9A-Z^-~]+")
63 (defconst ew-encoded-text-regexp
64 (if ew-permit-null-encoded-text
68 (defconst ew-encoded-word-regexp
69 (concat (regexp-quote "=?")
70 "\\(" ew-token-regexp "\\)"
72 "\\(" ew-token-regexp "\\)"
74 "\\(" ew-encoded-text-regexp "\\)"
77 (defconst ew-anchored-encoded-word-regexp
78 (concat "\\`" ew-encoded-word-regexp "\\'"))
91 "\\(==\\|[A-Za-z0-9+/]=\\)"
96 "\\`\\([^=?]\\|=[0-9A-Fa-f][0-9A-Fa-f]\\)*\\'")
98 (defconst ew-quoting-char ?+)
99 (defconst ew-quoting-chars-regexp
100 (concat (regexp-quote (char-to-string ew-quoting-char)) "*"))
102 (defconst ew-type2-regexp
103 (concat (regexp-quote "=?")
104 "\\(" ew-token-regexp "\\)"
106 "\\(" ew-token-regexp "\\)"
108 "\\(" ew-encoded-text-regexp "\\)"
112 (defconst ew-byte-decoder-alist
113 '(("B" . ew-decode-b)
114 ("Q" . ew-decode-q)))
116 (defconst ew-byte-checker-alist
120 ;;; utilities for variables.
122 (defun ew-dynamic-options ()
124 ew-default-mime-charset
126 (if ew-decode-sticked-encoded-word 1 0)
127 (if ew-decode-quoted-encoded-word 2 0)
128 (if ew-ignore-75bytes-limit 4 0)
129 (if ew-ignore-76bytes-limit 8 0)
130 (if ew-permit-sticked-comment 16 0)
131 (if ew-permit-sticked-special 32 0)
132 (if ew-remove-bare-crlf 64 0)
133 (if ew-permit-null-encoded-text 128 0)