1 ;----------------------------------------------------------------------------
2 ;-------- This sequece of HYPHEN-MINUS is 76 bytes long. --------------------
3 ;----------------------------------------------------------------------------
6 ;encode-sticked-comment-as-atom ; violate the policy preserving structures
7 ;ignore-75bytes-limit ; violate RFC2047
8 ;ignore-76bytes-limit ; violate RFC2047
9 ;permit-sticked-comment ; violate RFC2047
10 ;permit-sticked-special ; violate RFC2047
11 ;separate-sticked-comment ; violate the policy preserving absence of space
12 ;separate-sticked-special ; violate the policy preserving absence of space
13 ;zero-characters-encoded-word-hack ; violate common sense (very tricky)
14 ;quoted-encoded-word ; violate character sequence semantics
18 (setq decode-test 'decode-flam)
19 (setq encode-test 'encode-flam)
21 (setq decode-succ-count 0)
22 (setq decode-all-count 0)
23 (defun decode (src dsts &rest opts)
24 (if (stringp dsts) (setq dsts (list dsts)))
25 (setq decode-all-count (1+ decode-all-count))
26 (let ((res (condition-case nil
27 (apply decode-test src dsts opts)
31 (setq decode-succ-count (1+ decode-succ-count))
33 (insert (format "\n%S\n'dfail" res)))
36 (setq encode-succ-count 0)
37 (setq encode-all-count 0)
38 (defun encode (src dsts &rest opts)
39 (if (stringp dsts) (setq dsts (list dsts)))
40 (setq encode-all-count (1+ decode-all-count))
41 (let ((res (condition-case nil
42 (apply encode-test src dsts opts)
46 (setq encode-succ-count (1+ encode-succ-count))
48 (insert (format "\n%S\n'efail" res)))
53 (format "\n\"Decode: %d/%d Encode: %d/%d\""
54 decode-succ-count decode-all-count
55 encode-succ-count encode-all-count)))
57 ;;; FLAM specific part (FLIM is OK)
59 (defun decode-flam (src dsts &rest opts)
60 (setq eword-lexical-analyze-cache nil)
61 (setq eword-decode-sticked-encoded-word
62 (or (memq 'permit-sticked-comment opts)
63 (memq 'permit-sticked-special opts)))
64 (setq eword-decode-quoted-encoded-word nil)
66 (insert src "\n" mail-header-separator)
67 (eword-decode-header 'us-ascii mail-header-separator)
68 (goto-char (point-min))
69 (std11-narrow-to-header mail-header-separator)
71 (let ((result (buffer-substring (point-min) (point))))
72 (if (member result dsts) t result))))
74 (defun encode-flam (src dsts &rest opts)
75 (setq eword-lexical-analyze-cache nil)
76 (setq eword-decode-sticked-encoded-word nil)
77 (setq eword-decode-quoted-encoded-word nil)
79 (insert src "\n" mail-header-separator)
80 (goto-char (point-min))
81 (eword-encode-header 'us-ascii)
82 (goto-char (point-min))
83 (std11-narrow-to-header mail-header-separator)
85 (let ((result (buffer-substring (point-min) (point))))
86 (if (member result dsts) t result))))
90 ;; Section 1: Decoding examples from RFC2047
93 "From: =?US-ASCII?Q?Keith_Moore?= <moore@cs.utk.edu>"
94 "From: Keith Moore <moore@cs.utk.edu>")
97 "To: =?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <keld@dkuug.dk>"
98 "To: Keld J
\e.A
\eNxrn Simonsen <keld@dkuug.dk>")
\e*B
101 "CC: =?ISO-8859-1?Q?Andr=E9?= Pirard <PIRARD@vm1.ulg.ac.be>"
102 "CC: Andr
\e.A
\eNi Pirard <PIRARD@vm1.ulg.ac.be>")
\e*B
105 "Subject: =?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=
106 =?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?="
107 "Subject: If you can read this you understand the example.")
110 "From: =?ISO-8859-1?Q?Olle_J=E4rnefors?= <ojarnef@admin.kth.se>"
111 "From: Olle J
\e.A
\eNdrnefors <ojarnef@admin.kth.se>")
\e*B
114 "From: =?ISO-8859-1?Q?Patrik_F=E4ltstr=F6m?= <paf@nada.kth.se>"
115 "From: Patrik F
\e.A
\eNdltstr
\eNvm <paf@nada.kth.se>")
\e*B
118 "From: Nathaniel Borenstein <nsb@thumper.bellcore.com>
119 (=?iso-8859-8?b?7eXs+SDv4SDp7Oj08A==?=)"
120 "From: Nathaniel Borenstein <nsb@thumper.bellcore.com> (
\e.H
\eNm
\eNe
\eNl
\eNy
\eNo
\eNa
\eNi
\eNl
\eNh
\eNt
\eNp)")
\e*B
123 "From: foo@bar.baz (=?ISO-8859-1?Q?a?=)"
124 "From: foo@bar.baz (a)")
127 "From: foo@bar.baz (=?ISO-8859-1?Q?a?= b)"
128 "From: foo@bar.baz (a b)")
131 "From: foo@bar.baz (=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=)"
132 "From: foo@bar.baz (ab)")
135 "From: foo@bar.baz (=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=)"
136 "From: foo@bar.baz (ab)")
139 "From: foo@bar.baz (=?ISO-8859-1?Q?a?=
141 "From: foo@bar.baz (ab)")
144 "From: foo@bar.baz (=?ISO-8859-1?Q?a_b?=)"
145 "From: foo@bar.baz (a b)")
148 "From: foo@bar.baz (=?ISO-8859-1?Q?a?= =?ISO-8859-2?Q?_b?=)"
149 "From: foo@bar.baz (a b)")
152 "Subject: (=?ISO-8859-1?Q?a?=)"
153 "Subject: (=?ISO-8859-1?Q?a?=)")
156 "Subject: (=?ISO-8859-1?Q?a?= b)"
157 "Subject: (=?ISO-8859-1?Q?a?= b)")
160 "Subject: (=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=)"
161 "Subject: (=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=)")
164 "Subject: (=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=)"
165 "Subject: (=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=)")
168 "Subject: (=?ISO-8859-1?Q?a?=
170 "Subject: (=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=)")
173 "Subject: (=?ISO-8859-1?Q?a_b?=)"
174 "Subject: (=?ISO-8859-1?Q?a_b?=)")
177 "Subject: (=?ISO-8859-1?Q?a?= =?ISO-8859-2?Q?_b?=)"
178 "Subject: (=?ISO-8859-1?Q?a?= =?ISO-8859-2?Q?_b?=)")
180 ;; Section 2: Decoding trivial inputs.
183 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
184 "From:
\e$B$"
\e(B <akr@jaist.ac.jp>")
187 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?= =?ISO-2022-JP?B?GyRCJCQbKEI=?=
189 "From:
\e$B$"$$
\e(B <akr@jaist.ac.jp>")
192 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=
193 =?ISO-2022-JP?B?GyRCJCQbKEI=?=
195 "From:
\e$B$"$$
\e(B <akr@jaist.ac.jp>")
198 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=
199 =?ISO-2022-JP?B?GyRCJCQbKEI=?=
201 "From:
\e$B$"$$
\e(B <akr@jaist.ac.jp>")
204 "From: akr@jaist.ac.jp (=?ISO-2022-JP?B?GyRCJCIbKEI=?=
205 =?ISO-2022-JP?B?GyhC?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=
206 =?ISO-2022-JP?B?GyhC?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)"
207 "From: akr@jaist.ac.jp (
\e$B$"
\e(B(
\e$B$$
\e(B)
\e$B$&
\e(B)")
210 "From: a=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
211 "From: a=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>")
214 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=b <akr@jaist.ac.jp>"
215 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=b <akr@jaist.ac.jp>")
218 "From: a=?ISO-2022-JP?B?GyRCJCIbKEI=?=b <akr@jaist.ac.jp>"
219 "From: a=?ISO-2022-JP?B?GyRCJCIbKEI=?=b <akr@jaist.ac.jp>")
222 "From: \"=?ISO-2022-JP?B?GyRCJCIbKEI=?=\" <akr@jaist.ac.jp>"
223 "From: \"=?ISO-2022-JP?B?GyRCJCIbKEI=?=\" <akr@jaist.ac.jp>")
226 "From: \"\\\"\\\\\" =?ISO-2022-JP?B?GyRCJCIbKEI=?= \"\\\"\\\\\" <akr@jaist.ac.jp>"
227 "From: \"\\\"\\\\\"
\e$B$"
\e(B \"\\\"\\\\\" <akr@jaist.ac.jp>")
230 "From: < =?ISO-2022-JP?B?GyRCJCIbKEI=?= @jaist.ac.jp>"
231 "From: < =?ISO-2022-JP?B?GyRCJCIbKEI=?= @jaist.ac.jp>")
234 "From: =?ISO-2022-JP?Q?=1B=24BAA=1B=28B?= <akr@jaist.ac.jp>"
235 "From:
\e$BAA
\e(B <akr@jaist.ac.jp>")
238 "From: =?ISO-2022-JP?Q?=1B$BAA=1B(B?= ) <akr@jaist.ac.jp>"
239 "From: =?ISO-2022-JP?Q?=1B$BAA=1B(B?= ) <akr@jaist.ac.jp>")
242 "From: (=?US-ASCII?Q?(?=)foo@bar.baz(=?US-ASCII?Q?))baz@bar.foo(?=)"
243 "From: (=?US-ASCII?Q?(?=)foo@bar.baz(=?US-ASCII?Q?))baz@bar.foo(?=)")
246 "From: =?ISO-2022-JP?B?GyRCJCIbKEIoGyRCJCIbKEIp?= <akr@jaist.ac.jp>"
247 "From: \"
\e$B$"
\e(B(
\e$B$"
\e(B)\" <akr@jaist.ac.jp>")
250 "From: =?US-ASCII?Q?=28?= <akr@jaist.ac.jp>, =?US-ASCII?Q?=29?= <akr@jaist.ac.jp>"
251 "From: \"(\" <akr@jaist.ac.jp>, \")\" <akr@jaist.ac.jp>")
254 "From: =?ISO-2022-JP?B?YSJiGyRCJCIbKEJjXA==?= <akr@jaist.ac.jp>"
255 "From: \"a\\\"b
\e$B$"
\e(Bc\\\\\" <akr@jaist.ac.jp>")
258 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?="
259 "Subject:
\e$B$"
\e(B")
262 "Subject: a=?ISO-2022-JP?B?GyRCJCIbKEI=?="
263 "Subject: a=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
266 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=b"
267 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=b")
270 "Subject: a=?ISO-2022-JP?B?GyRCJCIbKEI=?=b"
271 "Subject: a=?ISO-2022-JP?B?GyRCJCIbKEI=?=b")
274 "Subject: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?="
275 "Subject: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
278 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(b)"
279 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(b)")
282 "Subject: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?=(b)"
283 "Subject: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?=(b)")
286 "Subject: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?="
287 "Subject: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
290 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\""
291 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\"")
294 "Subject: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\""
295 "Subject: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\"")
298 "Subject: (Re: =?ISO-2022-JP?B?GyRCJCIbKEI=?=)"
299 "Subject: (Re: =?ISO-2022-JP?B?GyRCJCIbKEI=?=)")
302 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:"
303 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:")
306 "Subject: =?ISO-2022-JP?B??="
307 "Subject: =?ISO-2022-JP?B??=")
310 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?= a
311 =?ISO-2022-JP?B?GyRCJCQbKEI=?="
312 "Subject:
\e$B$"
\e(B a
\e$B$$
\e(B")
315 "Subject: =?ISO-2022-JP?B?GyRCMCQbKEIgICAgICAgICAgICAgICAgICAgICAgICAgICAg?=
316 =?US-ASCII?Q?____________________________________________________________?=
317 =?ISO-2022-JP?B?ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBskQlJfGyhC?="
318 "Subject:
\e$B0$
\e(B
\e$BR_
\e(B")
321 "From: =?ISO-8859-1?Q?abcdefghijklmnopqrst=A1=28=29=22=5C?= <akr@jaist.ac.jp>"
322 "From: \"abcdefghijklmnopqrst
\e.A
\eN!()\\\"\\\\\" <akr@jaist.ac.jp>")
\e*B
329 "Subject: \" =?ISO-2022-JP?B?GyRCJCIbKEI=?= \""
330 "Subject: \"
\e$B$"
\e(B \"")
333 "From: \"\\\\\" =?ISO-2022-JP?B?GyRCJCIbKEI=?= \"\" <akr@jaist.ac.jp>"
334 "From: \"\\\\\"
\e$B$"
\e(B \"\" <akr@jaist.ac.jp>")
337 "Subject: =?ISO-2022-JP?Q?=1B$B$\"=1B(B_=1B$B$\"=1B(B?="
338 "Subject:
\e$B$"
\e(B
\e$B$"
\e(B")
341 "Subject: =?ISO-2022-JP?Q?=1B$B$\"=1B(B =1B$B$\"=1B(B?="
342 "Subject: =?ISO-2022-JP?Q?=1B$B$\"=1B(B =1B$B$\"=1B(B?=")
345 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?= a =?ISO-8859-8?Q?=E0?="
346 "Subject:
\e$B$"
\e(B a
\e.H
\eN`")
\e*B
349 "Subject: =?ISO-8859-8?Q?=E0?= =?ISO-2022-JP?B?GyRCTm0bKEI=?="
350 "Subject:
\e.H
\eN`
\e$BNm
\e(B")
\e*B
353 "Subject: =?ISO-8859-8?Q?=E0_?= =?ISO-2022-JP?B?GyRCTm0bKEI=?="
354 "Subject:
\e.H
\eN`
\e$BNm
\e(B")
\e*B
357 "Subject: =?ISO-2022-JP-2?B?Gy5GG05DGyRCNFg/dBsoQg==?="
358 "Subject:
\e.F
\eNC
\e$B4X?t
\e(B")
\e*B
361 "Subject: =?ISO-8859-7?Q?=C3?= =?ISO-2022-JP?B?GyRCNFg/dBsoQg==?="
362 "Subject:
\e.F
\eNC
\e$B4X?t
\e(B")
\e*B
365 "Subject: =?Shift_JIS?B?gqA=?="
366 "Subject:
\e$B$"
\e(B"
367 'quoted-encoded-word)
370 "Subject: =?EUC-JP?B?pKI=?="
371 "Subject:
\e$B$"
\e(B"
372 'quoted-encoded-word)
375 "Subject: = =?ISO-2022-JP?B?GyRCJCIbKEI=?="
376 "Subject: =
\e$B$"
\e(B")
379 "Subject: =? =?ISO-2022-JP?B?GyRCJCIbKEI=?="
380 "Subject: =?
\e$B$"
\e(B")
383 "Subject: =?ISO-2022-JP =?ISO-2022-JP?B?GyRCJCIbKEI=?="
384 "Subject: =?ISO-2022-JP
\e$B$"
\e(B")
387 "Subject: =?ISO-2022-JP? =?ISO-2022-JP?B?GyRCJCIbKEI=?="
388 "Subject: =?ISO-2022-JP?
\e$B$"
\e(B")
391 "Subject: =?ISO-2022-JP?B =?ISO-2022-JP?B?GyRCJCIbKEI=?="
392 "Subject: =?ISO-2022-JP?B
\e$B$"
\e(B")
395 "Subject: =?ISO-2022-JP?B? =?ISO-2022-JP?B?GyRCJCIbKEI=?="
396 "Subject: =?ISO-2022-JP?B?
\e$B$"
\e(B")
399 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI =?ISO-2022-JP?B?GyRCJCIbKEI=?="
400 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI
\e$B$"
\e(B")
403 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI= =?ISO-2022-JP?B?GyRCJCIbKEI=?="
404 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=
\e$B$"
\e(B")
407 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=? =?ISO-2022-JP?B?GyRCJCIbKEI=?="
408 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?
\e$B$"
\e(B")
411 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?= =?ISO-2022-JP?B?GyRCJCIbKEI=?="
412 "Subject:
\e$B$"$"
\e(B")
415 "Subject: ==?ISO-2022-JP?B?GyRCJCIbKEI=?="
416 "Subject: ==?ISO-2022-JP?B?GyRCJCIbKEI=?=")
419 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=="
420 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?==")
423 "From: akr@jaist.ac.jp (\\=?ISO-2022-JP?B?GyRCJCIbKEI=?=)"
424 "From: akr@jaist.ac.jp (\\=?ISO-2022-JP?B?GyRCJCIbKEI=?=)")
427 "=?ISO-2022-JP?B?GyRCJCIbKEI=?=: test"
428 "=?ISO-2022-JP?B?GyRCJCIbKEI=?=: test")
431 "=?ISO-2022-JP?B?GyRCJCIbKEI=?=: test"
432 "=?ISO-2022-JP?B?GyRCJCIbKEI=?=: test"
433 'permit-sticked-special)
435 ;; Section 3: Decoding melancholy inputs.
438 "From:=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
439 "From:=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>")
442 "From: akr@jaist.ac.jp
443 (=?ISO-2022-JP?B?GyRCJCIbKEI=?=\\a=?ISO-2022-JP?B?GyRCJCQbKEI=?=)"
444 "From: akr@jaist.ac.jp (
\e$B$"
\e(B\\a
\e$B$$
\e(B)")
447 "From: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
448 "From: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>")
451 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(b) <akr@jaist.ac.jp>"
452 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(b) <akr@jaist.ac.jp>")
455 "From: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?=(b) <akr@jaist.ac.jp>"
456 "From: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?=(b) <akr@jaist.ac.jp>")
459 "From: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
460 "From: (a)
\e$B$"
\e(B <akr@jaist.ac.jp>"
461 'permit-sticked-comment)
464 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(b) <akr@jaist.ac.jp>"
465 "From:
\e$B$"
\e(B(b) <akr@jaist.ac.jp>"
466 'permit-sticked-comment)
469 "From: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?=(b) <akr@jaist.ac.jp>"
470 "From: (a)
\e$B$"
\e(B(b) <akr@jaist.ac.jp>"
471 'permit-sticked-comment)
474 "From: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
475 "From: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>")
478 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\" <akr@jaist.ac.jp>"
479 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\" <akr@jaist.ac.jp>")
482 "From: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\" <akr@jaist.ac.jp>"
483 "From: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\" <akr@jaist.ac.jp>")
486 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)
488 "From:
\e$B$"
\e(B(
\e$B$"
\e(B) <akr@jaist.ac.jp>"
489 'permit-sticked-comment)
492 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
493 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>")
496 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
497 "To:
\e$B$"
\e(B<akr@jaist.ac.jp>"
498 'permit-sticked-special)
501 "To: <akr@jaist.ac.jp>,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
502 "To: <akr@jaist.ac.jp>,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>")
505 "To: <akr@jaist.ac.jp>,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
506 "To: <akr@jaist.ac.jp>,
\e$B$"
\e(B<akr@jaist.ac.jp>"
507 'permit-sticked-special)
510 "To: akr@jaist.ac.jp,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
511 "To: akr@jaist.ac.jp,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>")
514 "To: akr@jaist.ac.jp,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
515 "To: akr@jaist.ac.jp,
\e$B$"
\e(B<akr@jaist.ac.jp>"
516 'permit-sticked-special)
519 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:akr@jaist.ac.jp;"
520 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:akr@jaist.ac.jp;")
523 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:akr@jaist.ac.jp;"
524 "To:
\e$B$"
\e(B:akr@jaist.ac.jp;"
525 'permit-sticked-special)
528 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=<akr@jaist.ac.jp>;"
529 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=<akr@jaist.ac.jp>;")
532 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=<akr@jaist.ac.jp>;"
533 "To:
\e$B$"
\e(B:
\e$B$$
\e(B<akr@jaist.ac.jp>;"
534 'ignore-76bytes-limit 'permit-sticked-special)
537 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=<foo@bar>,=?ISO-2022-JP?B?GyRCJCYbKEI=?=<foo@bar>;,=?ISO-2022-JP?B?GyRCJCgbKEI=?=<foo@bar>"
538 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=<foo@bar>,=?ISO-2022-JP?B?GyRCJCYbKEI=?=<foo@bar>;,=?ISO-2022-JP?B?GyRCJCgbKEI=?=<foo@bar>")
541 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=<foo@bar>,=?ISO-2022-JP?B?GyRCJCYbKEI=?=<foo@bar>;,=?ISO-2022-JP?B?GyRCJCgbKEI=?=<foo@bar>"
542 "To:
\e$B$"
\e(B:
\e$B$$
\e(B<foo@bar>,
\e$B$&
\e(B<foo@bar>;,
\e$B$(
\e(B<foo@bar>"
543 'ignore-76bytes-limit 'permit-sticked-special)
546 "Subject:=?ISO-2022-JP?B?GyRCJCIbKEI=?="
547 "Subject:=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
550 "Subject:=?ISO-2022-JP?B?GyRCJCIbKEI=?="
552 'permit-sticked-special)
554 ;; Section 4: Decoding invalid inputs.
557 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?==?ISO-2022-JP?B?GyRCJCQbKEI=?=
559 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?==?ISO-2022-JP?B?GyRCJCQbKEI=?= <akr@jaist.ac.jp>")
562 "From: akr@jaist.ac.jp
563 (=?ISO-2022-JP?B?GyRCJCIbKEI=?=a=?ISO-2022-JP?B?GyRCJCQbKEI=?=)"
564 "From: akr@jaist.ac.jp (=?ISO-2022-JP?B?GyRCJCIbKEI=?=a=?ISO-2022-JP?B?GyRCJCQbKEI=?=)")
567 "From: akr@jaist.ac.jp
568 (=?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)"
569 "From: akr@jaist.ac.jp (=?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)")
572 "From: akr@jaist.ac.jp
573 (=?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)"
574 "From: akr@jaist.ac.jp (
\e$B$"
\e(B(
\e$B$$
\e(B)
\e$B$&
\e(B)"
575 'ignore-76bytes-limit)
578 "Subject: =?=?ISO-2022-JP?B?GyRCJCIbKEI=?="
579 "Subject: =?=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
582 "Subject: =?ISO-2022-JP=?ISO-2022-JP?B?GyRCJCIbKEI=?="
583 "Subject: =?ISO-2022-JP=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
586 "Subject: =?ISO-2022-JP?=?ISO-2022-JP?B?GyRCJCIbKEI=?="
587 "Subject: =?ISO-2022-JP?=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
590 "Subject: =?ISO-2022-JP?B=?ISO-2022-JP?B?GyRCJCIbKEI=?="
591 "Subject: =?ISO-2022-JP?B=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
594 "Subject: =?ISO-2022-JP?B?=?ISO-2022-JP?B?GyRCJCIbKEI=?="
595 "Subject: =?ISO-2022-JP?B?=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
598 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?ISO-2022-JP?B?GyRCJCIbKEI=?="
599 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
602 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI==?ISO-2022-JP?B?GyRCJCIbKEI=?="
603 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI==?ISO-2022-JP?B?GyRCJCIbKEI=?=")
606 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=?ISO-2022-JP?B?GyRCJCIbKEI=?="
607 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
610 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?==?ISO-2022-JP?B?GyRCJCIbKEI=?="
611 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?==?ISO-2022-JP?B?GyRCJCIbKEI=?=")
614 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI?="
615 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI?=")
618 "Subject: =?ISO-2022-JP?B?GyRCNFg-dBsoQg==?="
619 "Subject: =?ISO-2022-JP?B?GyRCNFg-dBsoQg==?=")
621 ;; Section 5: Encoding trivial inputs.
624 "From:
\e$B$"
\e(B <akr@jaist.ac.jp>"
625 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>")
628 "From: \"
\e$B$"
\e(B(
\e$B$"
\e(B)\" <akr@jaist.ac.jp>"
629 "From: =?ISO-2022-JP?B?GyRCJCIbKEIoGyRCJCIbKEIp?= <akr@jaist.ac.jp>")
632 "From: \"a\\\"b
\e$B$"
\e(Bc\\\\\" <akr@jaist.ac.jp>"
633 "From: =?ISO-2022-JP?B?YSJiGyRCJCIbKEJjXA==?= <akr@jaist.ac.jp>")
636 "Subject:
\e$B0$
\e(B
\e$BR_
\e(B"
637 "Subject: =?ISO-2022-JP?B?GyRCMCQbKEIgICAgICAgICAgICAgICAgICAgICAgICAgICAg?=
638 =?US-ASCII?Q?____________________________________________________________?=
639 =?ISO-2022-JP?B?ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBskQlJfGyhC?=")
642 "Subject:
\e$B0$
\e(B
\e$BR_
\e(B"
643 "Subject: =?ISO-2022-JP?B?GyQpQrCkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDS3w=="
644 'ignore-76bytes-limit 'ignore-75bytes-limit)
647 "From:
\e.A
\eN! <akr@jaist.ac.jp>"
\e*B
648 "From: =?ISO-8859-1?Q?=A1?= <akr@jaist.ac.jp>")
651 "From: \"abcdefghijklmnopqrst
\e.A
\eN!()\\\"\\\\\" <akr@jaist.ac.jp>"
\e*B
652 "From: =?ISO-8859-1?Q?abcdefghijklmnopqrst=A1=28=29=22=5C?= <akr@jaist.ac.jp>")
655 "From: akr@jaist.ac.jp (abcdefghijklmnopqrst
\e.A
\eN!\\(\\)\"\\\\)"
\e*B
656 "From: akr@jaist.ac.jp (=?ISO-8859-1?Q?abcdefghijklmnopqrst=A1=28=29\"=5C?=)")
659 "Subject:
\e$B$"
\e(B a
\e.H
\eN`"
\e*B
660 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?= a =?ISO-8859-8?Q?=E0?=")
663 "Subject:
\e.H
\eN`
\e$BNm
\e(B"
\e*B
664 "Subject: =?ISO-8859-8?Q?=E0?= =?ISO-2022-JP?B?GyRCTm0bKEI=?=")
667 "Subject:
\e.H
\eN`
\e$BNm
\e(B"
\e*B
668 '("Subject: =?ISO-8859-8?Q?=E0_?= =?ISO-2022-JP?B?GyRCTm0bKEI=?="
669 "Subject: =?ISO-8859-8?Q?=E0?= =?ISO-2022-JP?B?IBskQk5tGyhC?="))
672 "Subject:
\e.F
\eNC
\e$B4X?t
\e(B"
\e*B
673 '("Subject: =?ISO-8859-7?Q?=C3?= =?ISO-2022-JP?B?GyRCNFg/dBsoQg==?="
674 "Subject: =?ISO-2022-JP-2?B?Gy5GG05DGyRCNFg/dBsoQg==?="))
676 ;; Section 6: Encoding melancholy inputs.
679 "From: akr@jaist.ac.jp (
\e$B$"
\e(B(
\e$B$$
\e(B)
\e$B$&
\e(B)"
680 "From: akr@jaist.ac.jp
681 (=?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)"
682 'ignore-76bytes-limit)
685 "From: akr@jaist.ac.jp (
\e$B$"
\e(B(
\e$B$$
\e(B)
\e$B$&
\e(B)"
686 "From: akr@jaist.ac.jp (=?ISO-2022-JP?B?GyRCJCIbKEI=?=
687 =?ISO-2022-JP?B?GyhC?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=
688 =?ISO-2022-JP?B?GyhC?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)"
689 'zero-characters-encoded-word-hack)
692 "From:
\e$B$"
\e(B(
\e$B$"
\e(B) <akr@jaist.ac.jp>"
693 "From: =?ISO-2022-JP?B?GyRCJCIbKEIoGyRCJCIbKEIp?= <akr@jaist.ac.jp>"
694 'encode-sticked-comment-as-atom)
697 "From:
\e$B$"
\e(B(
\e$B$"
\e(B) <akr@jaist.ac.jp>"
698 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)
700 'permit-sticked-comment)
703 "From:
\e$B$"
\e(B(
\e$B$"
\e(B) <akr@jaist.ac.jp>"
704 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?= (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)
706 'separate-sticked-comment)
709 "To:
\e$B$"
\e(B<akr@jaist.ac.jp>"
710 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
711 'permit-sticked-special)
714 "To:
\e$B$"
\e(B<akr@jaist.ac.jp>"
715 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
716 'separate-sticked-special)
719 "To: <akr@jaist.ac.jp>,
\e$B$"
\e(B<akr@jaist.ac.jp>"
720 "To: <akr@jaist.ac.jp>,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
721 'permit-sticked-special)
724 "To: <akr@jaist.ac.jp>,
\e$B$"
\e(B<akr@jaist.ac.jp>"
725 "To: <akr@jaist.ac.jp>, =?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
726 'separate-sticked-special)
729 "To: akr@jaist.ac.jp,
\e$B$"
\e(B<akr@jaist.ac.jp>"
730 "To: akr@jaist.ac.jp,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
731 'permit-sticked-special)
734 "To: akr@jaist.ac.jp,
\e$B$"
\e(B<akr@jaist.ac.jp>"
735 "To: akr@jaist.ac.jp, =?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
736 'separate-sticked-special)
739 "To:
\e$B$"
\e(B:akr@jaist.ac.jp;"
740 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:akr@jaist.ac.jp;"
741 'permit-sticked-special)
744 "To:
\e$B$"
\e(B:akr@jaist.ac.jp;"
745 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?= :akr@jaist.ac.jp;"
746 'separate-sticked-special)
749 "To:
\e$B$"
\e(B:
\e$B$$
\e(B<akr@jaist.ac.jp>;"
750 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=<akr@jaist.ac.jp>;"
751 'ignore-76bytes-limit 'permit-sticked-special)
754 "To:
\e$B$"
\e(B:
\e$B$$
\e(B<akr@jaist.ac.jp>;"
755 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=
756 =?ISO-2022-JP?B?GyhC?=<akr@jaist.ac.jp>;"
757 'zero-characters-encoded-word-hack 'permit-sticked-special)
760 "To:
\e$B$"
\e(B:
\e$B$$
\e(B<akr@jaist.ac.jp>;"
761 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?= : =?ISO-2022-JP?B?GyRCJCQbKEI=?=
763 'separate-sticked-special)
766 "To:
\e$B$"
\e(B:
\e$B$$
\e(B<foo@bar>,
\e$B$&
\e(B<foo@bar>;,
\e$B$(
\e(B<foo@bar>"
767 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=<foo@bar>,=?ISO-2022-JP?B?GyRCJCYbKEI=?=<foo@bar>;,=?ISO-2022-JP?B?GyRCJCgbKEI=?=<foo@bar>"
768 'ignore-76bytes-limit 'permit-sticked-special)
771 "To:
\e$B$"
\e(B:
\e$B$$
\e(B<foo@bar>,
\e$B$&
\e(B<foo@bar>;,
\e$B$(
\e(B<foo@bar>"
772 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=
773 =?ISO-2022-JP?B?GyhC?=<foo@bar>,=?ISO-2022-JP?B?GyRCJCYbKEI=?=
774 =?ISO-2022-JP?B?GyhC?=<foo@bar>;,=?ISO-2022-JP?B?GyRCJCgbKEI=?=<foo@bar>"
775 'zero-characters-encoded-word-hack 'permit-sticked-special)
778 "To:
\e$B$"
\e(B:
\e$B$$
\e(B<foo@bar>,
\e$B$&
\e(B<foo@bar>;,
\e$B$(
\e(B<foo@bar>"
779 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?= : =?ISO-2022-JP?B?GyRCJCQbKEI=?=
780 <foo@bar>, =?ISO-2022-JP?B?GyRCJCYbKEI=?= <foo@bar>;,
781 =?ISO-2022-JP?B?GyRCJCgbKEI=?= <foo@bar>"
782 'separate-sticked-special)
784 ;; Section 7: Using quoted-encoded-words.
786 ;; quoted-encoded-word
\e$BI=8=
\e(B
788 ; RFC2047
\e$B$N%G%3!<%@$O@x:_E*$K
\e(B(
\e$B%G%3!<%I7k2L$G$J$/
\e(B) encoded-word
\e$B$=$N$b$N$r
\e(B
789 ;
\e$B=PNO$7$J$1$l$P$J$i$J$$$3$H$,$"$k!#
\e(B
791 ; 1.
\e$BCN$i$J$$
\e(B charset
\e$B$b$7$/$O
\e(B encoding
\e$B$,;XDj$5$l$F$$$?$H$-!#
\e(B
792 ; =?unknown-charset?known-encoding?some-encoded-text?=
793 ; =?known-charset?unknown-encoding?some-encoded-text?=
794 ; =?unknown-charset?unknown-encoding?some-encoded-text?=
796 ; 2.
\e$B%G%3!<%I$G$-$F$bFbMF$,7uF]$9$.$k$H$-!#
\e(B
797 ; Non ASCII
\e$B3HD%
\e(B RFC822
\e$B$NCf$K
\e(B =?US-ASCII?Q?=0D=0A=0D=0A?=
\e$B$N%G%3!<%I
\e(B
798 ;
\e$B7k2L$rKd$a9~$`$N$O4m81$9$.$k!#
\e(B
800 ;
\e$B$^$?!"%G%3!<%@$O
\e(B encoded-word
\e$B$N$h$&$K$_$($k%G%3!<%I7k2L$r=PNO$7$J$1
\e(B
801 ;
\e$B$l$P$J$i$J$$$3$H$b$"$k!#
\e(B
803 ; =?US-ASCII?Q?=3D=3FUS-ASCII=3FQ=3Ftext=3F=3D?=
805 ;
\e$B%G%3!<%@$,C1$J$kJ8;zNs$r=PNO$9$k>l9g!"C1=c$K$d$k$H
\e(B encoded-word
\e$B$=$N$b$N$H
\e(B
806 ; encoded-word
\e$B$N$h$&$K$_$($kJ8;zNs$r6hJL$G$-$J$$!#
\e(B
807 ;
\e$B$3$3$G$OJ8;zNsCf$G$=$l$i$r3N<B$K6hJL$7$FI=8=$9$kJ}K!$r<($9!#
\e(B
809 ; rule 1:
\e$BJ8;zNsCf$G
\e(B =?charset?encoding?text?=
\e$B$H$$$&%Q%?!<%s$K
\e(B
810 ;
\e$B%^%C%A$7$J$$ItJ,$O$=$NItJ,$N$^$^$NFbMF$rI=$9!#
\e(B
812 ; rule 2:
\e$BJ8;zNsCf$G
\e(B =?charset?encoding?text?=
\e$B$H$$$&%Q%?!<%s$K
\e(B
813 ;
\e$B%^%C%A$9$kItJ,$O
\e(B charset
\e$B$N@hF,$K
\e(B *
\e$B$,$$$/$DIU$$$F$$$k$+$GFbMF$N
\e(B
814 ;
\e$B2r<a$rJQ$($k!#
\e(B
816 ;
\e$B6v?t$N>l9g
\e(B(0, 2, 4, ...): charset
\e$B$N@hF,$N
\e(B *
\e$B$N?t$rH>J,$K$7$?J8;zNs
\e(B
817 ;
\e$B4q?t$N>l9g
\e(B(1, 3, 5, ...): charset
\e$B$N@hF,$N
\e(B *
\e$B$N?t$rH>J,
\e(B(
\e$B>.?tE@0J2<
\e(B
818 ;
\e$B@Z<N$F
\e(B)
\e$B$K$7$F!"$=$l$r
\e(B encoded-word
\e$B$H;W$C$F%G%3!<%I$7$?J8;zNs!#
\e(B
820 ; NOTE: *
\e$B$r
\e(B quoted-encoded-word
\e$BI=8=$N
\e(B quote
\e$BJ8;z$H8F$V!#
\e(B
822 ; NOTE:
\e$B8=;~E@
\e(B(1998/07/19)
\e$B$G
\e(B IANA
\e$B$K$O
\e(B *
\e$B$r4^$`
\e(B charset
\e$B$O
\e(B
823 ;
\e$BEPO?$5$l$F$$$J$$$N$G!"$=$l$i$N
\e(B charset
\e$B$r;H$C$?
\e(B
824 ; encoded-word
\e$B$rI=8=$9$k$K$O
\e(B *
\e$B$r
\e(B 1
\e$B$D$D$1$k$3$H$K$J$k!#
\e(B
826 ; =?US-ASCII?Q?abcdef?=
\e$B$H$$$&
\e(Bencoded-word : =?*US-ASCII?Q?abcdef?=
828 ; =?US-ASCII?Q?abcdef?=
\e$B$H$$$&J8;zNs
\e(B : =?US-ASCII?Q?abcdef?=
829 ; =?*US-ASCII?Q?abcdef?=
\e$B$H$$$&J8;zNs
\e(B : =?**US-ASCII?Q?abcdef?=
830 ; =?**US-ASCII?Q?abcdef?=
\e$B$H$$$&J8;zNs
\e(B : =?****US-ASCII?Q?abcdef?=
831 ; =?***US-ASCII?Q?abcdef?=
\e$B$H$$$&J8;zNs
\e(B : =?******US-ASCII?Q?abcdef?=
832 ; =?US-ASCII*?Q?abcdef?=
\e$B$H$$$&J8;zNs
\e(B : =?US-ASCII*?Q?abcdef?=
833 ; =?U*S-ASCII?Q?abcdef?=
\e$B$H$$$&J8;zNs
\e(B : =?U*S-ASCII?Q?abcdef?=
835 ; NOTE: encoded-word
\e$B$K8+$($kJ8;zNs$G
\e(B *
\e$B$,G\A}$5$l$k$N$O
\e(B charset
\e$B$N
\e(B
836 ;
\e$B@hF,$@$1$G$"$j!"
\e(Bencoding
\e$B$d
\e(B encoded-text
\e$B$O$?$H$(
\e(B *
\e$B$,F~$C$F$$$F$b
\e(B
837 ;
\e$BJQ2=$7$J$$!#$^$?!"
\e(Bcharset
\e$BCf$G$b
\e(B
\e$B@hF,0J30$N
\e(B *
\e$B$OJQ2=$7$J$$!#
\e(B
839 ; rule 3:
\e$BJ8;zNsA4BN$NFbMF$O!"
\e(Brule 1
\e$B$H
\e(B rule 2
\e$B$G2r<a$7$?3FItJ,$N
\e(B
840 ;
\e$BJ8;zNs$rC1=c$KO"7k$7$?J8;zNs$H$9$k!#
\e(B
842 ; NOTE: RFC2047
\e$B$G$O
\e(B encoded-word
\e$B$,6uGr$G6h@Z$i$l$J$1$l$P$J$i$J$$$H$+!"
\e(B
843 ; encoded-word
\e$B$O
\e(B 75bytes
\e$B0J2<$G$J$1$l$P$J$i$J$$$H$+!"
\e(B
844 ; encoded-word
\e$B$,4^$^$l$k9T$O
\e(B 76bytes
\e$B0J2<$G$J$1$l$P$J$i$J$$$J$I$H$$$&
\e(B
845 ;
\e$B5,Ls$,$"$k$,!"
\e(Bquoted-encoded-word
\e$BI=8=$G$O$=$l$i$O:NMQ$7$J$$!#
\e(B
846 ;
\e$BC1=c$K
\e(B encoded-word
\e$BFbIt$NJ8K!$@$1$rMxMQ$9$k!#
\e(B
847 ; (
\e$BK\<AE*$K$O0[$J$kJ8K!$r:NMQ$9$k$3$H$b2DG=$G$"$k$,!"
\e(BRFC2047
\e$B$K7I0U$r
\e(B
848 ;
\e$BI=$7$F
\e(B encoded-word
\e$B$NJ8K!$r:NMQ$9$k!#
\e(B)
850 ; NOTE: quoted-encoded-word
\e$BI=8=$7$?J8;zNs$NO"7k$O0BA4$G$O$J$$!#
\e(B
851 ; =?*US-ASCII?Q?ab
\e$B$H
\e(B cd?=
\e$B$H$$$&
\e(B quoted-encoded-word
\e$BI=8=$7$?J8;zNs$O
\e(B
852 ;
\e$B$=$l$>$l$=$NJ8;zNs$=$N$b$N$rI=8=$9$k$,!"$=$l$i$rO"7k$7$?J8;zNs
\e(B
853 ; =?*US-ASCII?Q?abcd?=
\e$B$O
\e(B abcd
\e$B$H$$$&J8;zNs$rI=8=$9$k$3$H$K$J$j!"
\e(B
854 ;
\e$B$=$l$>$l$NFbMF$NO"7k$H$O$J$i$J$$!#
\e(B
856 ;
\e$B$3$l$O$H$/$K
\e(B Non ASCII
\e$B3HD%
\e(B RFC822
\e$B$NCf$K
\e(B quoted-encoded-word
\e$BI=8=$r
\e(B
857 ;
\e$BKd$a9~$`$H$-$K5$$rIU$1$J$1$l$P$J$i$J$$!#
\e(B(
\e$BKd$a9~$s$@7k2L$O@5$7$$
\e(B
858 ; quoted-encoded-word
\e$BI=8=$H$O$J$i$J$$$+$bCN$l$J$$!#
\e(B)
861 "Subject: =?Unknown-Charset?B?gqA=?="
862 "Subject: =?*Unknown-Charset?B?gqA=?="
863 'quoted-encoded-word)
866 "Subject: =?US-ASCII?G?H4sIAMsIsjUCA0tMSk5JTQMA7zmOSwYAAAA?="
867 "Subject: =?*US-ASCII?G?H4sIAMsIsjUCA0tMSk5JTQMA7zmOSwYAAAA?="
868 'quoted-encoded-word)
871 "Subject: =?US-ASCII?Unknown-Encoding?H4sIAMsIsjUCA0tMSk5JTQMA7zmOSwYAAAA?="
872 "Subject: =?*US-ASCII?Unknown-Encoding?H4sIAMsIsjUCA0tMSk5JTQMA7zmOSwYAAAA?="
873 'quoted-encoded-word)
876 "Subject: =?Unknown-Charset?B?gqA=?= =?Unknown-Charset?B?gqA=?="
877 "Subject: =?*Unknown-Charset?B?gqA=?==?*Unknown-Charset?B?gqA=?="
878 'quoted-encoded-word)
881 "Subject: =?Unknown-Charset?B?gqA=?= =?Unknown-Charset?B?gqA=?="
882 "Subject: =?*Unknown-Charset?B?gqA=?==?*Unknown-Charset?B?gqA=?="
883 'quoted-encoded-word)
886 "Subject: =?Unknown-Charset?B?gqA=?=
887 =?Unknown-Charset?B?gqA=?="
888 "Subject: =?*Unknown-Charset?B?gqA=?==?*Unknown-Charset?B?gqA=?="
889 'quoted-encoded-word)
892 "Subject: =?Unknown-Charset?B?gqA=?=
893 =?Unknown-Charset?B?gqA=?="
894 "Subject: =?*Unknown-Charset?B?gqA=?==?*Unknown-Charset?B?gqA=?="
895 'quoted-encoded-word)
898 "Subject: a=?Unknown-Charset?B?gqA=?="
899 "Subject: a=?Unknown-Charset?B?gqA=?="
900 'quoted-encoded-word)
903 "Subject: =?Unknown-Charset?B?gqA=?=b"
904 "Subject: =?Unknown-Charset?B?gqA=?=b"
905 'quoted-encoded-word)
908 "Subject: a=?Unknown-Charset?B?gqA=?=b"
909 "Subject: a=?Unknown-Charset?B?gqA=?=b"
910 'quoted-encoded-word)
913 "Subject: a =?Unknown-Charset?B?gqA=?= b"
914 "Subject: a =?*Unknown-Charset?B?gqA=?= b"
915 'quoted-encoded-word)
918 "Subject: =?ISO-2022-JP?B?DQoNCg==?="
919 "Subject: =?*US-ASCII?Q?=0D=0A=0D=0A?="
920 'quoted-encoded-word)
923 "Subject: =?US-ASCII?Q?a=0D=0A_b?="
924 "Subject: a=?*US-ASCII?Q?=0D=0A?= b"
925 'quoted-encoded-word)
928 "Subject: =?US-ASCII?Q?a=0D=0Ab?="
929 "Subject: a=?*US-ASCII?Q?=0D=0A?=b"
930 'quoted-encoded-word)
936 ;----------------------------------------------------------------------------