*** empty log message ***
[elisp/flim.git] / TESTPAT
diff --git a/TESTPAT b/TESTPAT
index 09b57fc..d7ef403 100644 (file)
--- a/TESTPAT
+++ b/TESTPAT
@@ -11,7 +11,7 @@
 ;;separate-sticked-comment          ; violate the policy preserving absence of space
 ;;separate-sticked-special          ; violate the policy preserving absence of space
 ;;zero-characters-encoded-word-hack ; violate common sense (very tricky)
-;;quoted-encoded-word             ; violate character sequence semantics
+;;embedded-encoded-word                   ; violate character sequence semantics
 ;;separate-sticked-tokens-for-fold  ; violate the policy preserving absence of space
 ;;encode-long-ascii-string-for-fold ; violate the policy preserving US-ASCII string
 ;;divide-atom-for-fold            ; violate tne policy preserving absence of space
@@ -64,7 +64,9 @@
 (require 'ew-line)
 
 (defun decode-test (src dsts &rest opts)
-  (let ((ew-decode-quoted-encoded-word nil)
+  (setq ew-decode-field-cache-buf nil)
+  (let ((ew-decode-sticked-encoded-word nil)
+       (ew-decode-quoted-encoded-word nil)
        (ew-ignore-75bytes-limit (memq 'ignore-75bytes-limit opts))
        (ew-ignore-76bytes-limit (memq 'ignore-76bytes-limit opts))
        (ew-permit-sticked-comment (memq 'permit-sticked-comment opts))
 
 (decode
 "Subject: =?Shift_JIS?B?gqA=?="
-"Subject: \e$B$"\e(B"
-'quoted-encoded-word)
+"Subject: \e$B$"\e(B")
 
 (decode
 "Subject: =?EUC-JP?B?pKI=?="
-"Subject: \e$B$"\e(B"
-'quoted-encoded-word)
+"Subject: \e$B$"\e(B")
 
 (decode
 "Subject: = =?ISO-2022-JP?B?GyRCJCIbKEI=?="
 
 (decode
 "Subject:=?ISO-2022-JP?B?GyRCJCIbKEI=?="
-"Subject:=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
-
-(decode
-"Subject:=?ISO-2022-JP?B?GyRCJCIbKEI=?="
-"Subject:\e$B$"\e(B"
-'permit-sticked-special)
+"Subject:\e$B$"\e(B")
 
 ;;; Section 4: Decoding invalid inputs.
 
  =?ISO-2022-JP?B?GyRCJCgbKEI=?= <foo@bar>"
 'separate-sticked-special)
 
-;;; Section 7: Using quoted-encoded-words.
+;;; Section 7: Using embedded-encoded-words.
 ;;
-;; quoted-encoded-word \e$BI=8=\e(B
+;; embedded-encoded-word \e$BI=8=\e(B
 ;; 
 ;; 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
 ;; \e$B=PNO$7$J$1$l$P$J$i$J$$$3$H$,$"$k!#\e(B
 ;;
 ;;  =?US-ASCII?Q?=3D=3FUS-ASCII=3FQ=3Ftext=3F=3D?=
 ;;
-;; \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
+;; \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
 ;; encoded-word \e$B$N$h$&$K$_$($kJ8;zNs$r6hJL$G$-$J$$!#\e(B
 ;; \e$B$3$3$G$OJ8;zNsCf$G$=$l$i$r3N<B$K6hJL$7$FI=8=$9$kJ}K!$r<($9!#\e(B
 ;;
 ;;  \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
 ;;  \e$B2r<a$rJQ$($k!#\e(B
 ;;
-;;  \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
-;;  \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
-;;   \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
+;;  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
+;;    1/3 \e$B$K$7$?J8;zNs\e(B
+;;  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
+;;    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
+;;    \e$B%3!<%I$7$?J8;zNs!#\e(B
+;;  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
+;;    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
+;;
+;;  =?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 = 
+;;  \e$B=E$J$k>l9g!"4q?tHVL\$N$b$N$KBP$7$F>e5-$N%k!<%k$rE,MQ$9$k!#\e(B
 ;;
-;; NOTE: + \e$B$r\e(B quoted-encoded-word \e$BI=8=$N\e(B quote \e$BJ8;z$H8F$V!#\e(B
+;; NOTE: + \e$B$r\e(B embedded-encoded-word \e$BI=8=$N\e(B quote \e$BJ8;z$H8F$V!#\e(B
 ;;
 ;; 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
 ;;  \e$BEPO?$5$l$F$$$J$$$N$G!"$=$l$i$N\e(B charset \e$B$r;H$C$?\e(B
 ;;  =?US-ASCII?Q?abcdef?= \e$B$H$$$&\e(Bencoded-word : =?+US-ASCII?Q?abcdef?=
 ;;
 ;;  =?US-ASCII?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B       : =?US-ASCII?Q?abcdef?=
-;;  =?+US-ASCII?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B      : =?++US-ASCII?Q?abcdef?=
-;;  =?++US-ASCII?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B     : =?++++US-ASCII?Q?abcdef?=
-;;  =?+++US-ASCII?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B    : =?++++++US-ASCII?Q?abcdef?=
+;;  =?+US-ASCII?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B      : =?+++US-ASCII?Q?abcdef?=
+;;  =?++US-ASCII?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B     : =?++++++US-ASCII?Q?abcdef?=
+;;  =?+++US-ASCII?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B    : =?+++++++++US-ASCII?Q?abcdef?=
 ;;  =?US-ASCII+?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B      : =?US-ASCII+?Q?abcdef?=
 ;;  =?U+S-ASCII?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B      : =?U+S-ASCII?Q?abcdef?=
 ;;
-;; 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
+;;  =?US-ASCII?Q?abcdef? \e$B$H$$$&J8;zNs\e(B        : =?++US-ASCII?Q?abcdef?=
+;;  =?+US-ASCII?Q?abcdef? \e$B$H$$$&J8;zNs\e(B       : =?+++++US-ASCII?Q?abcdef?=
+;;  =?++US-ASCII?Q?abcdef? \e$B$H$$$&J8;zNs\e(B     : =?++++++++US-ASCII?Q?abcdef?=
+;;  =?+++US-ASCII?Q?abcdef? \e$B$H$$$&J8;zNs\e(B    : =?+++++++++++US-ASCII?Q?abcdef?=
+;;
+;; 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
 ;;  \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
 ;;  \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
 ;;
+;; 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
+;;  \e$B$H$O$J$$!#\e(B
+;;
 ;; 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
 ;;   \e$BJ8;zNs$rC1=c$KO"7k$7$?J8;zNs$H$9$k!#\e(B
 ;;
 ;; 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
 ;;  encoded-word \e$B$O\e(B 75bytes \e$B0J2<$G$J$1$l$P$J$i$J$$$H$+!"\e(B
 ;;  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
-;;  \e$B5,Ls$,$"$k$,!"\e(Bquoted-encoded-word \e$BI=8=$G$O$=$l$i$O:NMQ$7$J$$!#\e(B
+;;  \e$B5,Ls$,$"$k$,!"\e(Bembedded-encoded-word \e$BI=8=$G$O$=$l$i$O:NMQ$7$J$$!#\e(B
 ;;  \e$BC1=c$K\e(B encoded-word \e$BFbIt$NJ8K!$@$1$rMxMQ$9$k!#\e(B
 ;;  (\e$BK\<AE*$K$O0[$J$kJ8K!$r:NMQ$9$k$3$H$b2DG=$G$"$k$,!"\e(BRFC2047 \e$B$K7I0U$r\e(B
 ;;  \e$BI=$7$F\e(B encoded-word \e$B$NJ8K!$r:NMQ$9$k!#\e(B)
 ;;
-;; NOTE: quoted-encoded-word \e$BI=8=$7$?J8;zNs$NO"7k$O0BA4$G$O$J$$!#\e(B
-;;  =?+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
+;; NOTE: embedded-encoded-word \e$BI=8=$7$?J8;zNs$NO"7k$O0BA4$G$O$J$$!#\e(B
+;;  =?+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
 ;;  \e$B$=$l$>$l$=$NJ8;zNs$=$N$b$N$rI=8=$9$k$,!"$=$l$i$rO"7k$7$?J8;zNs\e(B
 ;;  =?+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
 ;;  \e$B$=$l$>$l$NFbMF$NO"7k$H$O$J$i$J$$!#\e(B
 ;;
-;;  \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
+;;  \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
 ;;  \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
-;;  quoted-encoded-word \e$BI=8=$H$O$J$i$J$$$+$bCN$l$J$$!#\e(B)
+;;  embedded-encoded-word \e$BI=8=$H$O$J$i$J$$$+$bCN$l$J$$!#\e(B)
 
 (decode
 "Subject: =?Unknown-Charset?B?gqA=?="
 "Subject: =?+Unknown-Charset?B?gqA=?="
-'quoted-encoded-word)
+'embedded-encoded-word)
 
 (decode
 "Subject: =?US-ASCII?G?H4sIACqUszUAA8tIzcnJBwCGphA2BQAAAA==?="
 "Subject: =?+US-ASCII?G?H4sIACqUszUAA8tIzcnJBwCGphA2BQAAAA==?="
-'quoted-encoded-word)
+'embedded-encoded-word)
 
 (decode
 "Subject: =?US-ASCII?Unknown-Encoding?H4sIAGOUszUAAwtyczYyMDEHAEpvqpIHAAAA?="
 "Subject: =?+US-ASCII?Unknown-Encoding?H4sIAGOUszUAAwtyczYyMDEHAEpvqpIHAAAA?="
-'quoted-encoded-word)
+'embedded-encoded-word)
 
 (decode
 "Subject: =?ISO-2022-JP?G?H4sIAGiTszUAA5NWcVIBAhMtaQ0nAGLSaeEMAAAA?=\r
  =?ISO-2022-JP?G?H4sIAH6TszUAA5NWcVIxV3FTyVbxldZwAgAuIikKDgAAAA==?="
 "Subject: =?+ISO-2022-JP?G?H4sIAGiTszUAA5NWcVIBAhMtaQ0nAGLSaeEMAAAA?==?+ISO-2022-JP?G?H4sIAH6TszUAA5NWcVIxV3FTyVbxldZwAgAuIikKDgAAAA==?="
-'quoted-encoded-word)
+'embedded-encoded-word)
 
 (decode
 "Subject: =?Unknown-Charset?B?gqA=?= =?Unknown-Charset?B?gqA=?="
 "Subject: =?+Unknown-Charset?B?gqA=?==?+Unknown-Charset?B?gqA=?="
-'quoted-encoded-word)
+'embedded-encoded-word)
 
 (decode
 "Subject: =?Unknown-Charset?B?gqA=?=  =?Unknown-Charset?B?gqA=?="
 "Subject: =?+Unknown-Charset?B?gqA=?==?+Unknown-Charset?B?gqA=?="
-'quoted-encoded-word)
+'embedded-encoded-word)
 
 (decode
 "Subject: =?Unknown-Charset?B?gqA=?=\r
  =?Unknown-Charset?B?gqA=?="
 "Subject: =?+Unknown-Charset?B?gqA=?==?+Unknown-Charset?B?gqA=?="
-'quoted-encoded-word)
+'embedded-encoded-word)
 
 (decode
 "Subject: =?Unknown-Charset?B?gqA=?=\r
        =?Unknown-Charset?B?gqA=?="
 "Subject: =?+Unknown-Charset?B?gqA=?==?+Unknown-Charset?B?gqA=?="
-'quoted-encoded-word)
+'embedded-encoded-word)
 
 (decode
 "Subject: a=?Unknown-Charset?B?gqA=?="
 "Subject: a=?Unknown-Charset?B?gqA=?="
-'quoted-encoded-word)
+'embedded-encoded-word)
 
 (decode
 "Subject: =?Unknown-Charset?B?gqA=?=b"
 "Subject: =?Unknown-Charset?B?gqA=?=b"
-'quoted-encoded-word)
+'embedded-encoded-word)
 
 (decode
 "Subject: a=?Unknown-Charset?B?gqA=?=b"
 "Subject: a=?Unknown-Charset?B?gqA=?=b"
-'quoted-encoded-word)
+'embedded-encoded-word)
 
 (decode
 "Subject: a =?Unknown-Charset?B?gqA=?= b"
 "Subject: a =?+Unknown-Charset?B?gqA=?= b"
-'quoted-encoded-word)
+'embedded-encoded-word)
 
 (decode
 "Subject: =?ISO-2022-JP?B?DQoNCg==?="
 "Subject: =?+US-ASCII?Q?=0D=0A=0D=0A?="
-'quoted-encoded-word)
+'embedded-encoded-word)
 
 (decode
 "Subject: =?US-ASCII?Q?a=0D=0A_b?="
 "Subject: a b"
-'quoted-encoded-word)
+'embedded-encoded-word)
 
 (decode
 "Subject: =?US-ASCII?Q?a=0D=0Ab?="
 "Subject: a=?+US-ASCII?Q?=0D=0A?=b"
-'quoted-encoded-word)
+'embedded-encoded-word)
+
+;;; Section 8: CR and LF.
+
+(decode
+"From: akr@jaist.ac.jp (\r\\\n)"
+"From: akr@jaist.ac.jp (\r\\\n)")
+
+(decode
+"From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A?= =?US-ASCII?Q?a?=)"
+"From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A?= a)")
+
+(decode
+"From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A_?=)"
+"From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A_?=)")
+
+(decode
+"From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A=09?=)"
+"From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A=09?=)")
+
+(decode
+"From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A?= )"
+"From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A?= )")
+
+(decode
+"From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A?=   )"
+"From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A?=   )")
+
+(decode
+"From: akr@jaist.ac.jp (\\\r\\\n)"
+"From: akr@jaist.ac.jp (\\\r\\\n)")
+
+(decode
+"From: akr@jaist.ac.jp (\\\r=?US-ASCII?Q?=0A?= =?US-ASCII?Q?a?=)"
+"From: akr@jaist.ac.jp (=?+US-ASCII?Q?=0D=0A?=a)"
+'embedded-encoded-word)
+
+(decode
+"From: akr@jaist.ac.jp (\\\r=?US-ASCII?Q?=0Aa?=)"
+"From: akr@jaist.ac.jp (=?+US-ASCII?Q?=0D=0A?=a)"
+'embedded-encoded-word)
+
+(decode
+"From: akr@jaist.ac.jp (\\\r=?US-ASCII?Q?=0A_?=)"
+"From: akr@jaist.ac.jp (\\ )")
+
+(decode
+"From: akr@jaist.ac.jp (\\\r=?US-ASCII?Q?=0A=09?=)"
+"From: akr@jaist.ac.jp (\\     )")
+
+(decode
+"From: akr@jaist.ac.jp (\\\r=?US-ASCII?Q?=0A?= )"
+"From: akr@jaist.ac.jp (\\ )")
+
+(decode
+"From: akr@jaist.ac.jp (\\\r=?US-ASCII?Q?=0A?= )"
+"From: akr@jaist.ac.jp (\\     )")
+
+(decode
+"From: akr@jaist.ac.jp (\\\r=?US-ASCII?Q?=0A?=\r
+ =?US-ASCII?Q?=0D=0A?= =?US-ASCII?Q?a?=)"
+"From: akr@jaist.ac.jp (=?+US-ASCII?Q?=0D=0A=0D=0A?=a)"
+'embedded-encoded-word)
+
+(decode
+"From: akr@jaist.ac.jp (\\\r=?US-ASCII?Q?=0A?=\r
+ =?US-ASCII?Q?=0D?=\\\n =?US-ASCII?Q?a?=)"
+"From: akr@jaist.ac.jp (=?+US-ASCII?Q?=0D=0A?=\r\\
+ a)"
+'embedded-encoded-word)
 
 ;;;end-test