ee91888d37d81c2573c83b90828ab73407a32405
[elisp/flim.git] / TESTPAT
1 ;----------------------------------------------------------------------------
2 ;-------- This sequece of HYPHEN-MINUS is 76 bytes long. --------------------
3 ;----------------------------------------------------------------------------
4
5 ; options:
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
15 ;separate-sticked-tokens-for-fold  ; violate the policy preserving absence of space
16 ;encode-long-ascii-string-for-fold ; violate the policy preserving US-ASCII string
17 ;divide-atom-for-fold              ; violate tne policy preserving absence of space
18
19 ;;; test driver
20
21 (setq decode-test 'decode-flam)
22 (setq encode-test 'encode-flam)
23
24 (setq decode-succ-count 0)
25 (setq decode-all-count 0)
26 (defun decode (src dsts &rest opts)
27   (if (stringp dsts) (setq dsts (list dsts)))
28   (setq decode-all-count (1+ decode-all-count))
29   (let ((res (condition-case nil
30                (apply decode-test src dsts opts)
31                (error nil))))
32     (if (eq res t)
33       (progn
34         (setq decode-succ-count (1+ decode-succ-count))
35         (insert "\n'dsucc"))
36       (insert (format "\n%S\n'dfail" res)))
37     res))
38
39 (setq encode-succ-count 0)
40 (setq encode-all-count 0)
41 (defun encode (src dsts &rest opts)
42   (if (stringp dsts) (setq dsts (list dsts)))
43   (setq encode-all-count (1+ decode-all-count))
44   (let ((res (condition-case nil
45                (apply encode-test src dsts opts)
46                (error nil))))
47     (if (eq res t)
48       (progn
49         (setq encode-succ-count (1+ encode-succ-count))
50         (insert "\n'esucc"))
51       (insert (format "\n%S\n'efail" res)))
52     res))
53
54 (defun report ()
55   (insert
56     (format "\n\"Decode: %d/%d  Encode: %d/%d  Total: %d/%d\""
57       decode-succ-count decode-all-count
58       encode-succ-count encode-all-count
59       (+ decode-succ-count encode-succ-count)
60       (+ decode-all-count encode-all-count))))
61
62 ;;; FLAM specific part (FLIM is OK)
63
64 (defun decode-flam (src dsts &rest opts)
65   (setq eword-lexical-analyze-cache nil)
66   (setq eword-decode-sticked-encoded-word
67     (or (memq 'permit-sticked-comment opts)
68         (memq 'permit-sticked-special opts)))
69   (setq eword-decode-quoted-encoded-word nil)
70   (with-temp-buffer
71     (insert src "\n" mail-header-separator)
72     (eword-decode-header 'us-ascii mail-header-separator)
73     (goto-char (point-min))
74     (std11-narrow-to-header mail-header-separator)
75     (std11-field-end)
76     (let ((result (buffer-substring (point-min) (point))))
77       (if (member result dsts) t result))))
78
79 (defun encode-flam (src dsts &rest opts)
80   (setq eword-lexical-analyze-cache nil)
81   (setq eword-decode-sticked-encoded-word nil)
82   (setq eword-decode-quoted-encoded-word nil)
83   (with-temp-buffer
84     (insert src "\n" mail-header-separator)
85     (goto-char (point-min))
86     (eword-encode-header 'us-ascii)
87     (goto-char (point-min))
88     (std11-narrow-to-header mail-header-separator)
89     (std11-field-end)
90     (let ((result (buffer-substring (point-min) (point))))
91       (if (member result dsts) t result))))
92
93 ;;;start-test;;;
94
95 ;; Section 1: Decoding examples from RFC2047
96
97 (decode
98 "From: =?US-ASCII?Q?Keith_Moore?= <moore@cs.utk.edu>"
99 "From: Keith Moore <moore@cs.utk.edu>")
100
101 (decode
102 "To: =?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <keld@dkuug.dk>"
103 "To: Keld J\e.A\eNxrn Simonsen <keld@dkuug.dk>")\e*B
104
105 (decode
106 "CC: =?ISO-8859-1?Q?Andr=E9?= Pirard <PIRARD@vm1.ulg.ac.be>"
107 "CC: Andr\e.A\eNi Pirard <PIRARD@vm1.ulg.ac.be>")\e*B
108
109 (decode
110 "Subject: =?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=
111  =?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?="
112 "Subject: If you can read this you understand the example.")
113
114 (decode
115 "From: =?ISO-8859-1?Q?Olle_J=E4rnefors?= <ojarnef@admin.kth.se>"
116 "From: Olle J\e.A\eNdrnefors <ojarnef@admin.kth.se>")\e*B
117
118 (decode
119 "From: =?ISO-8859-1?Q?Patrik_F=E4ltstr=F6m?= <paf@nada.kth.se>"
120 "From: Patrik F\e.A\eNdltstr\eNvm <paf@nada.kth.se>")\e*B
121
122 (decode
123 "From: Nathaniel Borenstein <nsb@thumper.bellcore.com>
124         (=?iso-8859-8?b?7eXs+SDv4SDp7Oj08A==?=)"
125 "From: Nathaniel Borenstein <nsb@thumper.bellcore.com>  (\e.H\eNm\eNe\eNl\eNy \eNo\eNa \eNi\eNl\eNh\eNt\eNp)")\e*B
126
127 (decode
128 "From: foo@bar.baz (=?ISO-8859-1?Q?a?=)"
129 "From: foo@bar.baz (a)")
130
131 (decode
132 "From: foo@bar.baz (=?ISO-8859-1?Q?a?= b)"
133 "From: foo@bar.baz (a b)")
134
135 (decode
136 "From: foo@bar.baz (=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=)"
137 "From: foo@bar.baz (ab)")
138
139 (decode
140 "From: foo@bar.baz (=?ISO-8859-1?Q?a?=  =?ISO-8859-1?Q?b?=)"
141 "From: foo@bar.baz (ab)")
142
143 (decode
144 "From: foo@bar.baz (=?ISO-8859-1?Q?a?=
145         =?ISO-8859-1?Q?b?=)"
146 "From: foo@bar.baz (ab)")
147
148 (decode
149 "From: foo@bar.baz (=?ISO-8859-1?Q?a_b?=)"
150 "From: foo@bar.baz (a b)")
151
152 (decode
153 "From: foo@bar.baz (=?ISO-8859-1?Q?a?= =?ISO-8859-2?Q?_b?=)"
154 "From: foo@bar.baz (a b)")
155
156 (decode
157 "Subject: (=?ISO-8859-1?Q?a?=)"
158 "Subject: (=?ISO-8859-1?Q?a?=)")
159
160 (decode
161 "Subject: (=?ISO-8859-1?Q?a?= b)"
162 "Subject: (=?ISO-8859-1?Q?a?= b)")
163
164 (decode
165 "Subject: (=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=)"
166 "Subject: (=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=)")
167
168 (decode
169 "Subject: (=?ISO-8859-1?Q?a?=  =?ISO-8859-1?Q?b?=)"
170 "Subject: (=?ISO-8859-1?Q?a?=  =?ISO-8859-1?Q?b?=)")
171
172 (decode
173 "Subject: (=?ISO-8859-1?Q?a?=
174         =?ISO-8859-1?Q?b?=)"
175 "Subject: (=?ISO-8859-1?Q?a?=   =?ISO-8859-1?Q?b?=)")
176
177 (decode
178 "Subject: (=?ISO-8859-1?Q?a_b?=)"
179 "Subject: (=?ISO-8859-1?Q?a_b?=)")
180
181 (decode
182 "Subject: (=?ISO-8859-1?Q?a?= =?ISO-8859-2?Q?_b?=)"
183 "Subject: (=?ISO-8859-1?Q?a?= =?ISO-8859-2?Q?_b?=)")
184
185 ;; Section 2: Decoding proper inputs.
186
187 (decode
188 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
189 "From: \e$B$"\e(B <akr@jaist.ac.jp>")
190
191 (decode
192 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?= =?ISO-2022-JP?B?GyRCJCQbKEI=?=
193  <akr@jaist.ac.jp>"
194 "From: \e$B$"$$\e(B <akr@jaist.ac.jp>")
195
196 (decode
197 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=
198  =?ISO-2022-JP?B?GyRCJCQbKEI=?=
199  <akr@jaist.ac.jp>"
200 "From: \e$B$"$$\e(B <akr@jaist.ac.jp>")
201
202 (decode
203 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=
204         =?ISO-2022-JP?B?GyRCJCQbKEI=?=
205  <akr@jaist.ac.jp>"
206 "From: \e$B$"$$\e(B <akr@jaist.ac.jp>")
207
208 (decode
209 "From: akr@jaist.ac.jp (=?ISO-2022-JP?B?GyRCJCIbKEI=?=
210  =?ISO-2022-JP?B?GyhC?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=
211  =?ISO-2022-JP?B?GyhC?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)"
212 "From: akr@jaist.ac.jp (\e$B$"\e(B(\e$B$$\e(B)\e$B$&\e(B)")
213
214 (decode
215 "From: a=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
216 "From: a=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>")
217
218 (decode
219 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=b <akr@jaist.ac.jp>"
220 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=b <akr@jaist.ac.jp>")
221
222 (decode
223 "From: a=?ISO-2022-JP?B?GyRCJCIbKEI=?=b <akr@jaist.ac.jp>"
224 "From: a=?ISO-2022-JP?B?GyRCJCIbKEI=?=b <akr@jaist.ac.jp>")
225
226 (decode
227 "From: \"=?ISO-2022-JP?B?GyRCJCIbKEI=?=\" <akr@jaist.ac.jp>"
228 "From: \"=?ISO-2022-JP?B?GyRCJCIbKEI=?=\" <akr@jaist.ac.jp>")
229
230 (decode
231 "From: \"\\\"\\\\\" =?ISO-2022-JP?B?GyRCJCIbKEI=?= \"\\\"\\\\\" <akr@jaist.ac.jp>"
232 "From: \"\\\"\\\\\" \e$B$"\e(B \"\\\"\\\\\" <akr@jaist.ac.jp>")
233
234 (decode
235 "From: < =?ISO-2022-JP?B?GyRCJCIbKEI=?= @jaist.ac.jp>"
236 "From: < =?ISO-2022-JP?B?GyRCJCIbKEI=?= @jaist.ac.jp>")
237
238 (decode
239 "From: =?ISO-2022-JP?Q?=1B=24BAA=1B=28B?= <akr@jaist.ac.jp>"
240 "From: \e$BAA\e(B <akr@jaist.ac.jp>")
241
242 (decode
243 "From: =?ISO-2022-JP?Q?=1B$BAA=1B(B?= ) <akr@jaist.ac.jp>"
244 "From: =?ISO-2022-JP?Q?=1B$BAA=1B(B?= ) <akr@jaist.ac.jp>")
245
246 (decode
247 "From: (=?US-ASCII?Q?(?=)foo@bar.baz(=?US-ASCII?Q?))baz@bar.foo(?=)"
248 "From: (=?US-ASCII?Q?(?=)foo@bar.baz(=?US-ASCII?Q?))baz@bar.foo(?=)")
249
250 (decode
251 "From: =?ISO-2022-JP?B?GyRCJCIbKEIoGyRCJCIbKEIp?= <akr@jaist.ac.jp>"
252 "From: \"\e$B$"\e(B(\e$B$"\e(B)\" <akr@jaist.ac.jp>")
253
254 (decode
255 "From: =?US-ASCII?Q?=28?= <akr@jaist.ac.jp>, =?US-ASCII?Q?=29?= <akr@jaist.ac.jp>"
256 "From: \"(\" <akr@jaist.ac.jp>, \")\" <akr@jaist.ac.jp>")
257
258 (decode
259 "From: =?ISO-2022-JP?B?YSJiGyRCJCIbKEJjXA==?= <akr@jaist.ac.jp>"
260 "From: \"a\\\"b\e$B$"\e(Bc\\\\\" <akr@jaist.ac.jp>")
261
262 (decode
263 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?="
264 "Subject: \e$B$"\e(B")
265
266 (decode
267 "Subject: a=?ISO-2022-JP?B?GyRCJCIbKEI=?="
268 "Subject: a=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
269
270 (decode
271 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=b"
272 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=b")
273
274 (decode
275 "Subject: a=?ISO-2022-JP?B?GyRCJCIbKEI=?=b"
276 "Subject: a=?ISO-2022-JP?B?GyRCJCIbKEI=?=b")
277
278 (decode
279 "Subject: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?="
280 "Subject: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
281
282 (decode
283 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(b)"
284 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(b)")
285
286 (decode
287 "Subject: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?=(b)"
288 "Subject: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?=(b)")
289
290 (decode
291 "Subject: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?="
292 "Subject: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
293
294 (decode
295 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\""
296 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\"")
297
298 (decode
299 "Subject: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\""
300 "Subject: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\"")
301
302 (decode
303 "Subject: (Re: =?ISO-2022-JP?B?GyRCJCIbKEI=?=)"
304 "Subject: (Re: =?ISO-2022-JP?B?GyRCJCIbKEI=?=)")
305
306 (decode
307 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:"
308 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:")
309
310 (decode
311 "Subject: =?ISO-2022-JP?B??="
312 "Subject: =?ISO-2022-JP?B??=")
313
314 (decode
315 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?= a
316  =?ISO-2022-JP?B?GyRCJCQbKEI=?="
317 "Subject: \e$B$"\e(B a \e$B$$\e(B")
318
319 (decode
320 "Subject: =?ISO-2022-JP?B?GyRCMCQbKEIgICAgICAgICAgICAgICAgICAgICAgICAgICAg?=
321  =?US-ASCII?Q?____________________________________________________________?=
322  =?ISO-2022-JP?B?ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBskQlJfGyhC?="
323 "Subject: \e$B0$\e(B                                                                                                                          \e$BR_\e(B")
324
325 (decode
326 "From: =?ISO-8859-1?Q?abcdefghijklmnopqrst=A1=28=29=22=5C?= <akr@jaist.ac.jp>"
327 "From: \"abcdefghijklmnopqrst\e.A\eN!()\\\"\\\\\" <akr@jaist.ac.jp>")\e*B
328
329 (decode
330 "Subject: ?= =?"
331 "Subject: ?= =?")
332
333 (decode
334 "Subject: \" =?ISO-2022-JP?B?GyRCJCIbKEI=?= \""
335 "Subject: \" \e$B$"\e(B \"")
336
337 (decode
338 "From: \"\\\\\" =?ISO-2022-JP?B?GyRCJCIbKEI=?= \"\" <akr@jaist.ac.jp>"
339 "From: \"\\\\\" \e$B$"\e(B \"\" <akr@jaist.ac.jp>")
340
341 (decode
342 "Subject: =?ISO-2022-JP?Q?=1B$B$\"=1B(B_=1B$B$\"=1B(B?="
343 "Subject: \e$B$"\e(B \e$B$"\e(B")
344
345 (decode
346 "Subject: =?ISO-2022-JP?Q?=1B$B$\"=1B(B =1B$B$\"=1B(B?="
347 "Subject: =?ISO-2022-JP?Q?=1B$B$\"=1B(B =1B$B$\"=1B(B?=")
348
349 (decode
350 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?= a =?ISO-8859-8?Q?=E0?="
351 "Subject: \e$B$"\e(B a \e.H\eN`")\e*B
352
353 (decode
354 "Subject: =?ISO-8859-8?Q?=E0?= =?ISO-2022-JP?B?GyRCTm0bKEI=?="
355 "Subject: \e.H\eN`\e$BNm\e(B")\e*B
356
357 (decode
358 "Subject: =?ISO-8859-8?Q?=E0_?= =?ISO-2022-JP?B?GyRCTm0bKEI=?="
359 "Subject: \e.H\eN` \e$BNm\e(B")\e*B
360
361 (decode
362 "Subject: =?ISO-2022-JP-2?B?Gy5GG05DGyRCNFg/dBsoQg==?="
363 "Subject: \e.F\eNC\e$B4X?t\e(B")\e*B
364
365 (decode
366 "Subject: =?ISO-8859-7?Q?=C3?= =?ISO-2022-JP?B?GyRCNFg/dBsoQg==?="
367 "Subject: \e.F\eNC\e$B4X?t\e(B")\e*B
368
369 (decode
370 "Subject: =?Shift_JIS?B?gqA=?="
371 "Subject: \e$B$"\e(B"
372 'quoted-encoded-word)
373
374 (decode
375 "Subject: =?EUC-JP?B?pKI=?="
376 "Subject: \e$B$"\e(B"
377 'quoted-encoded-word)
378
379 (decode
380 "Subject: = =?ISO-2022-JP?B?GyRCJCIbKEI=?="
381 "Subject: = \e$B$"\e(B")
382
383 (decode
384 "Subject: =? =?ISO-2022-JP?B?GyRCJCIbKEI=?="
385 "Subject: =? \e$B$"\e(B")
386
387 (decode
388 "Subject: =?ISO-2022-JP =?ISO-2022-JP?B?GyRCJCIbKEI=?="
389 "Subject: =?ISO-2022-JP \e$B$"\e(B")
390
391 (decode
392 "Subject: =?ISO-2022-JP? =?ISO-2022-JP?B?GyRCJCIbKEI=?="
393 "Subject: =?ISO-2022-JP? \e$B$"\e(B")
394
395 (decode
396 "Subject: =?ISO-2022-JP?B =?ISO-2022-JP?B?GyRCJCIbKEI=?="
397 "Subject: =?ISO-2022-JP?B \e$B$"\e(B")
398
399 (decode
400 "Subject: =?ISO-2022-JP?B? =?ISO-2022-JP?B?GyRCJCIbKEI=?="
401 "Subject: =?ISO-2022-JP?B? \e$B$"\e(B")
402
403 (decode
404 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI =?ISO-2022-JP?B?GyRCJCIbKEI=?="
405 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI \e$B$"\e(B")
406
407 (decode
408 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI= =?ISO-2022-JP?B?GyRCJCIbKEI=?="
409 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI= \e$B$"\e(B")
410
411 (decode
412 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=? =?ISO-2022-JP?B?GyRCJCIbKEI=?="
413 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=? \e$B$"\e(B")
414
415 (decode
416 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?= =?ISO-2022-JP?B?GyRCJCIbKEI=?="
417 "Subject: \e$B$"$"\e(B")
418
419 (decode
420 "Subject: ==?ISO-2022-JP?B?GyRCJCIbKEI=?="
421 "Subject: ==?ISO-2022-JP?B?GyRCJCIbKEI=?=")
422
423 (decode
424 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=="
425 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?==")
426
427 (decode
428 "From: akr@jaist.ac.jp (\\=?ISO-2022-JP?B?GyRCJCIbKEI=?=)"
429 "From: akr@jaist.ac.jp (\\=?ISO-2022-JP?B?GyRCJCIbKEI=?=)")
430
431 (decode
432 "=?ISO-2022-JP?B?GyRCJCIbKEI=?=: test"
433 "=?ISO-2022-JP?B?GyRCJCIbKEI=?=: test")
434
435 (decode
436 "=?ISO-2022-JP?B?GyRCJCIbKEI=?=: test"
437 "=?ISO-2022-JP?B?GyRCJCIbKEI=?=: test"
438 'permit-sticked-special)
439
440 ;; Section 3: Decoding melancholic inputs.
441
442 (decode
443 "From:=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
444 "From:=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>")
445
446 (decode
447 "From: akr@jaist.ac.jp
448  (=?ISO-2022-JP?B?GyRCJCIbKEI=?=\\a=?ISO-2022-JP?B?GyRCJCQbKEI=?=)"
449 "From: akr@jaist.ac.jp (\e$B$"\e(B\\a\e$B$$\e(B)")
450
451 (decode
452 "From: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
453 "From: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>")
454
455 (decode
456 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(b) <akr@jaist.ac.jp>"
457 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(b) <akr@jaist.ac.jp>")
458
459 (decode
460 "From: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?=(b) <akr@jaist.ac.jp>"
461 "From: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?=(b) <akr@jaist.ac.jp>")
462
463 (decode
464 "From: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
465 "From: (a)\e$B$"\e(B <akr@jaist.ac.jp>"
466 'permit-sticked-comment)
467
468 (decode
469 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(b) <akr@jaist.ac.jp>"
470 "From: \e$B$"\e(B(b) <akr@jaist.ac.jp>"
471 'permit-sticked-comment)
472
473 (decode
474 "From: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?=(b) <akr@jaist.ac.jp>"
475 "From: (a)\e$B$"\e(B(b) <akr@jaist.ac.jp>"
476 'permit-sticked-comment)
477
478 (decode
479 "From: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
480 "From: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>")
481
482 (decode
483 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\" <akr@jaist.ac.jp>"
484 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\" <akr@jaist.ac.jp>")
485
486 (decode
487 "From: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\" <akr@jaist.ac.jp>"
488 "From: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\" <akr@jaist.ac.jp>")
489
490 (decode
491 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)
492  <akr@jaist.ac.jp>"
493 "From: \e$B$"\e(B(\e$B$"\e(B) <akr@jaist.ac.jp>"
494 'permit-sticked-comment)
495
496 (decode
497 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
498 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>")
499
500 (decode
501 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
502 "To: \e$B$"\e(B<akr@jaist.ac.jp>"
503 'permit-sticked-special)
504
505 (decode
506 "To: <akr@jaist.ac.jp>,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
507 "To: <akr@jaist.ac.jp>,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>")
508
509 (decode
510 "To: <akr@jaist.ac.jp>,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
511 "To: <akr@jaist.ac.jp>,\e$B$"\e(B<akr@jaist.ac.jp>"
512 'permit-sticked-special)
513
514 (decode
515 "To: akr@jaist.ac.jp,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
516 "To: akr@jaist.ac.jp,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>")
517
518 (decode
519 "To: akr@jaist.ac.jp,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
520 "To: akr@jaist.ac.jp,\e$B$"\e(B<akr@jaist.ac.jp>"
521 'permit-sticked-special)
522
523 (decode
524 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:akr@jaist.ac.jp;"
525 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:akr@jaist.ac.jp;")
526
527 (decode
528 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:akr@jaist.ac.jp;"
529 "To: \e$B$"\e(B:akr@jaist.ac.jp;"
530 'permit-sticked-special)
531
532 (decode
533 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=<akr@jaist.ac.jp>;"
534 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=<akr@jaist.ac.jp>;")
535
536 (decode
537 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=<akr@jaist.ac.jp>;"
538 "To: \e$B$"\e(B:\e$B$$\e(B<akr@jaist.ac.jp>;"
539 'ignore-76bytes-limit 'permit-sticked-special)
540
541 (decode
542 "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>"
543 "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>")
544
545 (decode
546 "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>"
547 "To: \e$B$"\e(B:\e$B$$\e(B<foo@bar>,\e$B$&\e(B<foo@bar>;,\e$B$(\e(B<foo@bar>"
548 'ignore-76bytes-limit 'permit-sticked-special)
549
550 (decode
551 "Subject:=?ISO-2022-JP?B?GyRCJCIbKEI=?="
552 "Subject:=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
553
554 (decode
555 "Subject:=?ISO-2022-JP?B?GyRCJCIbKEI=?="
556 "Subject:\e$B$"\e(B"
557 'permit-sticked-special)
558
559 ;; Section 4: Decoding invalid inputs.
560
561 (decode
562 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?==?ISO-2022-JP?B?GyRCJCQbKEI=?=
563  <akr@jaist.ac.jp>"
564 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?==?ISO-2022-JP?B?GyRCJCQbKEI=?= <akr@jaist.ac.jp>")
565
566 (decode
567 "From: akr@jaist.ac.jp
568  (=?ISO-2022-JP?B?GyRCJCIbKEI=?=a=?ISO-2022-JP?B?GyRCJCQbKEI=?=)"
569 "From: akr@jaist.ac.jp (=?ISO-2022-JP?B?GyRCJCIbKEI=?=a=?ISO-2022-JP?B?GyRCJCQbKEI=?=)")
570
571 (decode
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 (=?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)")
575
576 (decode
577 "From: akr@jaist.ac.jp
578  (=?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)"
579 "From: akr@jaist.ac.jp (\e$B$"\e(B(\e$B$$\e(B)\e$B$&\e(B)"
580 'ignore-76bytes-limit)
581
582 (decode
583 "Subject: =?=?ISO-2022-JP?B?GyRCJCIbKEI=?="
584 "Subject: =?=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
585
586 (decode
587 "Subject: =?ISO-2022-JP=?ISO-2022-JP?B?GyRCJCIbKEI=?="
588 "Subject: =?ISO-2022-JP=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
589
590 (decode
591 "Subject: =?ISO-2022-JP?=?ISO-2022-JP?B?GyRCJCIbKEI=?="
592 "Subject: =?ISO-2022-JP?=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
593
594 (decode
595 "Subject: =?ISO-2022-JP?B=?ISO-2022-JP?B?GyRCJCIbKEI=?="
596 "Subject: =?ISO-2022-JP?B=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
597
598 (decode
599 "Subject: =?ISO-2022-JP?B?=?ISO-2022-JP?B?GyRCJCIbKEI=?="
600 "Subject: =?ISO-2022-JP?B?=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
601
602 (decode
603 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?ISO-2022-JP?B?GyRCJCIbKEI=?="
604 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
605
606 (decode
607 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI==?ISO-2022-JP?B?GyRCJCIbKEI=?="
608 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI==?ISO-2022-JP?B?GyRCJCIbKEI=?=")
609
610 (decode
611 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=?ISO-2022-JP?B?GyRCJCIbKEI=?="
612 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
613
614 (decode
615 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?==?ISO-2022-JP?B?GyRCJCIbKEI=?="
616 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?==?ISO-2022-JP?B?GyRCJCIbKEI=?=")
617
618 (decode
619 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI?="
620 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI?=")
621
622 (decode
623 "Subject: =?ISO-2022-JP?B?GyRCNFg-dBsoQg==?="
624 "Subject: =?ISO-2022-JP?B?GyRCNFg-dBsoQg==?=")
625
626 ;; Section 5: Encoding proper inputs.
627
628 (encode
629 "From: \e$B$"\e(B <akr@jaist.ac.jp>"
630 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>")
631
632 (encode
633 "From: \e$B$"$$\e(B <akr@jaist.ac.jp>"
634 "From: =?ISO-2022-JP?B?GyRCJCIkJBsoQg==?= <akr@jaist.ac.jp>")
635
636 (encode
637 "From: \e$B$"\e(B \e$B$$\e(B <akr@jaist.ac.jp>"
638 "From: =?ISO-2022-JP?B?GyRCJCIbKEIgGyRCJCQbKEI=?= <akr@jaist.ac.jp>")
639
640 (encode
641 "From: \"\e$B$"\e(B(\e$B$"\e(B)\" <akr@jaist.ac.jp>"
642 "From: =?ISO-2022-JP?B?GyRCJCIbKEIoGyRCJCIbKEIp?= <akr@jaist.ac.jp>")
643
644 (encode
645 "From: \"a\\\"b\e$B$"\e(Bc\\\\\" <akr@jaist.ac.jp>"
646 "From: =?ISO-2022-JP?B?YSJiGyRCJCIbKEJjXA==?= <akr@jaist.ac.jp>")
647
648 (encode
649 "Subject: \e$B0$\e(B                                                                                                                          \e$BR_\e(B"
650 "Subject: =?ISO-2022-JP?B?GyRCMCQbKEIgICAgICAgICAgICAgICAgICAgICAgICAgICAg?=
651  =?US-ASCII?Q?____________________________________________________________?=
652  =?ISO-2022-JP?B?ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBskQlJfGyhC?=")
653
654 (encode
655 "Subject: \e$B0$\e(B                                                                                                                          \e$BR_\e(B"
656 "Subject: =?ISO-2022-JP?B?GyQpQrCkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDS3w=="
657 'ignore-76bytes-limit 'ignore-75bytes-limit)
658
659 (encode
660 "From: \e.A\eN! <akr@jaist.ac.jp>"\e*B
661 "From: =?ISO-8859-1?Q?=A1?= <akr@jaist.ac.jp>")
662
663 (encode
664 "From: \"abcdefghijklmnopqrst\e.A\eN!()\\\"\\\\\" <akr@jaist.ac.jp>"\e*B
665 "From: =?ISO-8859-1?Q?abcdefghijklmnopqrst=A1=28=29=22=5C?= <akr@jaist.ac.jp>")
666
667 (encode
668 "From: akr@jaist.ac.jp (abcdefghijklmnopqrst\e.A\eN!\\(\\)\"\\\\)"\e*B
669 "From: akr@jaist.ac.jp (=?ISO-8859-1?Q?abcdefghijklmnopqrst=A1=28=29\"=5C?=)")
670
671 (encode
672 "Subject: \e$B$"\e(B a \e.H\eN`"\e*B
673 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?= a =?ISO-8859-8?Q?=E0?=")
674
675 (encode
676 "Subject: \e.H\eN`\e$BNm\e(B"\e*B
677 "Subject: =?ISO-8859-8?Q?=E0?= =?ISO-2022-JP?B?GyRCTm0bKEI=?=")
678
679 (encode
680 "Subject: \e.H\eN` \e$BNm\e(B"\e*B
681 '("Subject: =?ISO-8859-8?Q?=E0_?= =?ISO-2022-JP?B?GyRCTm0bKEI=?="
682   "Subject: =?ISO-8859-8?Q?=E0?= =?ISO-2022-JP?B?IBskQk5tGyhC?="))
683
684 (encode
685 "Subject: \e.F\eNC\e$B4X?t\e(B"\e*B
686 '("Subject: =?ISO-8859-7?Q?=C3?= =?ISO-2022-JP?B?GyRCNFg/dBsoQg==?="
687   "Subject: =?ISO-2022-JP-2?B?Gy5GG05DGyRCNFg/dBsoQg==?="))
688
689 (encode
690 "From: aaaaaaaaaaaaaaaaaaaaa(\e$B$"$$\e(B)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
691 "From: aaaaaaaaaaaaaaaaaaaaa(=?ISO-2022-JP?B?GyRCJCIbKEI=?=
692  =?ISO-2022-JP?B?GyRCJCQbKEI=?=)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>")
693
694 (encode
695 "From: aaaaaaaaaaaaaaaaaaaaa (\e$B$"$$\e(B)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
696 '("From: aaaaaaaaaaaaaaaaaaaaa
697  (=?ISO-2022-JP?B?GyRCJCIkJBsoQg==?=)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
698   "From: aaaaaaaaaaaaaaaaaaaaa (=?ISO-2022-JP?B?GyRCJCIbKEI=?=
699  =?ISO-2022-JP?B?GyRCJCQbKEI=?=)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"))
700
701 (encode
702 "From: aaaaaaaaaaaaaaaaaaaaa( \e$B$"$$\e(B)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
703 '("From: aaaaaaaaaaaaaaaaaaaaa(
704  =?ISO-2022-JP?B?GyRCJCIkJBsoQg==?=)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
705   "From: aaaaaaaaaaaaaaaaaaaaa( =?ISO-2022-JP?B?GyRCJCIbKEI=?=
706  =?ISO-2022-JP?B?GyRCJCQbKEI=?=)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"))
707
708 (encode
709 "From: aaaaaaaaaaaaaaaaaaaaa(\e$B$"$$\e(B )aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
710 '("From: aaaaaaaaaaaaaaaaaaaaa(=?ISO-2022-JP?B?GyRCJCIkJBsoQg==?=
711  )aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
712   "From: aaaaaaaaaaaaaaaaaaaaa(=?ISO-2022-JP?B?GyRCJCIbKEI=?=
713  =?ISO-2022-JP?B?GyRCJCQbKEI=?= )aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"))
714
715 (encode
716 "From: aaaaaaaaaaaaaaaaaaaaa(\e$B$"$$\e(B) aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
717 "From: aaaaaaaaaaaaaaaaaaaaa(=?ISO-2022-JP?B?GyRCJCIkJBsoQg==?=)
718  aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>")
719
720 (encode
721 "From: aaaaaaaaaaaaaaaaaaaaa(\e$B$"\e(B \e$B$$\e(B)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
722 "From: aaaaaaaaaaaaaaaaaaaaa(=?ISO-2022-JP?B?GyRCJCIbKEIgCg==?=
723  =?ISO-2022-JP?B?GyRCJCQbKEI=?=)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>")
724
725 (encode
726 "From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
727 "From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>")
728
729 (encode
730 "From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
731 "From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)aaaaaaaaaaaaaaaaaaaaa
732  <akr@jaist.ac.jp>")
733
734 (encode
735 "From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
736 "From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
737  <akr@jaist.ac.jp>")
738
739 (encode
740 "From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
741 "From:
742  (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
743  <akr@jaist.ac.jp>")
744
745 (encode
746 "From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
747 "From:
748  (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
749  <akr@jaist.ac.jp>")
750
751 (encode
752 "From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
753 "From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=
754  =?ISO-2022-JP?B?GyhC?=)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
755  <akr@jaist.ac.jp>"
756 'zero-characters-encoded-word-hack)
757
758 (encode
759 "From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
760 "From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=
761  =?ISO-2022-JP?B?GyhC?=)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
762  <akr@jaist.ac.jp>"
763 'zero-characters-encoded-word-hack)
764
765 (encode
766 "From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
767 "From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)
768  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
769 'separate-sticked-tokens-for-fold)
770
771 (encode
772 "From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
773 "From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)=?US-ASCII?Q?aaaaaaaaaaaaaaaaaaaaaaa?=
774  =?US-ASCII?Q?aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa?= <akr@jaist.ac.jp>"
775 'encode-long-ascii-string-for-fold 'permit-sticked-special)
776
777 (encode
778 "From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
779 "From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
780  aaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
781 'divide-atom-for-fold)
782
783 ;; Section 6: Encoding melancholic inputs.
784
785 (encode
786 "From: akr@jaist.ac.jp (\e$B$"\e(B(\e$B$$\e(B)\e$B$&\e(B)"
787 "From: akr@jaist.ac.jp
788  (=?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)"
789 'ignore-76bytes-limit)
790
791 (encode
792 "From: akr@jaist.ac.jp (\e$B$"\e(B(\e$B$$\e(B)\e$B$&\e(B)"
793 "From: akr@jaist.ac.jp (=?ISO-2022-JP?B?GyRCJCIbKEI=?=
794  =?ISO-2022-JP?B?GyhC?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=
795  =?ISO-2022-JP?B?GyhC?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)"
796 'zero-characters-encoded-word-hack)
797
798 (encode
799 "From: \e$B$"\e(B(\e$B$"\e(B) <akr@jaist.ac.jp>"
800 "From: =?ISO-2022-JP?B?GyRCJCIbKEIoGyRCJCIbKEIp?= <akr@jaist.ac.jp>"
801 'encode-sticked-comment-as-atom)
802
803 (encode
804 "From: \e$B$"\e(B(\e$B$"\e(B) <akr@jaist.ac.jp>"
805 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)
806  <akr@jaist.ac.jp>"
807 'permit-sticked-comment)
808
809 (encode
810 "From: \e$B$"\e(B(\e$B$"\e(B) <akr@jaist.ac.jp>"
811 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?= (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)
812  <akr@jaist.ac.jp>"
813 'separate-sticked-comment)
814
815 (encode
816 "To: \e$B$"\e(B<akr@jaist.ac.jp>"
817 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
818 'permit-sticked-special)
819
820 (encode
821 "To: \e$B$"\e(B<akr@jaist.ac.jp>"
822 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
823 'separate-sticked-special)
824
825 (encode
826 "To: <akr@jaist.ac.jp>,\e$B$"\e(B<akr@jaist.ac.jp>"
827 "To: <akr@jaist.ac.jp>,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
828 'permit-sticked-special)
829
830 (encode
831 "To: <akr@jaist.ac.jp>,\e$B$"\e(B<akr@jaist.ac.jp>"
832 "To: <akr@jaist.ac.jp>, =?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
833 'separate-sticked-special)
834
835 (encode
836 "To: akr@jaist.ac.jp,\e$B$"\e(B<akr@jaist.ac.jp>"
837 "To: akr@jaist.ac.jp,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
838 'permit-sticked-special)
839
840 (encode
841 "To: akr@jaist.ac.jp,\e$B$"\e(B<akr@jaist.ac.jp>"
842 "To: akr@jaist.ac.jp, =?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
843 'separate-sticked-special)
844
845 (encode
846 "To: \e$B$"\e(B:akr@jaist.ac.jp;"
847 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:akr@jaist.ac.jp;"
848 'permit-sticked-special)
849
850 (encode
851 "To: \e$B$"\e(B:akr@jaist.ac.jp;"
852 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?= :akr@jaist.ac.jp;"
853 'separate-sticked-special)
854
855 (encode
856 "To: \e$B$"\e(B:\e$B$$\e(B<akr@jaist.ac.jp>;"
857 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=<akr@jaist.ac.jp>;"
858 'ignore-76bytes-limit 'permit-sticked-special)
859
860 (encode
861 "To: \e$B$"\e(B:\e$B$$\e(B<akr@jaist.ac.jp>;"
862 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=
863  =?ISO-2022-JP?B?GyhC?=<akr@jaist.ac.jp>;"
864 'zero-characters-encoded-word-hack 'permit-sticked-special)
865
866 (encode
867 "To: \e$B$"\e(B:\e$B$$\e(B<akr@jaist.ac.jp>;"
868 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?= : =?ISO-2022-JP?B?GyRCJCQbKEI=?=
869  <akr@jaist.ac.jp>;"
870 'separate-sticked-special)
871
872 (encode
873 "To: \e$B$"\e(B:\e$B$$\e(B<foo@bar>,\e$B$&\e(B<foo@bar>;,\e$B$(\e(B<foo@bar>"
874 "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>"
875 'ignore-76bytes-limit 'permit-sticked-special)
876
877 (encode
878 "To: \e$B$"\e(B:\e$B$$\e(B<foo@bar>,\e$B$&\e(B<foo@bar>;,\e$B$(\e(B<foo@bar>"
879 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=
880  =?ISO-2022-JP?B?GyhC?=<foo@bar>,=?ISO-2022-JP?B?GyRCJCYbKEI=?=
881  =?ISO-2022-JP?B?GyhC?=<foo@bar>;,=?ISO-2022-JP?B?GyRCJCgbKEI=?=<foo@bar>"
882 'zero-characters-encoded-word-hack 'permit-sticked-special)
883
884 (encode
885 "To: \e$B$"\e(B:\e$B$$\e(B<foo@bar>,\e$B$&\e(B<foo@bar>;,\e$B$(\e(B<foo@bar>"
886 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?= : =?ISO-2022-JP?B?GyRCJCQbKEI=?=
887  <foo@bar>, =?ISO-2022-JP?B?GyRCJCYbKEI=?= <foo@bar>;,
888  =?ISO-2022-JP?B?GyRCJCgbKEI=?= <foo@bar>"
889 'separate-sticked-special)
890
891 ;; Section 7: Using quoted-encoded-words.
892 ;
893 ;; quoted-encoded-word \e$BI=8=\e(B
894
895 ; 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
896\e$B=PNO$7$J$1$l$P$J$i$J$$$3$H$,$"$k!#\e(B
897 ;
898 ; 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
899 ;  =?unknown-charset?known-encoding?some-encoded-text?=
900 ;  =?known-charset?unknown-encoding?some-encoded-text?=
901 ;  =?unknown-charset?unknown-encoding?some-encoded-text?=
902 ;
903 ; 2. \e$B%G%3!<%I$G$-$F$bFbMF$,7uF]$9$.$k$H$-!#\e(B
904 ;  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
905\e$B7k2L$rKd$a9~$`$N$O4m81$9$.$k!#\e(B
906 ;
907\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
908\e$B$l$P$J$i$J$$$3$H$b$"$k!#\e(B
909 ;
910 ;  =?US-ASCII?Q?=3D=3FUS-ASCII=3FQ=3Ftext=3F=3D?=
911 ;
912\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
913 ; encoded-word \e$B$N$h$&$K$_$($kJ8;zNs$r6hJL$G$-$J$$!#\e(B
914\e$B$3$3$G$OJ8;zNsCf$G$=$l$i$r3N<B$K6hJL$7$FI=8=$9$kJ}K!$r<($9!#\e(B
915 ;
916 ; rule 1: \e$BJ8;zNsCf$G\e(B =?charset?encoding?text?= \e$B$H$$$&%Q%?!<%s$K\e(B
917 ;  \e$B%^%C%A$7$J$$ItJ,$O$=$NItJ,$N$^$^$NFbMF$rI=$9!#\e(B
918
919 ; rule 2: \e$BJ8;zNsCf$G\e(B =?charset?encoding?text?= \e$B$H$$$&%Q%?!<%s$K\e(B
920 ;  \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
921 ;  \e$B2r<a$rJQ$($k!#\e(B
922 ;
923 ;  \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
924 ;  \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
925 ;   \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
926 ;
927 ; NOTE: * \e$B$r\e(B quoted-encoded-word \e$BI=8=$N\e(B quote \e$BJ8;z$H8F$V!#\e(B
928 ;
929 ; 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
930 ;  \e$BEPO?$5$l$F$$$J$$$N$G!"$=$l$i$N\e(B charset \e$B$r;H$C$?\e(B
931 ;  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
932 ;
933 ;  =?US-ASCII?Q?abcdef?= \e$B$H$$$&\e(Bencoded-word : =?*US-ASCII?Q?abcdef?=
934 ;
935 ;  =?US-ASCII?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B         : =?US-ASCII?Q?abcdef?=
936 ;  =?*US-ASCII?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B        : =?**US-ASCII?Q?abcdef?=
937 ;  =?**US-ASCII?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B     : =?****US-ASCII?Q?abcdef?=
938 ;  =?***US-ASCII?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B    : =?******US-ASCII?Q?abcdef?=
939 ;  =?US-ASCII*?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B      : =?US-ASCII*?Q?abcdef?=
940 ;  =?U*S-ASCII?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B      : =?U*S-ASCII?Q?abcdef?=
941 ;
942 ; 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
943 ;  \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
944 ;  \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
945 ;
946 ; 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
947 ;   \e$BJ8;zNs$rC1=c$KO"7k$7$?J8;zNs$H$9$k!#\e(B
948 ;
949 ; 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
950 ;  encoded-word \e$B$O\e(B 75bytes \e$B0J2<$G$J$1$l$P$J$i$J$$$H$+!"\e(B
951 ;  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
952 ;  \e$B5,Ls$,$"$k$,!"\e(Bquoted-encoded-word \e$BI=8=$G$O$=$l$i$O:NMQ$7$J$$!#\e(B
953 ;  \e$BC1=c$K\e(B encoded-word \e$BFbIt$NJ8K!$@$1$rMxMQ$9$k!#\e(B
954 ;  (\e$BK\<AE*$K$O0[$J$kJ8K!$r:NMQ$9$k$3$H$b2DG=$G$"$k$,!"\e(BRFC2047 \e$B$K7I0U$r\e(B
955 ;  \e$BI=$7$F\e(B encoded-word \e$B$NJ8K!$r:NMQ$9$k!#\e(B)
956 ;
957 ; NOTE: quoted-encoded-word \e$BI=8=$7$?J8;zNs$NO"7k$O0BA4$G$O$J$$!#\e(B
958 ;  =?*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
959 ;  \e$B$=$l$>$l$=$NJ8;zNs$=$N$b$N$rI=8=$9$k$,!"$=$l$i$rO"7k$7$?J8;zNs\e(B
960 ;  =?*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
961 ;  \e$B$=$l$>$l$NFbMF$NO"7k$H$O$J$i$J$$!#\e(B
962 ;
963 ;  \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
964 ;  \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
965 ;  quoted-encoded-word \e$BI=8=$H$O$J$i$J$$$+$bCN$l$J$$!#\e(B)
966
967 (decode
968 "Subject: =?Unknown-Charset?B?gqA=?="
969 "Subject: =?*Unknown-Charset?B?gqA=?="
970 'quoted-encoded-word)
971
972 (decode
973 "Subject: =?US-ASCII?G?H4sIACqUszUAA8tIzcnJBwCGphA2BQAAAA==?="
974 "Subject: =?*US-ASCII?G?H4sIACqUszUAA8tIzcnJBwCGphA2BQAAAA==?="
975 'quoted-encoded-word)
976
977 (decode
978 "Subject: =?US-ASCII?Unknown-Encoding?H4sIAGOUszUAAwtyczYyMDEHAEpvqpIHAAAA?="
979 "Subject: =?*US-ASCII?Unknown-Encoding?H4sIAGOUszUAAwtyczYyMDEHAEpvqpIHAAAA?="
980 'quoted-encoded-word)
981
982 (decode
983 "Subject: =?ISO-2022-JP?G?H4sIAGiTszUAA5NWcVIBAhMtaQ0nAGLSaeEMAAAA?=
984  =?ISO-2022-JP?G?H4sIAH6TszUAA5NWcVIxV3FTyVbxldZwAgAuIikKDgAAAA==?="
985 "Subject: =?*ISO-2022-JP?G?H4sIAGiTszUAA5NWcVIBAhMtaQ0nAGLSaeEMAAAA?==?*ISO-2022-JP?G?H4sIAH6TszUAA5NWcVIxV3FTyVbxldZwAgAuIikKDgAAAA==?="
986 'quoted-encoded-word)
987
988 (decode
989 "Subject: =?Unknown-Charset?B?gqA=?= =?Unknown-Charset?B?gqA=?="
990 "Subject: =?*Unknown-Charset?B?gqA=?==?*Unknown-Charset?B?gqA=?="
991 'quoted-encoded-word)
992
993 (decode
994 "Subject: =?Unknown-Charset?B?gqA=?=  =?Unknown-Charset?B?gqA=?="
995 "Subject: =?*Unknown-Charset?B?gqA=?==?*Unknown-Charset?B?gqA=?="
996 'quoted-encoded-word)
997
998 (decode
999 "Subject: =?Unknown-Charset?B?gqA=?=
1000  =?Unknown-Charset?B?gqA=?="
1001 "Subject: =?*Unknown-Charset?B?gqA=?==?*Unknown-Charset?B?gqA=?="
1002 'quoted-encoded-word)
1003
1004 (decode
1005 "Subject: =?Unknown-Charset?B?gqA=?=
1006         =?Unknown-Charset?B?gqA=?="
1007 "Subject: =?*Unknown-Charset?B?gqA=?==?*Unknown-Charset?B?gqA=?="
1008 'quoted-encoded-word)
1009
1010 (decode
1011 "Subject: a=?Unknown-Charset?B?gqA=?="
1012 "Subject: a=?Unknown-Charset?B?gqA=?="
1013 'quoted-encoded-word)
1014
1015 (decode
1016 "Subject: =?Unknown-Charset?B?gqA=?=b"
1017 "Subject: =?Unknown-Charset?B?gqA=?=b"
1018 'quoted-encoded-word)
1019
1020 (decode
1021 "Subject: a=?Unknown-Charset?B?gqA=?=b"
1022 "Subject: a=?Unknown-Charset?B?gqA=?=b"
1023 'quoted-encoded-word)
1024
1025 (decode
1026 "Subject: a =?Unknown-Charset?B?gqA=?= b"
1027 "Subject: a =?*Unknown-Charset?B?gqA=?= b"
1028 'quoted-encoded-word)
1029
1030 (decode
1031 "Subject: =?ISO-2022-JP?B?DQoNCg==?="
1032 "Subject: =?*US-ASCII?Q?=0D=0A=0D=0A?="
1033 'quoted-encoded-word)
1034
1035 (decode
1036 "Subject: =?US-ASCII?Q?a=0D=0A_b?="
1037 "Subject: a=?*US-ASCII?Q?=0D=0A?= b"
1038 'quoted-encoded-word)
1039
1040 (decode
1041 "Subject: =?US-ASCII?Q?a=0D=0Ab?="
1042 "Subject: a=?*US-ASCII?Q?=0D=0A?=b"
1043 'quoted-encoded-word)
1044
1045 ;;;end-test;;;
1046
1047 (report)
1048
1049 ;----------------------------------------------------------------------------