;---------------------------------------------------------------------------- ;-------- This sequece of HYPHEN-MINUS is 76 bytes long. -------------------- ;---------------------------------------------------------------------------- ; options: ;encode-sticked-comment-as-atom ; violate policy preventing structure ;ignore-75bytes-limit ; violate RFC2047 ;ignore-76bytes-limit ; violate RFC2047 ;permit-sticked-comment ; violate RFC2047 ;permit-sticked-special ; violate RFC2047 ;separate-sticked-comment ; violate policy preserving absence of space ;separate-sticked-special ; violate policy preserving absence of space ;zero-characters-encoded-word-hack ; violate common sense (very tricky) ;quoted-encoded-word ; violate character sequence semantics ;;; test driver for FLIM-FLAM (and FLIM) (defun decode (src dsts &rest opts) (setq eword-lexical-analyze-cache nil) (setq eword-decode-sticked-encoded-word (or (memq 'permit-sticked-comment opts) (memq 'permit-sticked-special opts))) (setq eword-decode-quoted-encoded-word nil) (if (stringp dsts) (setq dsts (list dsts))) (with-temp-buffer (insert src "\n" mail-header-separator) (eword-decode-header 'us-ascii mail-header-separator) (goto-char (point-min)) (std11-narrow-to-header mail-header-separator) (std11-field-end) (let ((result (buffer-substring (point-min) (point)))) (if (member result dsts) t result)))) (defun encode (src dsts &rest opts) (setq eword-lexical-analyze-cache nil) (setq eword-decode-sticked-encoded-word nil) (setq eword-decode-quoted-encoded-word nil) (if (stringp dsts) (setq dsts (list dsts))) (with-temp-buffer (insert src "\n" mail-header-separator) (goto-char (point-min)) (eword-encode-header 'us-ascii) (goto-char (point-min)) (std11-narrow-to-header mail-header-separator) (std11-field-end) (let ((result (buffer-substring (point-min) (point)))) (if (member result dsts) t result)))) ;;;start-test;;; ;;; from RFC2047 (decode "From: =?US-ASCII?Q?Keith_Moore?= " "From: Keith Moore ") (decode "To: =?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= " "To: Keld J.ANxrn Simonsen ")*B (decode "CC: =?ISO-8859-1?Q?Andr=E9?= Pirard " "CC: Andr.ANi Pirard ")*B (decode "Subject: =?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?= =?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?=" "Subject: If you can read this you understand the example.") (decode "From: =?ISO-8859-1?Q?Olle_J=E4rnefors?= " "From: Olle J.ANdrnefors ")*B (decode "From: =?ISO-8859-1?Q?Patrik_F=E4ltstr=F6m?= " "From: Patrik F.ANdltstrNvm ")*B (decode "From: Nathaniel Borenstein (=?iso-8859-8?b?7eXs+SDv4SDp7Oj08A==?=)" "From: Nathaniel Borenstein (.HNmNeNlNy NoNa NiNlNhNtNp)")*B ; FLIM-FLAM (decode "From: foo@bar.baz (=?ISO-8859-1?Q?a?=)" "From: foo@bar.baz (a)") (decode "From: foo@bar.baz (=?ISO-8859-1?Q?a?= b)" "From: foo@bar.baz (a b)") (decode "From: foo@bar.baz (=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=)" "From: foo@bar.baz (ab)") (decode "From: foo@bar.baz (=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=)" "From: foo@bar.baz (ab)") (decode "From: foo@bar.baz (=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=)" "From: foo@bar.baz (ab)") (decode "From: foo@bar.baz (=?ISO-8859-1?Q?a_b?=)" "From: foo@bar.baz (a b)") (decode "From: foo@bar.baz (=?ISO-8859-1?Q?a?= =?ISO-8859-2?Q?_b?=)" "From: foo@bar.baz (a b)") (decode "Subject: (=?ISO-8859-1?Q?a?=)" "Subject: (=?ISO-8859-1?Q?a?=)") (decode "Subject: (=?ISO-8859-1?Q?a?= b)" "Subject: (=?ISO-8859-1?Q?a?= b)") (decode "Subject: (=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=)" "Subject: (=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=)") (decode "Subject: (=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=)" "Subject: (=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=)") (decode "Subject: (=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=)" "Subject: (=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=)") (decode "Subject: (=?ISO-8859-1?Q?a_b?=)" "Subject: (=?ISO-8859-1?Q?a_b?=)") (decode "Subject: (=?ISO-8859-1?Q?a?= =?ISO-8859-2?Q?_b?=)" "Subject: (=?ISO-8859-1?Q?a?= =?ISO-8859-2?Q?_b?=)") ;;; by akr@jaist.ac.jp (decode "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?= " "From: $B$"(B ") (encode "From: $B$"(B " "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?= ") (decode "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?= =?ISO-2022-JP?B?GyRCJCQbKEI=?= " "From: $B$"$$(B ") (decode "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?= =?ISO-2022-JP?B?GyRCJCQbKEI=?= " "From: $B$"$$(B ") (decode "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?= =?ISO-2022-JP?B?GyRCJCQbKEI=?= " "From: $B$"$$(B ") (decode "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?==?ISO-2022-JP?B?GyRCJCQbKEI=?= " "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?==?ISO-2022-JP?B?GyRCJCQbKEI=?= ") (decode "From: akr@jaist.ac.jp (=?ISO-2022-JP?B?GyRCJCIbKEI=?=\\a=?ISO-2022-JP?B?GyRCJCQbKEI=?=)" "From: akr@jaist.ac.jp ($B$"(B\\a$B$$(B)") ; FLIM-FLAM (decode "From: akr@jaist.ac.jp (=?ISO-2022-JP?B?GyRCJCIbKEI=?=a=?ISO-2022-JP?B?GyRCJCQbKEI=?=)" "From: akr@jaist.ac.jp (=?ISO-2022-JP?B?GyRCJCIbKEI=?=a=?ISO-2022-JP?B?GyRCJCQbKEI=?=)") ; FLIM-FLAM (decode "From: akr@jaist.ac.jp (=?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)" "From: akr@jaist.ac.jp (=?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)") ; FLIM-FLAM (decode "From: akr@jaist.ac.jp (=?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)" "From: akr@jaist.ac.jp ($B$"(B($B$$(B)$B$&(B)" 'ignore-76bytes-limit) (encode "From: akr@jaist.ac.jp ($B$"(B($B$$(B)$B$&(B)" "From: akr@jaist.ac.jp (=?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)" 'ignore-76bytes-limit) ; FLIM-FLAM (decode "From: akr@jaist.ac.jp (=?ISO-2022-JP?B?GyRCJCIbKEI=?= =?ISO-2022-JP?B?GyhC?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?= =?ISO-2022-JP?B?GyhC?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)" "From: akr@jaist.ac.jp ($B$"(B($B$$(B)$B$&(B)") (encode "From: akr@jaist.ac.jp ($B$"(B($B$$(B)$B$&(B)" "From: akr@jaist.ac.jp (=?ISO-2022-JP?B?GyRCJCIbKEI=?= =?ISO-2022-JP?B?GyhC?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?= =?ISO-2022-JP?B?GyhC?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)" 'zero-characters-encoded-word-hack) ; FLIM-FLAM (decode "From: a=?ISO-2022-JP?B?GyRCJCIbKEI=?= " "From: a=?ISO-2022-JP?B?GyRCJCIbKEI=?= ") (decode "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=b " "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=b ") (decode "From: a=?ISO-2022-JP?B?GyRCJCIbKEI=?=b " "From: a=?ISO-2022-JP?B?GyRCJCIbKEI=?=b ") (decode "From: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?= " "From: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?= ") (decode "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(b) " "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(b) ") (decode "From: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?=(b) " "From: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?=(b) ") (decode "From: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?= " "From: (a)$B$"(B " 'permit-sticked-comment) (decode "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(b) " "From: $B$"(B(b) " 'permit-sticked-comment) (decode "From: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?=(b) " "From: (a)$B$"(B(b) " 'permit-sticked-comment) (decode "From: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?= " "From: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?= ") (decode "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\" " "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\" ") (decode "From: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\" " "From: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\" ") (decode "From: \"=?ISO-2022-JP?B?GyRCJCIbKEI=?=\" " "From: \"=?ISO-2022-JP?B?GyRCJCIbKEI=?=\" ") (decode "From: \"\\\"\\\\\" =?ISO-2022-JP?B?GyRCJCIbKEI=?= \"\\\"\\\\\" " "From: \"\\\"\\\\\" $B$"(B \"\\\"\\\\\" ") (decode "From: < =?ISO-2022-JP?B?GyRCJCIbKEI=?= @jaist.ac.jp>" "From: < =?ISO-2022-JP?B?GyRCJCIbKEI=?= @jaist.ac.jp>") ; FLIM-FLAM (decode "From: =?ISO-2022-JP?Q?=1B=24BAA=1B=28B?= " "From: $BAA(B ") (decode "From: =?ISO-2022-JP?Q?=1B$BAA=1B(B?= ) " "From: =?ISO-2022-JP?Q?=1B$BAA=1B(B?= ) ") (decode "From: (=?US-ASCII?Q?(?=)foo@bar.baz(=?US-ASCII?Q?))baz@bar.foo(?=)" "From: (=?US-ASCII?Q?(?=)foo@bar.baz(=?US-ASCII?Q?))baz@bar.foo(?=)") (encode "From: \"$B$"(B($B$"(B)\" " "From: =?ISO-2022-JP?B?GyRCJCIbKEIoGyRCJCIbKEIp?= ") ; FLIM-FLAM (decode "From: =?ISO-2022-JP?B?GyRCJCIbKEIoGyRCJCIbKEIp?= " "From: \"$B$"(B($B$"(B)\" ") (encode "From: $B$"(B($B$"(B) " "From: =?ISO-2022-JP?B?GyRCJCIbKEIoGyRCJCIbKEIp?= " 'encode-sticked-comment-as-atom) ; FLIM-FLAM (encode "From: $B$"(B($B$"(B) " "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCIbKEI=?=) " 'permit-sticked-comment) ; FLIM-FLAM (encode "From: $B$"(B($B$"(B) " "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?= (=?ISO-2022-JP?B?GyRCJCIbKEI=?=) " 'separate-sticked-comment) ; FLIM-FLAM (decode "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCIbKEI=?=) " "From: $B$"(B($B$"(B) " 'permit-sticked-comment) (decode "From: =?US-ASCII?Q?=28?= , =?US-ASCII?Q?=29?= " "From: \"(\" , \")\" ") (decode "From: =?ISO-2022-JP?B?YSJiGyRCJCIbKEJjXA==?= " "From: \"a\\\"b$B$"(Bc\\\\\" ") (encode "From: \"a\\\"b$B$"(Bc\\\\\" " "From: =?ISO-2022-JP?B?YSJiGyRCJCIbKEJjXA==?= ") ; FLIM-FLAM (decode "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=" "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=") (decode "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=" "To: $B$"(B" 'permit-sticked-special) (encode "To: $B$"(B" "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=" 'permit-sticked-special) ; FLIM-FLAM (encode "To: $B$"(B" "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?= " 'separate-sticked-special) (decode "To: ,=?ISO-2022-JP?B?GyRCJCIbKEI=?=" "To: ,=?ISO-2022-JP?B?GyRCJCIbKEI=?=") (decode "To: ,=?ISO-2022-JP?B?GyRCJCIbKEI=?=" "To: ,$B$"(B" 'permit-sticked-special) (encode "To: ,$B$"(B" "To: ,=?ISO-2022-JP?B?GyRCJCIbKEI=?=" 'permit-sticked-special) ; FLIM-FLAM (encode "To: ,$B$"(B" "To: , =?ISO-2022-JP?B?GyRCJCIbKEI=?= " 'separate-sticked-special) (decode "To: akr@jaist.ac.jp,=?ISO-2022-JP?B?GyRCJCIbKEI=?=" "To: akr@jaist.ac.jp,=?ISO-2022-JP?B?GyRCJCIbKEI=?=") (decode "To: akr@jaist.ac.jp,=?ISO-2022-JP?B?GyRCJCIbKEI=?=" "To: akr@jaist.ac.jp,$B$"(B" 'permit-sticked-special) (encode "To: akr@jaist.ac.jp,$B$"(B" "To: akr@jaist.ac.jp,=?ISO-2022-JP?B?GyRCJCIbKEI=?=" 'permit-sticked-special) ; FLIM-FLAM (encode "To: akr@jaist.ac.jp,$B$"(B" "To: akr@jaist.ac.jp, =?ISO-2022-JP?B?GyRCJCIbKEI=?= " 'separate-sticked-special) (decode "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:akr@jaist.ac.jp;" "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:akr@jaist.ac.jp;") (decode "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:akr@jaist.ac.jp;" "To: $B$"(B:akr@jaist.ac.jp;" 'permit-sticked-special) (encode "To: $B$"(B:akr@jaist.ac.jp;" "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:akr@jaist.ac.jp;" 'permit-sticked-special) ; FLIM-FLAM (encode "To: $B$"(B:akr@jaist.ac.jp;" "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?= :akr@jaist.ac.jp;" 'separate-sticked-special) ; FLIM-FLAM (decode "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=;" "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=;") (decode "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=;" "To: $B$"(B:$B$$(B;" 'ignore-76bytes-limit 'permit-sticked-special) (encode "To: $B$"(B:$B$$(B;" "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=;" 'ignore-76bytes-limit 'permit-sticked-special) ; FLIM-FLAM (encode "To: $B$"(B:$B$$(B;" "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?= =?ISO-2022-JP?B?GyhC?=;" 'zero-characters-encoded-word-hack 'permit-sticked-special) ; FLIM-FLAM (encode "To: $B$"(B:$B$$(B;" "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?= : =?ISO-2022-JP?B?GyRCJCQbKEI=?= ;" 'separate-sticked-special) ; FLIM-FLAM (decode "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=,=?ISO-2022-JP?B?GyRCJCYbKEI=?=;,=?ISO-2022-JP?B?GyRCJCgbKEI=?=" "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=,=?ISO-2022-JP?B?GyRCJCYbKEI=?=;,=?ISO-2022-JP?B?GyRCJCgbKEI=?=") (decode "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=,=?ISO-2022-JP?B?GyRCJCYbKEI=?=;,=?ISO-2022-JP?B?GyRCJCgbKEI=?=" "To: $B$"(B:$B$$(B,$B$&(B;,$B$((B" 'ignore-76bytes-limit 'permit-sticked-special) (encode "To: $B$"(B:$B$$(B,$B$&(B;,$B$((B" "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=,=?ISO-2022-JP?B?GyRCJCYbKEI=?=;,=?ISO-2022-JP?B?GyRCJCgbKEI=?=" 'ignore-76bytes-limit 'permit-sticked-special) ; FLIM-FLAM (encode "To: $B$"(B:$B$$(B,$B$&(B;,$B$((B" "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?= =?ISO-2022-JP?B?GyhC?=,=?ISO-2022-JP?B?GyRCJCYbKEI=?= =?ISO-2022-JP?B?GyhC?=;,=?ISO-2022-JP?B?GyRCJCgbKEI=?=" 'zero-characters-encoded-word-hack 'permit-sticked-special) ; FLIM-FLAM (encode "To: $B$"(B:$B$$(B,$B$&(B;,$B$((B" "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?= : =?ISO-2022-JP?B?GyRCJCQbKEI=?= , =?ISO-2022-JP?B?GyRCJCYbKEI=?= ;, =?ISO-2022-JP?B?GyRCJCgbKEI=?= " 'separate-sticked-special) ; FLIM-FLAM (decode "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=" "Subject: $B$"(B") (decode "Subject: a=?ISO-2022-JP?B?GyRCJCIbKEI=?=" "Subject: a=?ISO-2022-JP?B?GyRCJCIbKEI=?=") (decode "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=b" "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=b") (decode "Subject: a=?ISO-2022-JP?B?GyRCJCIbKEI=?=b" "Subject: a=?ISO-2022-JP?B?GyRCJCIbKEI=?=b") (decode "Subject: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?=" "Subject: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?=") (decode "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(b)" "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(b)") (decode "Subject: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?=(b)" "Subject: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?=(b)") (decode "Subject: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?=" "Subject: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?=") (decode "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\"" "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\"") (decode "Subject: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\"" "Subject: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\"") (decode "Subject: (Re: =?ISO-2022-JP?B?GyRCJCIbKEI=?=)" "Subject: (Re: =?ISO-2022-JP?B?GyRCJCIbKEI=?=)") (decode "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:" "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:") (decode "Subject: =?ISO-2022-JP?B??=" "Subject: =?ISO-2022-JP?B??=") (decode "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?= a =?ISO-2022-JP?B?GyRCJCQbKEI=?=" "Subject: $B$"(B a $B$$(B") (encode "Subject: $B0$(B $BR_(B" "Subject: =?ISO-2022-JP?B?GyRCMCQbKEIgICAgICAgICAgICAgICAgICAgICAgICAgICAg?= =?US-ASCII?Q?____________________________________________________________?= =?ISO-2022-JP?B?ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBskQlJfGyhC?=") ; FLIM-FLAM (decode "Subject: =?ISO-2022-JP?B?GyRCMCQbKEIgICAgICAgICAgICAgICAgICAgICAgICAgICAg?= =?US-ASCII?Q?____________________________________________________________?= =?ISO-2022-JP?B?ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBskQlJfGyhC?=" "Subject: $B0$(B $BR_(B") (encode "Subject: $B0$(B $BR_(B" "Subject: =?ISO-2022-JP?B?GyQpQrCkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDS3w==" 'ignore-76bytes-limit 'ignore-75bytes-limit) ; FLIM-FLAM (decode "Subject:=?ISO-2022-JP?B?GyRCJCIbKEI=?=" "Subject:=?ISO-2022-JP?B?GyRCJCIbKEI=?=") (decode "Subject:=?ISO-2022-JP?B?GyRCJCIbKEI=?=" "Subject:$B$"(B" 'permit-sticked-special) (encode "From: .AN! "*B "From: =?ISO-8859-1?Q?=A1?= ") (decode "From: =?ISO-8859-1?Q?abcdefghijklmnopqrst=A1=28=29=22=5C?= " "From: \"abcdefghijklmnopqrst.AN!()\\\"\\\\\" ")*B (encode "From: \"abcdefghijklmnopqrst.AN!()\\\"\\\\\" "*B "From: =?ISO-8859-1?Q?abcdefghijklmnopqrst=A1=28=29=22=5C?= ") ; FLIM-FLAM (encode "From: akr@jaist.ac.jp (abcdefghijklmnopqrst.AN!\\(\\)\"\\\\)"*B "From: akr@jaist.ac.jp (=?ISO-8859-1?Q?abcdefghijklmnopqrst=A1=28=29\"=5C?=)") ; FLIM-FLAM (decode "Subject: ?= =?" "Subject: ?= =?") (decode "Subject: \" =?ISO-2022-JP?B?GyRCJCIbKEI=?= \"" "Subject: \" $B$"(B \"") (decode "From: \"\\\\\" =?ISO-2022-JP?B?GyRCJCIbKEI=?= \"\" " "From: \"\\\\\" $B$"(B \"\" ") (decode "Subject: =?ISO-2022-JP?Q?=1B$B$\"=1B(B_=1B$B$\"=1B(B?=" "Subject: $B$"(B $B$"(B") (decode "Subject: =?ISO-2022-JP?Q?=1B$B$\"=1B(B =1B$B$\"=1B(B?=" "Subject: =?ISO-2022-JP?Q?=1B$B$\"=1B(B =1B$B$\"=1B(B?=") (decode "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?= a =?ISO-8859-8?Q?=E0?=" "Subject: $B$"(B a .HN`")*B (encode "Subject: $B$"(B a .HN`"*B "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?= a =?ISO-8859-8?Q?=E0?=") (decode "Subject: =?ISO-8859-8?Q?=E0?= =?ISO-2022-JP?B?GyRCTm0bKEI=?=" "Subject: .HN`$BNm(B")*B (encode "Subject: .HN`$BNm(B"*B "Subject: =?ISO-8859-8?Q?=E0?= =?ISO-2022-JP?B?GyRCTm0bKEI=?=") ; FLIM-FLAM (decode "Subject: =?ISO-8859-8?Q?=E0_?= =?ISO-2022-JP?B?GyRCTm0bKEI=?=" "Subject: .HN` $BNm(B")*B (encode "Subject: .HN` $BNm(B"*B '("Subject: =?ISO-8859-8?Q?=E0_?= =?ISO-2022-JP?B?GyRCTm0bKEI=?=" "Subject: =?ISO-8859-8?Q?=E0?= =?ISO-2022-JP?B?IBskQk5tGyhC?=")) (encode "Subject: .FNC$B4X?t(B"*B '("Subject: =?ISO-8859-7?Q?=C3?= =?ISO-2022-JP?B?GyRCNFg/dBsoQg==?=" "Subject: =?ISO-2022-JP-2?B?Gy5GG05DGyRCNFg/dBsoQg==?=")) (decode "Subject: =?ISO-2022-JP-2?B?Gy5GG05DGyRCNFg/dBsoQg==?=" "Subject: .FNC$B4X?t(B")*B (decode "Subject: =?ISO-8859-7?Q?=C3?= =?ISO-2022-JP?B?GyRCNFg/dBsoQg==?=" "Subject: .FNC$B4X?t(B")*B (decode "Subject: =?Shift_JIS?B?gqA=?=" "Subject: $B$"(B" 'quoted-encoded-word) (decode "Subject: =?EUC-JP?B?pKI=?=" "Subject: $B$"(B" 'quoted-encoded-word) ;;; quoted-encoded-word $BI=8=(B ; ; RFC2047 $B$N%G%3!<%@$O@x:_E*$K(B($B%G%3!<%I7k2L$G$J$/(B) encoded-word $B$=$N$b$N$r(B ; $B=PNO$7$J$1$l$P$J$i$J$$$3$H$,$"$k!#(B ; ; 1. $BCN$i$J$$(B charset $B$b$7$/$O(B encoding $B$,;XDj$5$l$F$$$?$H$-!#(B ; =?unknown-charset?known-encoding?some-encoded-text?= ; =?known-charset?unknown-encoding?some-encoded-text?= ; =?unknown-charset?unknown-encoding?some-encoded-text?= ; ; 2. $B%G%3!<%I$G$-$F$bFbMF$,7uF]$9$.$k$H$-!#(B ; Non ASCII $B3HD%(B RFC822 $B$NCf$K(B =?US-ASCII?Q?=0D=0A=0D=0A?= $B$N%G%3!<%I(B ; $B7k2L$rKd$a9~$`$N$O4m81$9$.$k!#(B ; ; $B$^$?!"%G%3!<%@$O(B encoded-word $B$N$h$&$K$_$($k%G%3!<%I7k2L$r=PNO$7$J$1(B ; $B$l$P$J$i$J$$$3$H$b$"$k!#(B ; ; =?US-ASCII?Q?=3D=3FUS-ASCII=3FQ=3Ftext=3F=3D?= ; ; $B%G%3!<%@$,C1$J$kJ8;zNs$r=PNO$9$k>l9g!"C1=c$K$d$k$H(B encoded-word $B$=$N$b$N$H(B ; encoded-word $B$r6hJL$G$-$J$$!#(B ; $B$3$3$G$OJ8;zNsCf$G$=$l$i$r3Nl9g(B(0, 2, 4, ...): charset $B$N@hF,$N(B '*' $B$N?t$rH>J,$K$7$?J8;zNs(B ; $B4q?t$N>l9g(B(1, 3, 5, ...): charset $B$N@hF,$N(B '*' $B$N?t$rH>J,(B($B>.?tE@0J2<(B ; $B@Z$l$=$NJ8;zNs$=$N$b$N$rI=8=$9$k$,!"$=$l$i$rO"7k$7$?J8;zNs(B ; =?*US-ASCII?Q?abcd?= $B$O(B abcd $B$H$$$&J8;zNs$rI=8=$9$k$3$H$K$J$j!"(B ; $B$=$l$>$l$NFbMF$NO"7k$H$O$J$i$J$$!#(B ; ; $B$3$l$O$H$/$K(B Non ASCII $B3HD%(B RFC822 $B$NCf$K(B quoted-encoded-word $BI=8=$r(B ; $BKd$a9~$`$H$-$K5$$rIU$1$J$1$l$P$J$i$J$$!#(B($BKd$a9~$s$@7k2L$O@5$7$$(B ; quoted-encoded-word $BI=8=$H$O$J$i$J$$$+$bCN$l$J$$!#(B) ; (decode "Subject: =?Unknown-Charset?B?gqA=?=" "Subject: =?*Unknown-Charset?B?gqA=?=" 'quoted-encoded-word) ; FLIM-FLAM (decode "Subject: =?Unknown-Charset?B?gqA=?= =?Unknown-Charset?B?gqA=?=" "Subject: =?*Unknown-Charset?B?gqA=?==?*Unknown-Charset?B?gqA=?=" 'quoted-encoded-word) ; FLIM-FLAM (decode "Subject: =?Unknown-Charset?B?gqA=?= =?Unknown-Charset?B?gqA=?=" "Subject: =?*Unknown-Charset?B?gqA=?==?*Unknown-Charset?B?gqA=?=" 'quoted-encoded-word) ; FLIM-FLAM (decode "Subject: =?Unknown-Charset?B?gqA=?= =?Unknown-Charset?B?gqA=?=" "Subject: =?*Unknown-Charset?B?gqA=?==?*Unknown-Charset?B?gqA=?=" 'quoted-encoded-word) ; FLIM-FLAM (decode "Subject: =?Unknown-Charset?B?gqA=?= =?Unknown-Charset?B?gqA=?=" "Subject: =?*Unknown-Charset?B?gqA=?==?*Unknown-Charset?B?gqA=?=" 'quoted-encoded-word) ; FLIM-FLAM (decode "Subject: a=?Unknown-Charset?B?gqA=?=" "Subject: a=?Unknown-Charset?B?gqA=?=" 'quoted-encoded-word) ; FLIM-FLAM (decode "Subject: =?Unknown-Charset?B?gqA=?=b" "Subject: =?Unknown-Charset?B?gqA=?=b" 'quoted-encoded-word) ; FLIM-FLAM (decode "Subject: a=?Unknown-Charset?B?gqA=?=b" "Subject: a=?Unknown-Charset?B?gqA=?=b" 'quoted-encoded-word) ; FLIM-FLAM (decode "Subject: a =?Unknown-Charset?B?gqA=?= b" "Subject: a =?*Unknown-Charset?B?gqA=?= b" 'quoted-encoded-word) ; FLIM-FLAM (decode "Subject: =?ISO-2022-JP?B?DQoNCg==?=" "Subject: =?*US-ASCII?Q?=0D=0A=0D=0A?=" 'quoted-encoded-word) ; FLIM-FLAM (decode "Subject: =?US-ASCII?Q?a=0D=0A_b?=" "Subject: a=?*US-ASCII?Q?=0D=0A?= b" 'quoted-encoded-word) ; FLIM-FLAM ;;;end-test;;; ;----------------------------------------------------------------------------