X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=ew-var.el;h=9ac619bda96ea4a0fb2062df1d1c8b4fd3602ce1;hb=e3747e8f4ecbf39d106d117fb494506089cc5c2a;hp=5ffa73e0c10e6a0b3071a8c3787bd411016bbe24;hpb=78a33e3e6fffbebddc10ade7a980201dad30acd8;p=elisp%2Fflim.git diff --git a/ew-var.el b/ew-var.el index 5ffa73e..9ac619b 100644 --- a/ew-var.el +++ b/ew-var.el @@ -9,67 +9,75 @@ (defvar ew-permit-sticked-comment nil) (defvar ew-permit-sticked-special nil) -(defvar ew-parse-error-sit-for-seconds 0) - -;;; anonymous function to decode ground string. -;; NOTE: STR is CRLF-form and it should return as CRLF-form. -(defvar ew-decode-us-ascii (lambda (str) (decode-coding-string str 'iso-latin-1-unix))) +(defvar ew-remove-bare-crlf nil) +(defvar ew-default-mime-charset 'x-ctext) ;;; (defvar ew-decode-field-syntax-alist -'(("from" ew-scan-unibyte-std11 . ew:tag-mailbox+) - ("sender" ew-scan-unibyte-std11 . ew:tag-mailbox) - ("to" ew-scan-unibyte-std11 . ew:tag-address+) - ("resent-to" ew-scan-unibyte-std11 . ew:tag-address+) - ("cc" ew-scan-unibyte-std11 . ew:tag-address+) - ("resent-cc" ew-scan-unibyte-std11 . ew:tag-address+) - ("bcc" ew-scan-unibyte-std11 . ew:tag-address*) - ("resent-bcc" ew-scan-unibyte-std11 . ew:tag-address*) - ("message-id" ew-scan-unibyte-std11) - ("resent-message-id" ew-scan-unibyte-std11) - ("in-reply-to" ew-scan-unibyte-std11 . ew:tag-phrase-msg-id*) - ("references" ew-scan-unibyte-std11 . ew:tag-phrase-msg-id*) - ("keywords" ew-scan-unibyte-std11 . ew:tag-phrase*) - ("subject" ew-scan-unibyte-unstructured) - ("comments" ew-scan-unibyte-unstructured) - ("encrypted" ew-scan-unibyte-std11) - ("date" ew-scan-unibyte-std11) - ("reply-to" ew-scan-unibyte-std11 . ew:tag-address+) - ("received" ew-scan-unibyte-std11) - ("resent-reply-to" ew-scan-unibyte-std11 . ew:tag-address+) - ("resent-from" ew-scan-unibyte-std11 . ew:tag-mailbox+) - ("resent-sender" ew-scan-unibyte-std11 . ew:tag-mailbox) - ("resent-date" ew-scan-unibyte-std11) - ("return-path" ew-scan-unibyte-std11) - ("mime-version" ew-scan-unibyte-std11) - ("content-type" ew-scan-unibyte-mime) - ("content-transfer-encoding" ew-scan-unibyte-mime) - ("content-id" ew-scan-unibyte-mime) - ("content-description" ew-scan-unibyte-unstructured) +'((from ew-scan-unibyte-std11 . ew:tag-mailbox+) + (sender ew-scan-unibyte-std11 . ew:tag-mailbox) + (to ew-scan-unibyte-std11 . ew:tag-address+) + (resent-to ew-scan-unibyte-std11 . ew:tag-address+) + (cc ew-scan-unibyte-std11 . ew:tag-address+) + (resent-cc ew-scan-unibyte-std11 . ew:tag-address+) + (bcc ew-scan-unibyte-std11 . ew:tag-address*) + (resent-bcc ew-scan-unibyte-std11 . ew:tag-address*) + (message-id ew-scan-unibyte-std11) + (resent-message-id ew-scan-unibyte-std11) + (in-reply-to ew-scan-unibyte-std11 . ew:tag-phrase-msg-id*) + (references ew-scan-unibyte-std11 . ew:tag-phrase-msg-id*) + (keywords ew-scan-unibyte-std11 . ew:tag-phrase*) + (subject ew-scan-unibyte-unstructured) + (comments ew-scan-unibyte-unstructured) + (encrypted ew-scan-unibyte-std11) + (date ew-scan-unibyte-std11) + (reply-to ew-scan-unibyte-std11 . ew:tag-address+) + (received ew-scan-unibyte-std11) + (resent-reply-to ew-scan-unibyte-std11 . ew:tag-address+) + (resent-from ew-scan-unibyte-std11 . ew:tag-mailbox+) + (resent-sender ew-scan-unibyte-std11 . ew:tag-mailbox) + (resent-date ew-scan-unibyte-std11) + (return-path ew-scan-unibyte-std11) + (mime-version ew-scan-unibyte-std11) + (content-type ew-scan-unibyte-mime) + (content-transfer-encoding ew-scan-unibyte-mime) + (content-id ew-scan-unibyte-std11) + (content-description ew-scan-unibyte-unstructured) + (content-disposition ew-scan-unibyte-mime) + (approved ew-scan-unibyte-std11 . ew:tag-address+) )) (defvar ew-decode-field-default-syntax '(ew-scan-unibyte-unstructured)) +(defvar ew-parse-error-sit-for-seconds 0) + ;;; constants. -(defconst ew-token-regexp "[-!#-'*+0-9A-Z^-~]+") -(defconst ew-encoded-text-regexp "[!->@-~]+") +(eval-and-compile + (defconst ew-token-regexp "[-!#-'*+0-9A-Z^-~]+") + (defconst ew-encoded-text-regexp "[!->@-~]+") +) (defconst ew-encoded-word-regexp - (concat (regexp-quote "=?") - "\\(" ew-token-regexp "\\)" - (regexp-quote "?") - "\\(" ew-token-regexp "\\)" - (regexp-quote "?") - "\\(" ew-encoded-text-regexp "\\)" - (regexp-quote "?="))) + (eval-when-compile + (concat (regexp-quote "=?") + "\\(" ew-token-regexp "\\)" + (regexp-quote "?") + "\\(" ew-token-regexp "\\)" + (regexp-quote "?") + "\\(" ew-encoded-text-regexp "\\)" + (regexp-quote "?=")))) ;;; utilities for variables. (defun ew-dynamic-options () - (list - ew-decode-sticked-encoded-word - ew-decode-quoted-encoded-word - ew-ignore-75bytes-limit - ew-ignore-76bytes-limit - ew-permit-sticked-comment - ew-permit-sticked-special)) + (cons + ew-default-mime-charset + (logior + (if ew-decode-sticked-encoded-word 1 0) + (if ew-decode-quoted-encoded-word 2 0) + (if ew-ignore-75bytes-limit 4 0) + (if ew-ignore-76bytes-limit 8 0) + (if ew-permit-sticked-comment 16 0) + (if ew-permit-sticked-special 32 0) + (if ew-remove-bare-crlf 64 0) + )))