* ew-bq.el (ew-ccl-encode-uq): Change BUFFER_MAGNIFICATION to 3.
[elisp/flim.git] / TESTPAT
1 ;;; -*- mode: emacs-lisp; coding: iso-2022-7bit-ss2 -*-
2 ;----------------------------------------------------------------------------
3 ;-------- This sequece of HYPHEN-MINUS is 76 bytes long. --------------------
4 ;----------------------------------------------------------------------------
5
6 ;;; options:
7 ;;encode-sticked-comment-as-atom    ; violate the policy preserving structures
8 ;;ignore-75bytes-limit              ; violate RFC2047
9 ;;ignore-76bytes-limit              ; violate RFC2047
10 ;;permit-sticked-comment            ; violate RFC2047
11 ;;permit-sticked-special            ; violate RFC2047
12 ;;separate-sticked-comment          ; violate the policy preserving absence of space
13 ;;separate-sticked-special          ; violate the policy preserving absence of space
14 ;;zero-characters-encoded-word-hack ; violate common sense (very tricky)
15 ;;embedded-encoded-word             ; violate character sequence semantics
16 ;;separate-sticked-tokens-for-fold  ; violate the policy preserving absence of space
17 ;;encode-long-ascii-string-for-fold ; violate the policy preserving US-ASCII string
18 ;;divide-atom-for-fold              ; violate tne policy preserving absence of space
19
20 ;;; test driver
21
22 (defvar target 'doodle)
23 (cond
24  ((eq target 'flim) ; FLIM or FLAM
25   (require 'mime)
26   (require 'ew-line)
27
28   (if (< max-specpdl-size 1000)
29     (setq max-specpdl-size 1000))
30
31   (defun decode-test (src dsts &rest opts)
32     (setq src (ew-crlf-to-lf src))
33     (setq eword-lexical-analyze-cache nil)
34     (setq eword-decode-sticked-encoded-word
35       (or (memq 'permit-sticked-comment opts)
36           (memq 'permit-sticked-special opts)))
37     (setq eword-decode-quoted-encoded-word nil)
38     (with-temp-buffer
39       (insert src "\n" mail-header-separator)
40       (eword-decode-header 'us-ascii mail-header-separator)
41       (goto-char (point-min))
42       (std11-narrow-to-header mail-header-separator)
43       (std11-field-end)
44       (let ((result (std11-unfold-string
45                      (buffer-substring (point-min) (point)))))
46         (if (member result dsts) t result))))
47
48   (defun encode-test (src dsts &rest opts)
49     (setq eword-lexical-analyze-cache nil)
50     (setq eword-decode-sticked-encoded-word nil)
51     (setq eword-decode-quoted-encoded-word nil)
52     (with-temp-buffer
53       (insert src "\n" mail-header-separator)
54       (goto-char (point-min))
55       (eword-encode-header 'us-ascii)
56       (goto-char (point-min))
57       (std11-narrow-to-header mail-header-separator)
58       (std11-field-end)
59       (let ((result (buffer-substring (point-min) (point))))
60         (if (member result dsts) t result)))))
61
62  ((eq target 'doodle) ; DOODLE
63   (require 'ew-dec)
64   (require 'ew-line)
65
66   (defun decode-test (src dsts &rest opts)
67     (setq ew-decode-field-cache-buf nil)
68     (let ((ew-decode-sticked-encoded-word nil)
69           (ew-decode-quoted-encoded-word nil)
70           (ew-ignore-75bytes-limit (memq 'ignore-75bytes-limit opts))
71           (ew-ignore-76bytes-limit (memq 'ignore-76bytes-limit opts))
72           (ew-permit-sticked-comment (memq 'permit-sticked-comment opts))
73           (ew-permit-sticked-special (memq 'permit-sticked-special opts)))
74       (string-match "\\`[^:]*:" src)
75       (let* ((field-name (substring src
76                                     (match-beginning 0)
77                                     (1- (match-end 0))))
78              (field-body (substring src (match-end 0)))
79              (result (ew-crlf-unfold
80                       (concat field-name ":"
81                               (ew-decode-field field-name field-body)))))
82         (if (member result dsts) t result))))
83
84   (defun encode-test (src dsts &rest opts)
85     nil)
86   )
87 )
88
89 ;;;
90
91 (setq decode-succ-count 0)
92 (setq decode-all-count 0)
93 (defun decode (src dsts &rest opts)
94   (if (stringp dsts) (setq dsts (list dsts)))
95   (setq decode-all-count (1+ decode-all-count))
96   (let ((res (condition-case nil
97                (apply 'decode-test src dsts opts)
98                (error nil))))
99     (if (eq res t)
100       (progn
101         (setq decode-succ-count (1+ decode-succ-count))
102         (insert "\n'dsucc"))
103       (insert (format "\n%S\n'dfail" res)))
104     res))
105
106 (setq encode-succ-count 0)
107 (setq encode-all-count 0)
108 (defun encode (src dsts &rest opts)
109   (if (stringp dsts) (setq dsts (list dsts)))
110   (setq encode-all-count (1+ encode-all-count))
111   (let ((res (condition-case nil
112                (apply 'encode-test src dsts opts)
113                (error nil))))
114     (if (eq res t)
115       (progn
116         (setq encode-succ-count (1+ encode-succ-count))
117         (insert "\n'esucc"))
118       (insert (format "\n%S\n'efail" res)))
119     res))
120
121 (defun report ()
122   (let ((report (format "Decode: %d/%d  Encode: %d/%d  Total: %d/%d"
123                   decode-succ-count decode-all-count
124                   encode-succ-count encode-all-count
125                   (+ decode-succ-count encode-succ-count)
126                   (+ decode-all-count encode-all-count))))
127     (if noninteractive
128       (princ (concat report "\n"))
129       (insert "\n\"" report "\""))))
130
131 ;;;start-test
132
133 ;;; Section 1: Decoding examples from RFC2047
134
135 (decode
136 "From: =?US-ASCII?Q?Keith_Moore?= <moore@cs.utk.edu>"
137 "From: Keith Moore <moore@cs.utk.edu>")
138
139 (decode
140 "To: =?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <keld@dkuug.dk>"
141 "To: Keld J\e.A\eNxrn Simonsen <keld@dkuug.dk>")\e*B
142
143 (decode
144 "CC: =?ISO-8859-1?Q?Andr=E9?= Pirard <PIRARD@vm1.ulg.ac.be>"
145 "CC: Andr\e.A\eNi Pirard <PIRARD@vm1.ulg.ac.be>")\e*B
146
147 (decode
148 "Subject: =?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=\r
149  =?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?="
150 "Subject: If you can read this you understand the example.")
151
152 (decode
153 "From: =?ISO-8859-1?Q?Olle_J=E4rnefors?= <ojarnef@admin.kth.se>"
154 "From: Olle J\e.A\eNdrnefors <ojarnef@admin.kth.se>")\e*B
155
156 (decode
157 "From: =?ISO-8859-1?Q?Patrik_F=E4ltstr=F6m?= <paf@nada.kth.se>"
158 "From: Patrik F\e.A\eNdltstr\eNvm <paf@nada.kth.se>")\e*B
159
160 (decode
161 "From: Nathaniel Borenstein <nsb@thumper.bellcore.com>\r
162 \t(=?iso-8859-8?b?7eXs+SDv4SDp7Oj08A==?=)"
163 "From: Nathaniel Borenstein <nsb@thumper.bellcore.com>\t(\e.H\eNm\eNe\eNl\eNy \eNo\eNa \eNi\eNl\eNh\eNt\eNp)")\e*B
164
165 (decode
166 "From: foo@bar.baz (=?ISO-8859-1?Q?a?=)"
167 "From: foo@bar.baz (a)")
168
169 (decode
170 "From: foo@bar.baz (=?ISO-8859-1?Q?a?= b)"
171 "From: foo@bar.baz (a b)")
172
173 (decode
174 "From: foo@bar.baz (=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=)"
175 "From: foo@bar.baz (ab)")
176
177 (decode
178 "From: foo@bar.baz (=?ISO-8859-1?Q?a?=  =?ISO-8859-1?Q?b?=)"
179 "From: foo@bar.baz (ab)")
180
181 (decode
182 "From: foo@bar.baz (=?ISO-8859-1?Q?a?=\r
183 \t=?ISO-8859-1?Q?b?=)"
184 "From: foo@bar.baz (ab)")
185
186 (decode
187 "From: foo@bar.baz (=?ISO-8859-1?Q?a_b?=)"
188 "From: foo@bar.baz (a b)")
189
190 (decode
191 "From: foo@bar.baz (=?ISO-8859-1?Q?a?= =?ISO-8859-2?Q?_b?=)"
192 "From: foo@bar.baz (a b)")
193
194 (decode
195 "Subject: (=?ISO-8859-1?Q?a?=)"
196 "Subject: (=?ISO-8859-1?Q?a?=)")
197
198 (decode
199 "Subject: (=?ISO-8859-1?Q?a?= b)"
200 "Subject: (=?ISO-8859-1?Q?a?= b)")
201
202 (decode
203 "Subject: (=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=)"
204 "Subject: (=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=)")
205
206 (decode
207 "Subject: (=?ISO-8859-1?Q?a?=  =?ISO-8859-1?Q?b?=)"
208 "Subject: (=?ISO-8859-1?Q?a?=  =?ISO-8859-1?Q?b?=)")
209
210 (decode
211 "Subject: (=?ISO-8859-1?Q?a?=\r
212 \t=?ISO-8859-1?Q?b?=)"
213 "Subject: (=?ISO-8859-1?Q?a?=\t=?ISO-8859-1?Q?b?=)")
214
215 (decode
216 "Subject: (=?ISO-8859-1?Q?a_b?=)"
217 "Subject: (=?ISO-8859-1?Q?a_b?=)")
218
219 (decode
220 "Subject: (=?ISO-8859-1?Q?a?= =?ISO-8859-2?Q?_b?=)"
221 "Subject: (=?ISO-8859-1?Q?a?= =?ISO-8859-2?Q?_b?=)")
222
223 ;;; Section 2: Decoding proper inputs.
224
225 (decode
226 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
227 "From: \e$B$"\e(B <akr@jaist.ac.jp>")
228
229 (decode
230 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?= =?ISO-2022-JP?B?GyRCJCQbKEI=?=\r
231  <akr@jaist.ac.jp>"
232 "From: \e$B$"$$\e(B <akr@jaist.ac.jp>")
233
234 (decode
235 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
236  =?ISO-2022-JP?B?GyRCJCQbKEI=?=\r
237  <akr@jaist.ac.jp>"
238 "From: \e$B$"$$\e(B <akr@jaist.ac.jp>")
239
240 (decode
241 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
242 \t=?ISO-2022-JP?B?GyRCJCQbKEI=?=\r
243  <akr@jaist.ac.jp>"
244 "From: \e$B$"$$\e(B <akr@jaist.ac.jp>")
245
246 (decode
247 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?= \"ja \\\"a\\\"\" <akr@jaist.ac.jp>"
248 "From: \e$B$"\e(B \"ja \\\"a\\\"\" <akr@jaist.ac.jp>")
249
250 (decode
251 "From: akr@jaist.ac.jp (=?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
252  =?ISO-2022-JP?B?GyhC?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=\r
253  =?ISO-2022-JP?B?GyhC?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)"
254 "From: akr@jaist.ac.jp (\e$B$"\e(B(\e$B$$\e(B)\e$B$&\e(B)")
255
256 (decode
257 "From: a=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
258 "From: a=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>")
259
260 (decode
261 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=b <akr@jaist.ac.jp>"
262 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=b <akr@jaist.ac.jp>")
263
264 (decode
265 "From: a=?ISO-2022-JP?B?GyRCJCIbKEI=?=b <akr@jaist.ac.jp>"
266 "From: a=?ISO-2022-JP?B?GyRCJCIbKEI=?=b <akr@jaist.ac.jp>")
267
268 (decode
269 "From: \"=?ISO-2022-JP?B?GyRCJCIbKEI=?=\" <akr@jaist.ac.jp>"
270 "From: \"=?ISO-2022-JP?B?GyRCJCIbKEI=?=\" <akr@jaist.ac.jp>")
271
272 (decode
273 "From: \"\\\"\\\\\" =?ISO-2022-JP?B?GyRCJCIbKEI=?= \"\\\"\\\\\" <akr@jaist.ac.jp>"
274 "From: \"\\\"\\\\\" \e$B$"\e(B \"\\\"\\\\\" <akr@jaist.ac.jp>")
275
276 (decode
277 "From: < =?ISO-2022-JP?B?GyRCJCIbKEI=?= @jaist.ac.jp>"
278 "From: < =?ISO-2022-JP?B?GyRCJCIbKEI=?= @jaist.ac.jp>")
279
280 (decode
281 "From: =?ISO-2022-JP?Q?=1B=24BAA=1B=28B?= <akr@jaist.ac.jp>"
282 "From: \e$BAA\e(B <akr@jaist.ac.jp>")
283
284 (decode
285 "From: =?ISO-2022-JP?Q?=1B$BAA=1B(B?= ) <akr@jaist.ac.jp>"
286 "From: =?ISO-2022-JP?Q?=1B$BAA=1B(B?= ) <akr@jaist.ac.jp>")
287
288 (decode
289 "From: (=?US-ASCII?Q?(?=)foo@bar.baz(=?US-ASCII?Q?))baz@bar.foo(?=)"
290 "From: (=?US-ASCII?Q?(?=)foo@bar.baz(=?US-ASCII?Q?))baz@bar.foo(?=)")
291
292 (decode
293 "From: =?ISO-2022-JP?B?GyRCJCIbKEIoGyRCJCIbKEIp?= <akr@jaist.ac.jp>"
294 "From: \"\e$B$"\e(B(\e$B$"\e(B)\" <akr@jaist.ac.jp>")
295
296 (decode
297 "From: =?US-ASCII?Q?=28?= <akr@jaist.ac.jp>, =?US-ASCII?Q?=29?= <akr@jaist.ac.jp>"
298 "From: \"(\" <akr@jaist.ac.jp>, \")\" <akr@jaist.ac.jp>"
299 'ignore-76bytes-limit)
300
301 (decode
302 "From: =?ISO-2022-JP?B?YSJiGyRCJCIbKEJjXA==?= <akr@jaist.ac.jp>"
303 "From: \"a\\\"b\e$B$"\e(Bc\\\\\" <akr@jaist.ac.jp>")
304
305 (decode
306 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?="
307 "Subject: \e$B$"\e(B")
308
309 (decode
310 "Subject: a=?ISO-2022-JP?B?GyRCJCIbKEI=?="
311 "Subject: a=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
312
313 (decode
314 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=b"
315 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=b")
316
317 (decode
318 "Subject: a=?ISO-2022-JP?B?GyRCJCIbKEI=?=b"
319 "Subject: a=?ISO-2022-JP?B?GyRCJCIbKEI=?=b")
320
321 (decode
322 "Subject: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?="
323 "Subject: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
324
325 (decode
326 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(b)"
327 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(b)")
328
329 (decode
330 "Subject: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?=(b)"
331 "Subject: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?=(b)")
332
333 (decode
334 "Subject: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?="
335 "Subject: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
336
337 (decode
338 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\""
339 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\"")
340
341 (decode
342 "Subject: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\""
343 "Subject: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\"")
344
345 (decode
346 "Subject: (Re: =?ISO-2022-JP?B?GyRCJCIbKEI=?=)"
347 "Subject: (Re: =?ISO-2022-JP?B?GyRCJCIbKEI=?=)")
348
349 (decode
350 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:"
351 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:")
352
353 (decode
354 "Subject: =?ISO-2022-JP?B??="
355 "Subject: =?ISO-2022-JP?B??=")
356
357 (decode
358 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?= a\r
359  =?ISO-2022-JP?B?GyRCJCQbKEI=?="
360 "Subject: \e$B$"\e(B a \e$B$$\e(B")
361
362 (decode
363 "Subject: =?ISO-2022-JP?B?GyRCMCQbKEIgICAgICAgICAgICAgICAgICAgICAgICAgICAg?=\r
364  =?US-ASCII?Q?____________________________________________________________?=\r
365  =?ISO-2022-JP?B?ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBskQlJfGyhC?="
366 "Subject: \e$B0$\e(B                                                                                                                          \e$BR_\e(B")
367
368 (decode
369 "From: =?ISO-8859-1?Q?abcdefghijklmnopqrst=A1=28=29=22=5C?= <akr@jaist.ac.jp>"
370 "From: \"abcdefghijklmnopqrst\e.A\eN!()\\\"\\\\\" <akr@jaist.ac.jp>")\e*B
371
372 (decode
373 "Subject: ?= =?"
374 "Subject: ?= =?")
375
376 (decode
377 "Subject: \" =?ISO-2022-JP?B?GyRCJCIbKEI=?= \""
378 "Subject: \" \e$B$"\e(B \"")
379
380 (decode
381 "From: \"\\\\\" =?ISO-2022-JP?B?GyRCJCIbKEI=?= \"\" <akr@jaist.ac.jp>"
382 "From: \"\\\\\" \e$B$"\e(B \"\" <akr@jaist.ac.jp>")
383
384 (decode
385 "Subject: =?ISO-2022-JP?Q?=1B$B$\"=1B(B_=1B$B$\"=1B(B?="
386 "Subject: \e$B$"\e(B \e$B$"\e(B")
387
388 (decode
389 "Subject: =?ISO-2022-JP?Q?=1B$B$\"=1B(B =1B$B$\"=1B(B?="
390 "Subject: =?ISO-2022-JP?Q?=1B$B$\"=1B(B =1B$B$\"=1B(B?=")
391
392 (decode
393 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?= a =?ISO-8859-8?Q?=E0?="
394 "Subject: \e$B$"\e(B a \e.H\eN`")\e*B
395
396 (decode
397 "Subject: =?ISO-8859-8?Q?=E0?= =?ISO-2022-JP?B?GyRCTm0bKEI=?="
398 "Subject: \e.H\eN`\e$BNm\e(B")\e*B
399
400 (decode
401 "Subject: =?ISO-8859-8?Q?=E0_?= =?ISO-2022-JP?B?GyRCTm0bKEI=?="
402 "Subject: \e.H\eN` \e$BNm\e(B")\e*B
403
404 (decode
405 "Subject: =?ISO-2022-JP-2?B?Gy5GG05DGyRCNFg/dBsoQg==?="
406 "Subject: \e.F\eNC\e$B4X?t\e(B")\e*B
407
408 (decode
409 "Subject: =?ISO-8859-7?Q?=C3?= =?ISO-2022-JP?B?GyRCNFg/dBsoQg==?="
410 "Subject: \e.F\eNC\e$B4X?t\e(B")\e*B
411
412 (decode
413 "Subject: =?Shift_JIS?B?gqA=?="
414 "Subject: \e$B$"\e(B")
415
416 (decode
417 "Subject: =?EUC-JP?B?pKI=?="
418 "Subject: \e$B$"\e(B")
419
420 (decode
421 "Subject: = =?ISO-2022-JP?B?GyRCJCIbKEI=?="
422 "Subject: = \e$B$"\e(B")
423
424 (decode
425 "Subject: =? =?ISO-2022-JP?B?GyRCJCIbKEI=?="
426 "Subject: =? \e$B$"\e(B")
427
428 (decode
429 "Subject: =?ISO-2022-JP =?ISO-2022-JP?B?GyRCJCIbKEI=?="
430 "Subject: =?ISO-2022-JP \e$B$"\e(B")
431
432 (decode
433 "Subject: =?ISO-2022-JP? =?ISO-2022-JP?B?GyRCJCIbKEI=?="
434 "Subject: =?ISO-2022-JP? \e$B$"\e(B")
435
436 (decode
437 "Subject: =?ISO-2022-JP?B =?ISO-2022-JP?B?GyRCJCIbKEI=?="
438 "Subject: =?ISO-2022-JP?B \e$B$"\e(B")
439
440 (decode
441 "Subject: =?ISO-2022-JP?B? =?ISO-2022-JP?B?GyRCJCIbKEI=?="
442 "Subject: =?ISO-2022-JP?B? \e$B$"\e(B")
443
444 (decode
445 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI =?ISO-2022-JP?B?GyRCJCIbKEI=?="
446 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI \e$B$"\e(B")
447
448 (decode
449 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI= =?ISO-2022-JP?B?GyRCJCIbKEI=?="
450 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI= \e$B$"\e(B")
451
452 (decode
453 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=? =?ISO-2022-JP?B?GyRCJCIbKEI=?="
454 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=? \e$B$"\e(B")
455
456 (decode
457 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?= =?ISO-2022-JP?B?GyRCJCIbKEI=?="
458 "Subject: \e$B$"$"\e(B")
459
460 (decode
461 "Subject: ==?ISO-2022-JP?B?GyRCJCIbKEI=?="
462 "Subject: ==?ISO-2022-JP?B?GyRCJCIbKEI=?=")
463
464 (decode
465 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=="
466 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?==")
467
468 (decode
469 "From: akr@jaist.ac.jp (\\=?ISO-2022-JP?B?GyRCJCIbKEI=?=)"
470 "From: akr@jaist.ac.jp (\\=?ISO-2022-JP?B?GyRCJCIbKEI=?=)")
471
472 (decode
473 "=?ISO-2022-JP?B?GyRCJCIbKEI=?=: test"
474 "=?ISO-2022-JP?B?GyRCJCIbKEI=?=: test")
475
476 (decode
477 "=?ISO-2022-JP?B?GyRCJCIbKEI=?=: test"
478 "=?ISO-2022-JP?B?GyRCJCIbKEI=?=: test"
479 'permit-sticked-special)
480
481 ;;; Section 3: Decoding melancholic inputs.
482
483 (decode
484 "From:=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
485 "From:\e$B$"\e(B <akr@jaist.ac.jp>")
486
487 (decode
488 "From: akr@jaist.ac.jp\r
489  (=?ISO-2022-JP?B?GyRCJCIbKEI=?=\\a=?ISO-2022-JP?B?GyRCJCQbKEI=?=)"
490 "From: akr@jaist.ac.jp (\e$B$"\e(B\\a\e$B$$\e(B)")
491
492 (decode
493 "From: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
494 "From: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>")
495
496 (decode
497 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(b) <akr@jaist.ac.jp>"
498 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(b) <akr@jaist.ac.jp>")
499
500 (decode
501 "From: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?=(b) <akr@jaist.ac.jp>"
502 "From: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?=(b) <akr@jaist.ac.jp>")
503
504 (decode
505 "From: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
506 "From: (a)\e$B$"\e(B <akr@jaist.ac.jp>"
507 'permit-sticked-comment)
508
509 (decode
510 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(b) <akr@jaist.ac.jp>"
511 "From: \e$B$"\e(B(b) <akr@jaist.ac.jp>"
512 'permit-sticked-comment)
513
514 (decode
515 "From: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?=(b) <akr@jaist.ac.jp>"
516 "From: (a)\e$B$"\e(B(b) <akr@jaist.ac.jp>"
517 'permit-sticked-comment)
518
519 (decode
520 "From: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
521 "From: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>")
522
523 (decode
524 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\" <akr@jaist.ac.jp>"
525 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\" <akr@jaist.ac.jp>")
526
527 (decode
528 "From: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\" <akr@jaist.ac.jp>"
529 "From: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\" <akr@jaist.ac.jp>")
530
531 (decode
532 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)\r
533  <akr@jaist.ac.jp>"
534 "From: \e$B$"\e(B(\e$B$"\e(B) <akr@jaist.ac.jp>"
535 'permit-sticked-comment)
536
537 (decode
538 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
539 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>")
540
541 (decode
542 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
543 "To: \e$B$"\e(B<akr@jaist.ac.jp>"
544 'permit-sticked-special)
545
546 (decode
547 "To: <akr@jaist.ac.jp>,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
548 "To: <akr@jaist.ac.jp>,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>")
549
550 (decode
551 "To: <akr@jaist.ac.jp>,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
552 "To: <akr@jaist.ac.jp>,\e$B$"\e(B<akr@jaist.ac.jp>"
553 'permit-sticked-special)
554
555 (decode
556 "To: akr@jaist.ac.jp,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
557 "To: akr@jaist.ac.jp,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>")
558
559 (decode
560 "To: akr@jaist.ac.jp,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
561 "To: akr@jaist.ac.jp,\e$B$"\e(B<akr@jaist.ac.jp>"
562 'permit-sticked-special)
563
564 (decode
565 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:akr@jaist.ac.jp;"
566 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:akr@jaist.ac.jp;")
567
568 (decode
569 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:akr@jaist.ac.jp;"
570 "To: \e$B$"\e(B:akr@jaist.ac.jp;"
571 'permit-sticked-special)
572
573 (decode
574 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=<akr@jaist.ac.jp>;"
575 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=<akr@jaist.ac.jp>;")
576
577 (decode
578 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=<akr@jaist.ac.jp>;"
579 "To: \e$B$"\e(B:\e$B$$\e(B<akr@jaist.ac.jp>;"
580 'ignore-76bytes-limit 'permit-sticked-special)
581
582 (decode
583 "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>"
584 "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>")
585
586 (decode
587 "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>"
588 "To: \e$B$"\e(B:\e$B$$\e(B<foo@bar>,\e$B$&\e(B<foo@bar>;,\e$B$(\e(B<foo@bar>"
589 'ignore-76bytes-limit 'permit-sticked-special)
590
591 (decode
592 "Subject:=?ISO-2022-JP?B?GyRCJCIbKEI=?="
593 "Subject:\e$B$"\e(B")
594
595 ;;; Section 4: Decoding invalid inputs.
596
597 (decode
598 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?==?ISO-2022-JP?B?GyRCJCQbKEI=?=\r
599  <akr@jaist.ac.jp>"
600 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?==?ISO-2022-JP?B?GyRCJCQbKEI=?= <akr@jaist.ac.jp>")
601
602 (decode
603 "From: akr@jaist.ac.jp\r
604  (=?ISO-2022-JP?B?GyRCJCIbKEI=?=a=?ISO-2022-JP?B?GyRCJCQbKEI=?=)"
605 "From: akr@jaist.ac.jp (=?ISO-2022-JP?B?GyRCJCIbKEI=?=a=?ISO-2022-JP?B?GyRCJCQbKEI=?=)")
606
607 (decode
608 "From: akr@jaist.ac.jp\r
609  (=?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)"
610 "From: akr@jaist.ac.jp (=?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)")
611
612 (decode
613 "From: akr@jaist.ac.jp\r
614  (=?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)"
615 "From: akr@jaist.ac.jp (\e$B$"\e(B(\e$B$$\e(B)\e$B$&\e(B)"
616 'ignore-76bytes-limit)
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=?ISO-2022-JP?B?GyRCJCIbKEI=?="
624 "Subject: =?ISO-2022-JP=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
625
626 (decode
627 "Subject: =?ISO-2022-JP?=?ISO-2022-JP?B?GyRCJCIbKEI=?="
628 "Subject: =?ISO-2022-JP?=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
629
630 (decode
631 "Subject: =?ISO-2022-JP?B=?ISO-2022-JP?B?GyRCJCIbKEI=?="
632 "Subject: =?ISO-2022-JP?B=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
633
634 (decode
635 "Subject: =?ISO-2022-JP?B?=?ISO-2022-JP?B?GyRCJCIbKEI=?="
636 "Subject: =?ISO-2022-JP?B?=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
637
638 (decode
639 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?ISO-2022-JP?B?GyRCJCIbKEI=?="
640 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
641
642 (decode
643 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI==?ISO-2022-JP?B?GyRCJCIbKEI=?="
644 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI==?ISO-2022-JP?B?GyRCJCIbKEI=?=")
645
646 (decode
647 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=?ISO-2022-JP?B?GyRCJCIbKEI=?="
648 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
649
650 (decode
651 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?==?ISO-2022-JP?B?GyRCJCIbKEI=?="
652 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?==?ISO-2022-JP?B?GyRCJCIbKEI=?=")
653
654 (decode
655 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI?="
656 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI?=")
657
658 (decode
659 "Subject: =?ISO-2022-JP?B?GyRCNFg-dBsoQg==?="
660 "Subject: =?ISO-2022-JP?B?GyRCNFg-dBsoQg==?=")
661
662 (decode
663 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?= =?= =?ISO-2022-JP?B?GyRCJCIbKEI=?="
664 "Subject: \e$B$"\e(B=?=\e$B$"\e(B")
665
666 ;;; Section 5: Encoding proper inputs.
667
668 (encode
669 "From: \e$B$"\e(B <akr@jaist.ac.jp>"
670 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>")
671
672 (encode
673 "From: \e$B$"$$\e(B <akr@jaist.ac.jp>"
674 "From: =?ISO-2022-JP?B?GyRCJCIkJBsoQg==?= <akr@jaist.ac.jp>")
675
676 (encode
677 "From: \e$B$"\e(B \e$B$$\e(B <akr@jaist.ac.jp>"
678 "From: =?ISO-2022-JP?B?GyRCJCIbKEIgGyRCJCQbKEI=?= <akr@jaist.ac.jp>")
679
680 (encode
681 "From: \e.A\eN! \eN! <akr@jaist.ac.jp>"\e*B
682 "From: =?ISO-8859-1?Q?=A1_=A1?= <akr@jaist.ac.jp>")
683
684 (encode
685 "From: \"\e$B$"\e(B(\e$B$"\e(B)\" <akr@jaist.ac.jp>"
686 "From: =?ISO-2022-JP?B?GyRCJCIbKEIoGyRCJCIbKEIp?= <akr@jaist.ac.jp>")
687
688 (encode
689 "From: \"a\\\"b\e$B$"\e(Bc\\\\\" <akr@jaist.ac.jp>"
690 "From: =?ISO-2022-JP?B?YSJiGyRCJCIbKEJjXA==?= <akr@jaist.ac.jp>")
691
692 (encode
693 "Subject: \e$B0$\e(B                                                                                                                          \e$BR_\e(B"
694 "Subject: =?ISO-2022-JP?B?GyRCMCQbKEIgICAgICAgICAgICAgICAgICAgICAgICAgICAg?=\r
695  =?US-ASCII?Q?____________________________________________________________?=\r
696  =?ISO-2022-JP?B?ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBskQlJfGyhC?=")
697
698 (encode
699 "Subject: \e$B0$\e(B                                                                                                                          \e$BR_\e(B"
700 "Subject: =?ISO-2022-JP?B?GyQpQrCkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDS3w=="
701 'ignore-76bytes-limit 'ignore-75bytes-limit)
702
703 (encode
704 "From: \e.A\eN! <akr@jaist.ac.jp>"\e*B
705 "From: =?ISO-8859-1?Q?=A1?= <akr@jaist.ac.jp>")
706
707 (encode
708 "From: \"abcdefghijklmnopqrst\e.A\eN!()\\\"\\\\\" <akr@jaist.ac.jp>"\e*B
709 "From: =?ISO-8859-1?Q?abcdefghijklmnopqrst=A1=28=29=22=5C?= <akr@jaist.ac.jp>")
710
711 (encode
712 "From: akr@jaist.ac.jp (abcdefghijklmnopqrst\e.A\eN!\\(\\)\"\\\\)"\e*B
713 "From: akr@jaist.ac.jp (=?ISO-8859-1?Q?abcdefghijklmnopqrst=A1=28=29\"=5C?=)")
714
715 (encode
716 "Subject: \e$B$"\e(B a \e.H\eN`"\e*B
717 "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?= a =?ISO-8859-8?Q?=E0?=")
718
719 (encode
720 "Subject: \e.H\eN`\e$BNm\e(B"\e*B
721 "Subject: =?ISO-8859-8?Q?=E0?= =?ISO-2022-JP?B?GyRCTm0bKEI=?=")
722
723 (encode
724 "Subject: \e.H\eN` \e$BNm\e(B"\e*B
725 '("Subject: =?ISO-8859-8?Q?=E0_?= =?ISO-2022-JP?B?GyRCTm0bKEI=?="
726   "Subject: =?ISO-8859-8?Q?=E0?= =?ISO-2022-JP?B?IBskQk5tGyhC?="))
727
728 (encode
729 "Subject: \e.F\eNC\e$B4X?t\e(B"\e*B
730 '("Subject: =?ISO-8859-7?Q?=C3?= =?ISO-2022-JP?B?GyRCNFg/dBsoQg==?="
731   "Subject: =?ISO-2022-JP-2?B?Gy5GG05DGyRCNFg/dBsoQg==?="))
732
733 (encode
734 "From: aaaaaaaaaaaaaaaaaaaaa(\e$B$"$$\e(B)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
735 "From: aaaaaaaaaaaaaaaaaaaaa(=?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
736  =?ISO-2022-JP?B?GyRCJCQbKEI=?=)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>")
737
738 (encode
739 "From: aaaaaaaaaaaaaaaaaaaaa (\e$B$"$$\e(B)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
740 '("From: aaaaaaaaaaaaaaaaaaaaa
741  (=?ISO-2022-JP?B?GyRCJCIkJBsoQg==?=)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
742   "From: aaaaaaaaaaaaaaaaaaaaa (=?ISO-2022-JP?B?GyRCJCIbKEI=?=
743  =?ISO-2022-JP?B?GyRCJCQbKEI=?=)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"))
744
745 (encode
746 "From: aaaaaaaaaaaaaaaaaaaaa( \e$B$"$$\e(B)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
747 '("From: aaaaaaaaaaaaaaaaaaaaa(
748  =?ISO-2022-JP?B?GyRCJCIkJBsoQg==?=)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
749   "From: aaaaaaaaaaaaaaaaaaaaa( =?ISO-2022-JP?B?GyRCJCIbKEI=?=
750  =?ISO-2022-JP?B?GyRCJCQbKEI=?=)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"))
751
752 (encode
753 "From: aaaaaaaaaaaaaaaaaaaaa(\e$B$"$$\e(B )aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
754 '("From: aaaaaaaaaaaaaaaaaaaaa(=?ISO-2022-JP?B?GyRCJCIkJBsoQg==?=
755  )aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
756   "From: aaaaaaaaaaaaaaaaaaaaa(=?ISO-2022-JP?B?GyRCJCIbKEI=?=
757  =?ISO-2022-JP?B?GyRCJCQbKEI=?= )aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"))
758
759 (encode
760 "From: aaaaaaaaaaaaaaaaaaaaa(\e$B$"$$\e(B) aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
761 "From: aaaaaaaaaaaaaaaaaaaaa(=?ISO-2022-JP?B?GyRCJCIkJBsoQg==?=)\r
762  aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>")
763
764 (encode
765 "From: aaaaaaaaaaaaaaaaaaaaa(\e$B$"\e(B \e$B$$\e(B)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
766 "From: aaaaaaaaaaaaaaaaaaaaa(=?ISO-2022-JP?B?GyRCJCIbKEIgCg==?=\r
767  =?ISO-2022-JP?B?GyRCJCQbKEI=?=)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>")
768
769 (encode
770 "From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
771 "From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>")
772
773 (encode
774 "From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
775 "From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)aaaaaaaaaaaaaaaaaaaaa\r
776  <akr@jaist.ac.jp>")
777
778 (encode
779 "From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
780 "From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
781  <akr@jaist.ac.jp>")
782
783 (encode
784 "From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
785 "From:\r
786  (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
787  <akr@jaist.ac.jp>")
788
789 (encode
790 "From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
791 "From:\r
792  (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
793  <akr@jaist.ac.jp>")
794
795 (encode
796 "From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
797 "From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
798  =?ISO-2022-JP?B?GyhC?=)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
799  <akr@jaist.ac.jp>"
800 'zero-characters-encoded-word-hack)
801
802 (encode
803 "From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
804 "From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
805  =?ISO-2022-JP?B?GyhC?=)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
806  <akr@jaist.ac.jp>"
807 'zero-characters-encoded-word-hack)
808
809 (encode
810 "From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
811 "From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)\r
812  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
813 'separate-sticked-tokens-for-fold)
814
815 (encode
816 "From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
817 "From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)=?US-ASCII?Q?aaaaaaaaaaaaaaaaaaaaaaa?=\r
818  =?US-ASCII?Q?aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa?= <akr@jaist.ac.jp>"
819 'encode-long-ascii-string-for-fold 'permit-sticked-special)
820
821 (encode
822 "From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
823 "From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
824  aaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
825 'divide-atom-for-fold)
826
827 (encode
828 "From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
829 '("From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
830   "From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
831  <akr@jaist.ac.jp>")
832 'ignore-76bytes-limit)
833
834 (encode
835 "From: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(\e$B$"\e(B)aa <akr@jaist.ac.jp>"
836 "From: =?US-ASCII?Q?aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa?=\r
837  =?US-ASCII?Q?a?=(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)aa <akr@jaist.ac.jp>"
838 'encode-long-ascii-string-for-fold)
839
840 (encode
841 "From: \e$B$"\e(B aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(\e$B$"\e(B)aa <akr@jaist.ac.jp>"
842 "From: =?ISO-2022-JP?B?GyRCJCIbKEIgYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYQ==?=\r
843  =?US-ASCII?Q?aaaaaaaaaaaaaaa?=(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)aa"
844 'encode-long-ascii-string-for-fold)
845
846 (encode
847 "From: (\e$B$"\e(B) <akr@jaist.ac.jp>"
848 "From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=) <akr@jaist.ac.jp>")
849
850 (encode
851 "From: ((((((((((((((((((((((((((((((((((((((((\e$B$"\e(B)))))))))))))))))))))))))))))))))))))))) <akr@jaist.ac.jp>"
852 "From: ((((((((((((((((((((((((((((((((((((((((=?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
853  =?ISO-2022-JP?B?GyhC?=))))))))))))))))))))))))))))))))))))))))\r
854  <akr@jaist.ac.jp>"
855 'zero-characters-encoded-word-hack)
856
857 (encode
858 "From: (((((((((((((((((((((((((((((((((((((((((\e$B$"\e(B))))))))))))))))))))))))))))))))))))))))) <akr@jaist.ac.jp>"
859 "From: (((((((((((((((((((((((((((((((((((((((((=?ISO-2022-JP?B?GyhC?=\r
860  =?ISO-2022-JP?B?GyRCJCIbKEI=?=)))))))))))))))))))))))))))))))))))))))))\r
861  <akr@jaist.ac.jp>"
862 'zero-characters-encoded-word-hack)
863
864 (encode
865 "From: ((((((((((((((((((((((((((((((((((((((((((((((\e$B$"\e(B)))))))))))))))))))))))))))))))))))))))))))))) <akr@jaist.ac.jp>"
866 "From: ((((((((((((((((((((((((((((((((((((((((((((((=?ISO-2022-JP?B?GyhC?=\r
867  =?ISO-2022-JP?B?GyRCJCIbKEI=?=))))))))))))))))))))))))))))))))))))))))))))))\r
868  <akr@jaist.ac.jp>"
869 'zero-characters-encoded-word-hack)
870
871 (encode
872 "From: (((((((((((((((((((((((((((((((((((((((((((((((\e$B$"\e(B))))))))))))))))))))))))))))))))))))))))))))))) <akr@jaist.ac.jp>"
873 "From: (((((((((((((((((((((((((((((((((((((((((((((((=?ISO-2022-JP?B?GyhC?=\r
874  =?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
875  =?ISO-2022-JP?B?GyhC?=)))))))))))))))))))))))))))))))))))))))))))))))\r
876  <akr@jaist.ac.jp>"
877 'zero-characters-encoded-word-hack)
878
879 (encode
880 "From: ((((((((((((((((((((((((((((((((((((((((((((((((\e$B$"\e(B)))))))))))))))))))))))))))))))))))))))))))))))) <akr@jaist.ac.jp>"
881 "From:\r
882  ((((((((((((((((((((((((((((((((((((((((((((((((=?ISO-2022-JP?B?GyhC?=\r
883  =?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
884  =?ISO-2022-JP?B?GyhC?=))))))))))))))))))))))))))))))))))))))))))))))))\r
885  <akr@jaist.ac.jp>"
886 'zero-characters-encoded-word-hack)
887
888 (encode
889 "From: ((((((((((((((((((((((((((((((((((((((((((((((((((((((\e$B$"\e(B)))))))))))))))))))))))))))))))))))))))))))))))))))))) <akr@jaist.ac.jp>"
890 "From:\r
891  ((((((((((((((((((((((((((((((((((((((((((((((((((((((=?ISO-2022-JP?B?GyhC?=\r
892  =?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
893  =?ISO-2022-JP?B?GyhC?=))))))))))))))))))))))))))))))))))))))))))))))))))))))\r
894  <akr@jaist.ac.jp>"
895 'zero-characters-encoded-word-hack)
896
897 (encode
898 "From: (((((((((((((((((((((((((((((((((((((((((((\e$B$"\e(B))))))))))))))))))))))))))))))))))))))))))) <akr@jaist.ac.jp>"
899 "From:\r
900  ((((((((((((((((((((((((((((((((((((((((((((((((((((((=?ISO-2022-JP?B?GyhC?=\r
901  =?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
902  =?ISO-2022-JP?B?GyhC?=))))))))))))))))))))))))))))))))))))))))))))))))))))))\r
903  <akr@jaist.ac.jp>"
904 'zero-characters-encoded-word-hack)
905
906 (encode
907 "From: (((((((((((((((((((((((((((((((((((((((((((((((((((((((\e$B$"\e(B))))))))))))))))))))))))))))))))))))))))))))))))))))))) <akr@jaist.ac.jp>"
908 "From:\r
909  ((((((((((((((((((((((((((((((((((((((((((((((((((((((=?ISO-2022-JP?B?GyhC?=\r
910  =?ISO-2022-JP?B?GyhC?=(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)=?ISO-2022-JP?B?GyhC?=\r
911  =?ISO-2022-JP?B?GyhC?=))))))))))))))))))))))))))))))))))))))))))))))))))))))\r
912  <akr@jaist.ac.jp>"
913 'zero-characters-encoded-word-hack)
914
915 (encode
916 "From: ((((((((((((((((((((((((((((((((((((((((((((((((((((((((\e$B$"\e(B)))))))))))))))))))))))))))))))))))))))))))))))))))))))) <akr@jaist.ac.jp>"
917 "From:\r
918  ((((((((((((((((((((((((((((((((((((((((((((((((((((((=?ISO-2022-JP?B?GyhC?=\r
919  =?ISO-2022-JP?B?GyhC?=((=?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
920  =?ISO-2022-JP?B?GyhC?=))))))))))))))))))))))))))))))))=?ISO-2022-JP?B?GyhC?=\r
921  =?ISO-2022-JP?B?GyhC?=))))))))))))))))))))))))\r
922  <akr@jaist.ac.jp>"
923 'zero-characters-encoded-word-hack)
924
925 (encode
926 "From: ()(\e$B$"\e(B)() <akr@jaist.ac.jp>"
927 "From: ()(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)() <akr@jaist.ac.jp>")
928
929 (encode
930 "From: (\e$B$"\e(B)()()()()()()()()()()()()()()()()()()() <akr@jaist.ac.jp>"
931 "From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)()()()()()()()()()()()()()()()()()()()\r
932   <akr@jaist.ac.jp>")
933
934 (encode
935 "From: (\e$B$"\e(B)()()()()()()()()()()()()()()()()()()()()()() <akr@jaist.ac.jp>"
936 "From:\r
937  (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)()()()()()()()()()()()()()()()()()()()()()()\r
938   <akr@jaist.ac.jp>")
939
940 (encode
941 "From: (\e$B$"\e(B)()()()()()()()()()()()()()()()()()()()()()()() <akr@jaist.ac.jp>"
942 "From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
943  =?ISO-2022-JP?B?GyhC?=)()()()()()()()()()()()()()()()()()()()()()()()\r
944   <akr@jaist.ac.jp>"
945 'zero-characters-encoded-word-hack)
946
947 (encode
948 "From: (\e$B$"\e(B)()()()()()()()()()()()()()()()()()()()()()()()()()()() <akr@jaist.ac.jp>"
949 "From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
950  =?ISO-2022-JP?B?GyhC?=)()()()()()()()()()()()()()()()(=?ISO-2022-JP?B?GyhC?=\r
951  =?ISO-2022-JP?B?GyhC?=)()()()()()()()()()()() <akr@jaist.ac.jp>"
952 'zero-characters-encoded-word-hack)
953
954 (encode
955 "To: l@d (\e$B$"\e(B aaa)(\e$B$"\e(B)"
956 "To: l@d (=?ISO-2022-JP?B?GyRCJCIbKEI=?= aaa)(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)")
957
958 (encode
959 "To: l@d (\e$B$"\e(B aaaa)(\e$B$"\e(B)"
960 "To: l@d (=?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
961  aaaa)(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)")
962
963 (encode
964 "To: l@d (\e$B$"\e(B aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)(\e$B$"\e(B)"
965 "To: l@d (=?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
966  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)")
967
968 (encode
969 "To: l@d (\e$B$"\e(B aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)(\e$B$"\e(B)"
970 "To: l@d (=?ISO-2022-JP?B?GyRCJCIbKEIgYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWE=?=\r
971  =?US-ASCII?Q?aaaaaaaaaaaaaaaaaa?=)(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)"
972 'encode-long-ascii-string-for-fold)
973
974 (encode
975 "To: l@d (\e$B$"\e(B aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()\e$B$"\e(B)"
976 "To: l@d (=?ISO-2022-JP?B?GyRCJCIbKEIgYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWE=?=\r
977  =?US-ASCII?Q?aaaaaaaaaaaaaaaaaa?=()=?ISO-2022-JP?B?GyRCJCIbKEI=?=)"
978 'encode-long-ascii-string-for-fold)
979
980 (encode
981 "To: l@d (\e$B$"\e(B aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \e$B$"\e(B)(\e$B$"\e(B)"
982 "To: l@d (=?ISO-2022-JP?B?GyRCJCIbKEI=?= aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
983  =?ISO-2022-JP?B?GyRCJCIbKEI=?=)(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)")
984
985 (encode
986 "To: l@d (\e$B$"\e(B aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \e$B$"\e(B)(\e$B$"\e(B)"
987 "To: l@d (=?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
988  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
989  =?ISO-2022-JP?B?GyRCJCIbKEI=?=)(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)")
990
991 ;----------------------------------------------------------------------------
992
993 ;;; Section 6: Encoding melancholic inputs.
994
995 (encode
996 "From: akr@jaist.ac.jp (\e$B$"\e(B(\e$B$$\e(B)\e$B$&\e(B)"
997 "From: akr@jaist.ac.jp\r
998  (=?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)"
999 'ignore-76bytes-limit)
1000
1001 (encode
1002 "From: akr@jaist.ac.jp (\e$B$"\e(B(\e$B$$\e(B)\e$B$&\e(B)"
1003 "From: akr@jaist.ac.jp (=?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
1004  =?ISO-2022-JP?B?GyhC?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=\r
1005  =?ISO-2022-JP?B?GyhC?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)"
1006 'zero-characters-encoded-word-hack)
1007
1008 (encode
1009 "From: \e$B$"\e(B(\e$B$"\e(B) <akr@jaist.ac.jp>"
1010 "From: =?ISO-2022-JP?B?GyRCJCIbKEIoGyRCJCIbKEIp?= <akr@jaist.ac.jp>"
1011 'encode-sticked-comment-as-atom)
1012
1013 (encode
1014 "From: \e$B$"\e(B(\e$B$"\e(B) <akr@jaist.ac.jp>"
1015 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)\r
1016  <akr@jaist.ac.jp>"
1017 'permit-sticked-comment)
1018
1019 (encode
1020 "From: \e$B$"\e(B(\e$B$"\e(B) <akr@jaist.ac.jp>"
1021 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?= (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)\r
1022  <akr@jaist.ac.jp>"
1023 'separate-sticked-comment)
1024
1025 (encode
1026 "To: \e$B$"\e(B<akr@jaist.ac.jp>"
1027 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
1028 'permit-sticked-special)
1029
1030 (encode
1031 "To: \e$B$"\e(B<akr@jaist.ac.jp>"
1032 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
1033 'separate-sticked-special)
1034
1035 (encode
1036 "To: <akr@jaist.ac.jp>,\e$B$"\e(B<akr@jaist.ac.jp>"
1037 "To: <akr@jaist.ac.jp>,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
1038 'permit-sticked-special)
1039
1040 (encode
1041 "To: <akr@jaist.ac.jp>,\e$B$"\e(B<akr@jaist.ac.jp>"
1042 "To: <akr@jaist.ac.jp>, =?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
1043 'separate-sticked-special)
1044
1045 (encode
1046 "To: akr@jaist.ac.jp,\e$B$"\e(B<akr@jaist.ac.jp>"
1047 "To: akr@jaist.ac.jp,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
1048 'permit-sticked-special)
1049
1050 (encode
1051 "To: akr@jaist.ac.jp,\e$B$"\e(B<akr@jaist.ac.jp>"
1052 "To: akr@jaist.ac.jp, =?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
1053 'separate-sticked-special)
1054
1055 (encode
1056 "To: \e$B$"\e(B:akr@jaist.ac.jp;"
1057 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:akr@jaist.ac.jp;"
1058 'permit-sticked-special)
1059
1060 (encode
1061 "To: \e$B$"\e(B:akr@jaist.ac.jp;"
1062 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?= :akr@jaist.ac.jp;"
1063 'separate-sticked-special)
1064
1065 (encode
1066 "To: \e$B$"\e(B:\e$B$$\e(B<akr@jaist.ac.jp>;"
1067 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=<akr@jaist.ac.jp>;"
1068 'ignore-76bytes-limit 'permit-sticked-special)
1069
1070 (encode
1071 "To: \e$B$"\e(B:\e$B$$\e(B<akr@jaist.ac.jp>;"
1072 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=\r
1073  =?ISO-2022-JP?B?GyhC?=<akr@jaist.ac.jp>;"
1074 'zero-characters-encoded-word-hack 'permit-sticked-special)
1075
1076 (encode
1077 "To: \e$B$"\e(B:\e$B$$\e(B<akr@jaist.ac.jp>;"
1078 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?= : =?ISO-2022-JP?B?GyRCJCQbKEI=?=\r
1079  <akr@jaist.ac.jp>;"
1080 'separate-sticked-special)
1081
1082 (encode
1083 "To: \e$B$"\e(B:\e$B$$\e(B<foo@bar>,\e$B$&\e(B<foo@bar>;,\e$B$(\e(B<foo@bar>"
1084 "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>"
1085 'ignore-76bytes-limit 'permit-sticked-special)
1086
1087 (encode
1088 "To: \e$B$"\e(B:\e$B$$\e(B<foo@bar>,\e$B$&\e(B<foo@bar>;,\e$B$(\e(B<foo@bar>"
1089 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=\r
1090  =?ISO-2022-JP?B?GyhC?=<foo@bar>,=?ISO-2022-JP?B?GyRCJCYbKEI=?=\r
1091  =?ISO-2022-JP?B?GyhC?=<foo@bar>;,=?ISO-2022-JP?B?GyRCJCgbKEI=?=<foo@bar>"
1092 'zero-characters-encoded-word-hack 'permit-sticked-special)
1093
1094 (encode
1095 "To: \e$B$"\e(B:\e$B$$\e(B<foo@bar>,\e$B$&\e(B<foo@bar>;,\e$B$(\e(B<foo@bar>"
1096 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?= : =?ISO-2022-JP?B?GyRCJCQbKEI=?=\r
1097  <foo@bar>, =?ISO-2022-JP?B?GyRCJCYbKEI=?= <foo@bar>;,\r
1098  =?ISO-2022-JP?B?GyRCJCgbKEI=?= <foo@bar>"
1099 'separate-sticked-special)
1100
1101 ;;; Section 7: Using embedded-encoded-words.
1102 ;;
1103 ;; embedded-encoded-word \e$BI=8=\e(B
1104 ;; 
1105 ;; 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
1106 ;; \e$B=PNO$7$J$1$l$P$J$i$J$$$3$H$,$"$k!#\e(B
1107 ;;
1108 ;; 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
1109 ;;  =?unknown-charset?known-encoding?some-encoded-text?=
1110 ;;  =?known-charset?unknown-encoding?some-encoded-text?=
1111 ;;  =?unknown-charset?unknown-encoding?some-encoded-text?=
1112 ;;
1113 ;; 2. \e$B%G%3!<%I$G$-$F$bFbMF$,7uF]$9$.$k$H$-!#\e(B
1114 ;;  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
1115 ;; \e$B7k2L$rKd$a9~$`$N$O4m81$9$.$k!#\e(B
1116 ;;
1117 ;; \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
1118 ;; \e$B$l$P$J$i$J$$$3$H$b$"$k!#\e(B
1119 ;;
1120 ;;  =?US-ASCII?Q?=3D=3FUS-ASCII=3FQ=3Ftext=3F=3D?=
1121 ;;
1122 ;; \e$B%G%3!<%@$,C1$J$kJ8;zNs$r=PNO$9$k>l9g!"C1=c$K$O\e(B encoded-word \e$B$=$N$b$N$H\e(B
1123 ;; encoded-word \e$B$N$h$&$K$_$($kJ8;zNs$r6hJL$G$-$J$$!#\e(B
1124 ;; \e$B$3$3$G$OJ8;zNsCf$G$=$l$i$r3N<B$K6hJL$7$FI=8=$9$kJ}K!$r<($9!#\e(B
1125 ;;
1126 ;; rule 1: \e$BJ8;zNsCf$G\e(B =?charset?encoding?text?= \e$B$H$$$&%Q%?!<%s$K\e(B
1127 ;;  \e$B%^%C%A$7$J$$ItJ,$O$=$NItJ,$N$^$^$NFbMF$rI=$9!#\e(B
1128 ;; 
1129 ;; rule 2: \e$BJ8;zNsCf$G\e(B =?charset?encoding?text?= \e$B$H$$$&%Q%?!<%s$K\e(B
1130 ;;  \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
1131 ;;  \e$B2r<a$rJQ$($k!#\e(B
1132 ;;
1133 ;;  3\e$B$rK!$H$7$F\e(B0\e$B$HEy$7$$>l9g\e(B(0, 3, 6, ...): charset \e$B$N@hF,$N\e(B + \e$B$N?t$r\e(B
1134 ;;    1/3 \e$B$K$7$?J8;zNs\e(B
1135 ;;  3\e$B$rK!$H$7$F\e(B1\e$B$HEy$7$$>l9g\e(B(1, 4, 7, ...): charset \e$B$N@hF,$N\e(B + \e$B$N?t$r\e(B
1136 ;;    1/3 (\e$B>.?tE@0J2<@Z<N$F\e(B)\e$B$K$7$F!"$=$l$r\e(B encoded-word \e$B$H;W$C$F%G\e(B
1137 ;;    \e$B%3!<%I$7$?J8;zNs!#\e(B
1138 ;;  3\e$B$rK!$H$7$F\e(B2\e$B$HEy$7$$>l9g\e(B(2, 5, 8, ...): charset \e$B$N@hF,$N\e(B + \e$B$N?t$r\e(B
1139 ;;    1/3 (\e$B>.?tE@0J2<@Z<N$F\e(B)\e$B$K$7$F!":G8e$N\e(B = \e$B$r<h$j=|$$$?J8;zNs\e(B
1140 ;;
1141 ;;  =?c?e?t?=?c?e?t?=... \e$B$H$$$&$h$&$K!"%Q%?!<%s$N@hF,$N\e(B = \e$B$H\e(B \e$BKvHx$N\e(B = 
1142 ;;  \e$B=E$J$k>l9g!"4q?tHVL\$N$b$N$KBP$7$F>e5-$N%k!<%k$rE,MQ$9$k!#\e(B
1143 ;;
1144 ;; NOTE: + \e$B$r\e(B embedded-encoded-word \e$BI=8=$N\e(B quote \e$BJ8;z$H8F$V!#\e(B
1145 ;;
1146 ;; 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
1147 ;;  \e$BEPO?$5$l$F$$$J$$$N$G!"$=$l$i$N\e(B charset \e$B$r;H$C$?\e(B
1148 ;;  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
1149 ;;
1150 ;;  =?US-ASCII?Q?abcdef?= \e$B$H$$$&\e(Bencoded-word : =?+US-ASCII?Q?abcdef?=
1151 ;;
1152 ;;  =?US-ASCII?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B        : =?US-ASCII?Q?abcdef?=
1153 ;;  =?+US-ASCII?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B       : =?+++US-ASCII?Q?abcdef?=
1154 ;;  =?++US-ASCII?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B     : =?++++++US-ASCII?Q?abcdef?=
1155 ;;  =?+++US-ASCII?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B    : =?+++++++++US-ASCII?Q?abcdef?=
1156 ;;  =?US-ASCII+?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B      : =?US-ASCII+?Q?abcdef?=
1157 ;;  =?U+S-ASCII?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B      : =?U+S-ASCII?Q?abcdef?=
1158 ;;
1159 ;;  =?US-ASCII?Q?abcdef? \e$B$H$$$&J8;zNs\e(B         : =?++US-ASCII?Q?abcdef?=
1160 ;;  =?+US-ASCII?Q?abcdef? \e$B$H$$$&J8;zNs\e(B        : =?+++++US-ASCII?Q?abcdef?=
1161 ;;  =?++US-ASCII?Q?abcdef? \e$B$H$$$&J8;zNs\e(B     : =?++++++++US-ASCII?Q?abcdef?=
1162 ;;  =?+++US-ASCII?Q?abcdef? \e$B$H$$$&J8;zNs\e(B    : =?+++++++++++US-ASCII?Q?abcdef?=
1163 ;;
1164 ;; NOTE: encoded-word \e$B$K8+$($kJ8;zNs$G\e(B + \e$B$,\e(B 3\e$BG\A}$5$l$k$N$O\e(B charset \e$B$N\e(B
1165 ;;  \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
1166 ;;  \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
1167 ;;
1168 ;; NOTE: charset \e$B$H\e(B encoding \e$B$K$O\e(B = \e$B$O4^$^$l$J$$$N$G\e(B 1\e$BJ8;z0J>e=E$J$k$3\e(B
1169 ;;  \e$B$H$O$J$$!#\e(B
1170 ;;
1171 ;; 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
1172 ;;   \e$BJ8;zNs$rC1=c$KO"7k$7$?J8;zNs$H$9$k!#\e(B
1173 ;;
1174 ;; 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
1175 ;;  encoded-word \e$B$O\e(B 75bytes \e$B0J2<$G$J$1$l$P$J$i$J$$$H$+!"\e(B
1176 ;;  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
1177 ;;  \e$B5,Ls$,$"$k$,!"\e(Bembedded-encoded-word \e$BI=8=$G$O$=$l$i$O:NMQ$7$J$$!#\e(B
1178 ;;  \e$BC1=c$K\e(B encoded-word \e$BFbIt$NJ8K!$@$1$rMxMQ$9$k!#\e(B
1179 ;;  (\e$BK\<AE*$K$O0[$J$kJ8K!$r:NMQ$9$k$3$H$b2DG=$G$"$k$,!"\e(BRFC2047 \e$B$K7I0U$r\e(B
1180 ;;  \e$BI=$7$F\e(B encoded-word \e$B$NJ8K!$r:NMQ$9$k!#\e(B)
1181 ;;
1182 ;; NOTE: embedded-encoded-word \e$BI=8=$7$?J8;zNs$NO"7k$O0BA4$G$O$J$$!#\e(B
1183 ;;  =?+US-ASCII?Q?ab \e$B$H\e(B cd?= \e$B$H$$$&\e(B embedded-encoded-word \e$BI=8=$7$?J8;zNs$O\e(B
1184 ;;  \e$B$=$l$>$l$=$NJ8;zNs$=$N$b$N$rI=8=$9$k$,!"$=$l$i$rO"7k$7$?J8;zNs\e(B
1185 ;;  =?+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
1186 ;;  \e$B$=$l$>$l$NFbMF$NO"7k$H$O$J$i$J$$!#\e(B
1187 ;;
1188 ;;  \e$B$3$l$O$H$/$K\e(B Non ASCII \e$B3HD%\e(B RFC822 \e$B$NCf$K\e(B embedded-encoded-word \e$BI=8=$r\e(B
1189 ;;  \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
1190 ;;  embedded-encoded-word \e$BI=8=$H$O$J$i$J$$$+$bCN$l$J$$!#\e(B)
1191
1192 (decode
1193 "Subject: =?Unknown-Charset?B?gqA=?="
1194 "Subject: =?+Unknown-Charset?B?gqA=?="
1195 'embedded-encoded-word)
1196
1197 (decode
1198 "Subject: =?US-ASCII?G?H4sIACqUszUAA8tIzcnJBwCGphA2BQAAAA==?="
1199 "Subject: =?+US-ASCII?G?H4sIACqUszUAA8tIzcnJBwCGphA2BQAAAA==?="
1200 'embedded-encoded-word)
1201
1202 (decode
1203 "Subject: =?US-ASCII?Unknown-Encoding?H4sIAGOUszUAAwtyczYyMDEHAEpvqpIHAAAA?="
1204 "Subject: =?+US-ASCII?Unknown-Encoding?H4sIAGOUszUAAwtyczYyMDEHAEpvqpIHAAAA?="
1205 'embedded-encoded-word)
1206
1207 (decode
1208 "Subject: =?ISO-2022-JP?G?H4sIAGiTszUAA5NWcVIBAhMtaQ0nAGLSaeEMAAAA?=\r
1209  =?ISO-2022-JP?G?H4sIAH6TszUAA5NWcVIxV3FTyVbxldZwAgAuIikKDgAAAA==?="
1210 "Subject: =?+ISO-2022-JP?G?H4sIAGiTszUAA5NWcVIBAhMtaQ0nAGLSaeEMAAAA?==?+ISO-2022-JP?G?H4sIAH6TszUAA5NWcVIxV3FTyVbxldZwAgAuIikKDgAAAA==?="
1211 'embedded-encoded-word)
1212
1213 (decode
1214 "Subject: =?Unknown-Charset?B?gqA=?= =?Unknown-Charset?B?gqA=?="
1215 "Subject: =?+Unknown-Charset?B?gqA=?==?+Unknown-Charset?B?gqA=?="
1216 'embedded-encoded-word)
1217
1218 (decode
1219 "Subject: =?Unknown-Charset?B?gqA=?=  =?Unknown-Charset?B?gqA=?="
1220 "Subject: =?+Unknown-Charset?B?gqA=?==?+Unknown-Charset?B?gqA=?="
1221 'embedded-encoded-word)
1222
1223 (decode
1224 "Subject: =?Unknown-Charset?B?gqA=?=\r
1225  =?Unknown-Charset?B?gqA=?="
1226 "Subject: =?+Unknown-Charset?B?gqA=?==?+Unknown-Charset?B?gqA=?="
1227 'embedded-encoded-word)
1228
1229 (decode
1230 "Subject: =?Unknown-Charset?B?gqA=?=\r
1231 \t=?Unknown-Charset?B?gqA=?="
1232 "Subject: =?+Unknown-Charset?B?gqA=?==?+Unknown-Charset?B?gqA=?="
1233 'embedded-encoded-word)
1234
1235 (decode
1236 "Subject: a=?Unknown-Charset?B?gqA=?="
1237 "Subject: a=?Unknown-Charset?B?gqA=?="
1238 'embedded-encoded-word)
1239
1240 (decode
1241 "Subject: =?Unknown-Charset?B?gqA=?=b"
1242 "Subject: =?Unknown-Charset?B?gqA=?=b"
1243 'embedded-encoded-word)
1244
1245 (decode
1246 "Subject: a=?Unknown-Charset?B?gqA=?=b"
1247 "Subject: a=?Unknown-Charset?B?gqA=?=b"
1248 'embedded-encoded-word)
1249
1250 (decode
1251 "Subject: a =?Unknown-Charset?B?gqA=?= b"
1252 "Subject: a =?+Unknown-Charset?B?gqA=?= b"
1253 'embedded-encoded-word)
1254
1255 (decode
1256 "Subject: =?ISO-2022-JP?B?DQoNCg==?="
1257 "Subject: =?+US-ASCII?Q?=0D=0A=0D=0A?="
1258 'embedded-encoded-word)
1259
1260 (decode
1261 "Subject: =?US-ASCII?Q?a=0D=0A_b?="
1262 "Subject: a b"
1263 'embedded-encoded-word)
1264
1265 (decode
1266 "Subject: =?US-ASCII?Q?a=0D=0Ab?="
1267 "Subject: a=?+US-ASCII?Q?=0D=0A?=b"
1268 'embedded-encoded-word)
1269
1270 ;;; Section 8: CR and LF.
1271
1272 (decode
1273 "From: akr@jaist.ac.jp (\r\\\n)"
1274 "From: akr@jaist.ac.jp (\r\\\n)")
1275
1276 (decode
1277 "From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A?= =?US-ASCII?Q?a?=)"
1278 "From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A?= a)")
1279
1280 (decode
1281 "From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A_?=)"
1282 "From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A_?=)")
1283
1284 (decode
1285 "From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A=09?=)"
1286 "From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A=09?=)")
1287
1288 (decode
1289 "From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A?= )"
1290 "From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A?= )")
1291
1292 (decode
1293 "From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A?=\t)"
1294 "From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A?=\t)")
1295
1296 (decode
1297 "From: akr@jaist.ac.jp (\\\r\\\n)"
1298 "From: akr@jaist.ac.jp (\\\r\\\n)")
1299
1300 (decode
1301 "From: akr@jaist.ac.jp (\\\r=?US-ASCII?Q?=0A?= =?US-ASCII?Q?a?=)"
1302 "From: akr@jaist.ac.jp (=?+US-ASCII?Q?=0D=0A?=a)"
1303 'embedded-encoded-word)
1304
1305 (decode
1306 "From: akr@jaist.ac.jp (\\\r=?US-ASCII?Q?=0Aa?=)"
1307 "From: akr@jaist.ac.jp (=?+US-ASCII?Q?=0D=0A?=a)"
1308 'embedded-encoded-word)
1309
1310 (decode
1311 "From: akr@jaist.ac.jp (\\\r=?US-ASCII?Q?=0A_?=)"
1312 "From: akr@jaist.ac.jp (\\ )")
1313
1314 (decode
1315 "From: akr@jaist.ac.jp (\\\r=?US-ASCII?Q?=0A=09?=)"
1316 "From: akr@jaist.ac.jp (\\\t)")
1317
1318 (decode
1319 "From: akr@jaist.ac.jp (\\\r=?US-ASCII?Q?=0A?= )"
1320 "From: akr@jaist.ac.jp (\\ )")
1321
1322 (decode
1323 "From: akr@jaist.ac.jp (\\\r=?US-ASCII?Q?=0A?=\t)"
1324 "From: akr@jaist.ac.jp (\\\t)")
1325
1326 (decode
1327 "From: akr@jaist.ac.jp (\\\r=?US-ASCII?Q?=0A?=\r
1328  =?US-ASCII?Q?=0D=0A?= =?US-ASCII?Q?a?=)"
1329 "From: akr@jaist.ac.jp (=?+US-ASCII?Q?=0D=0A=0D=0A?=a)"
1330 'embedded-encoded-word)
1331
1332 (decode
1333 "From: akr@jaist.ac.jp (\\\r=?US-ASCII?Q?=0A?=\r
1334  =?US-ASCII?Q?=0D?=\\\n =?US-ASCII?Q?a?=)"
1335 "From: akr@jaist.ac.jp (=?+US-ASCII?Q?=0D=0A?=\r\\
1336  a)"
1337 'embedded-encoded-word)
1338
1339 ;;;end-test
1340
1341 (report)
1342
1343 ;----------------------------------------------------------------------------