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+)
51 (defvar ew-decode-field-default-syntax '(ew-scan-unibyte-unstructured))
53 (defvar ew-parse-error-sit-for-seconds 0)
57 (defconst ew-token-regexp "[-!#-'*+0-9A-Z^-~]+")
58 (defconst ew-encoded-text-regexp
59 (if ew-permit-null-encoded-text
63 (defconst ew-encoded-word-regexp
64 (concat (regexp-quote "=?")
65 "\\(" ew-token-regexp "\\)"
67 "\\(" ew-token-regexp "\\)"
69 "\\(" ew-encoded-text-regexp "\\)"
72 (defconst ew-anchored-encoded-word-regexp
73 (concat "\\`" ew-encoded-word-regexp "\\'"))
86 "\\(==\\|[A-Za-z0-9+/]=\\)"
91 "\\`\\([^=?]\\|=[0-9A-Fa-f][0-9A-Fa-f]\\)*\\'")
93 (defconst ew-quoting-char ?+)
94 (defconst ew-quoting-chars-regexp
95 (concat (regexp-quote (char-to-string ew-quoting-char)) "*"))
97 (defconst ew-type2-regexp
98 (concat (regexp-quote "=?")
99 "\\(" ew-token-regexp "\\)"
101 "\\(" ew-token-regexp "\\)"
103 "\\(" ew-encoded-text-regexp "\\)"
107 (defconst ew-byte-decoder-alist
108 '(("B" . ew-decode-b)
109 ("Q" . ew-decode-q)))
111 (defconst ew-byte-checker-alist
115 ;;; utilities for variables.
117 (defun ew-dynamic-options ()
119 ew-default-mime-charset
121 (if ew-decode-sticked-encoded-word 1 0)
122 (if ew-decode-quoted-encoded-word 2 0)
123 (if ew-ignore-75bytes-limit 4 0)
124 (if ew-ignore-76bytes-limit 8 0)
125 (if ew-permit-sticked-comment 16 0)
126 (if ew-permit-sticked-special 32 0)
127 (if ew-remove-bare-crlf 64 0)
128 (if ew-permit-null-encoded-text 128 0)