X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=TESTPAT;h=f417c3dd9d7ebfb719aa2dfdc201b46d7c19888e;hb=4a15ad0838f7f2ab125b4f766b127aefc828580c;hp=d7ef403c047b0eefd5bddbe8aafa40de29678d3f;hpb=612ca4e439ad59dbdb7b59246f1131450d747a44;p=elisp%2Fflim.git diff --git a/TESTPAT b/TESTPAT index d7ef403..f417c3d 100644 --- a/TESTPAT +++ b/TESTPAT @@ -1,3 +1,4 @@ +;;; -*- mode: emacs-lisp; coding: iso-2022-7bit-ss2 -*- ;---------------------------------------------------------------------------- ;-------- This sequece of HYPHEN-MINUS is 76 bytes long. -------------------- ;---------------------------------------------------------------------------- @@ -11,78 +12,78 @@ ;;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) -;;embedded-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 +;;divide-atom-for-fold ; violate tne policy preserving absence of space ;;; test driver -;;; FLIM or FLAM -'(progn -(require 'mime) -(require 'ew-line) - -(if (< max-specpdl-size 1000) - (setq max-specpdl-size 1000)) - -(defun decode-test (src dsts &rest opts) - (setq src (ew-crlf-to-lf src)) - (setq eword-lexical-analyze-cache nil) - (setq eword-decode-sticked-encoded-word - (or (memq 'permit-sticked-comment opts) - (memq 'permit-sticked-special opts))) - (setq eword-decode-quoted-encoded-word nil) - (with-temp-buffer - (insert src "\n" mail-header-separator) - (eword-decode-header 'us-ascii mail-header-separator) - (goto-char (point-min)) - (std11-narrow-to-header mail-header-separator) - (std11-field-end) - (let ((result (std11-unfold-string - (buffer-substring (point-min) (point))))) - (if (member result dsts) t result)))) - -(defun encode-test (src dsts &rest opts) - (setq eword-lexical-analyze-cache nil) - (setq eword-decode-sticked-encoded-word nil) - (setq eword-decode-quoted-encoded-word nil) - (with-temp-buffer - (insert src "\n" mail-header-separator) - (goto-char (point-min)) - (eword-encode-header 'us-ascii) - (goto-char (point-min)) - (std11-narrow-to-header mail-header-separator) - (std11-field-end) - (let ((result (buffer-substring (point-min) (point)))) - (if (member result dsts) t result)))) -) - -;;; EW -(progn -(require 'ew-dec) -(require 'ew-line) - -(defun decode-test (src dsts &rest opts) - (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)) - (ew-permit-sticked-special (memq 'permit-sticked-special opts))) - (string-match "\\`[^:]*:" src) - (let* ((field-name (substring src - (match-beginning 0) - (1- (match-end 0)))) - (field-body (substring src (match-end 0))) - (result (ew-crlf-unfold - (concat field-name ":" - (ew-decode-field field-name field-body))))) - (if (member result dsts) t result)))) - -(defun encode-test (src dsts &rest opts) - nil) +(defvar target 'doodle) +(cond + ((eq target 'flim) ; FLIM or FLAM + (require 'mime) + (require 'ew-line) + + (if (< max-specpdl-size 1000) + (setq max-specpdl-size 1000)) + + (defun decode-test (src dsts &rest opts) + (setq src (ew-crlf-to-lf src)) + (setq eword-lexical-analyze-cache nil) + (setq eword-decode-sticked-encoded-word + (or (memq 'permit-sticked-comment opts) + (memq 'permit-sticked-special opts))) + (setq eword-decode-quoted-encoded-word nil) + (with-temp-buffer + (insert src "\n" mail-header-separator) + (eword-decode-header 'us-ascii mail-header-separator) + (goto-char (point-min)) + (std11-narrow-to-header mail-header-separator) + (std11-field-end) + (let ((result (std11-unfold-string + (buffer-substring (point-min) (point))))) + (if (member result dsts) t result)))) + + (defun encode-test (src dsts &rest opts) + (setq eword-lexical-analyze-cache nil) + (setq eword-decode-sticked-encoded-word nil) + (setq eword-decode-quoted-encoded-word nil) + (with-temp-buffer + (insert src "\n" mail-header-separator) + (goto-char (point-min)) + (eword-encode-header 'us-ascii) + (goto-char (point-min)) + (std11-narrow-to-header mail-header-separator) + (std11-field-end) + (let ((result (buffer-substring (point-min) (point)))) + (if (member result dsts) t result))))) + + ((eq target 'doodle) ; DOODLE + (require 'ew-dec) + (require 'ew-line) + + (defun decode-test (src dsts &rest opts) + (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)) + (ew-permit-sticked-special (memq 'permit-sticked-special opts))) + (string-match "\\`[^:]*:" src) + (let* ((field-name (substring src + (match-beginning 0) + (1- (match-end 0)))) + (field-body (substring src (match-end 0))) + (result (ew-crlf-unfold + (concat field-name ":" + (ew-decode-field field-name field-body))))) + (if (member result dsts) t result)))) + + (defun encode-test (src dsts &rest opts) + nil) + ) ) ;;; @@ -118,12 +119,14 @@ res)) (defun report () - (insert - (format "\n\"Decode: %d/%d Encode: %d/%d Total: %d/%d\"" - decode-succ-count decode-all-count - encode-succ-count encode-all-count - (+ decode-succ-count encode-succ-count) - (+ decode-all-count encode-all-count)))) + (let ((report (format "Decode: %d/%d Encode: %d/%d Total: %d/%d" + decode-succ-count decode-all-count + encode-succ-count encode-all-count + (+ decode-succ-count encode-succ-count) + (+ decode-all-count encode-all-count)))) + (if noninteractive + (princ (concat report "\n")) + (insert "\n\"" report "\"")))) ;;;start-test @@ -156,8 +159,8 @@ (decode "From: Nathaniel Borenstein \r - (=?iso-8859-8?b?7eXs+SDv4SDp7Oj08A==?=)" -"From: Nathaniel Borenstein (.HNmNeNlNy NoNa NiNlNhNtNp)")*B +\t(=?iso-8859-8?b?7eXs+SDv4SDp7Oj08A==?=)" +"From: Nathaniel Borenstein \t(.HNmNeNlNy NoNa NiNlNhNtNp)")*B (decode "From: foo@bar.baz (=?ISO-8859-1?Q?a?=)" @@ -177,7 +180,7 @@ (decode "From: foo@bar.baz (=?ISO-8859-1?Q?a?=\r - =?ISO-8859-1?Q?b?=)" +\t=?ISO-8859-1?Q?b?=)" "From: foo@bar.baz (ab)") (decode @@ -206,8 +209,8 @@ (decode "Subject: (=?ISO-8859-1?Q?a?=\r - =?ISO-8859-1?Q?b?=)" -"Subject: (=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=)") +\t=?ISO-8859-1?Q?b?=)" +"Subject: (=?ISO-8859-1?Q?a?=\t=?ISO-8859-1?Q?b?=)") (decode "Subject: (=?ISO-8859-1?Q?a_b?=)" @@ -236,7 +239,7 @@ (decode "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=\r - =?ISO-2022-JP?B?GyRCJCQbKEI=?=\r +\t=?ISO-2022-JP?B?GyRCJCQbKEI=?=\r " "From: $B$"$$(B ") @@ -1225,7 +1228,7 @@ (decode "Subject: =?Unknown-Charset?B?gqA=?=\r - =?Unknown-Charset?B?gqA=?=" +\t=?Unknown-Charset?B?gqA=?=" "Subject: =?+Unknown-Charset?B?gqA=?==?+Unknown-Charset?B?gqA=?=" 'embedded-encoded-word) @@ -1287,8 +1290,8 @@ "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?= )") +"From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A?=\t)" +"From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A?=\t)") (decode "From: akr@jaist.ac.jp (\\\r\\\n)" @@ -1310,15 +1313,15 @@ (decode "From: akr@jaist.ac.jp (\\\r=?US-ASCII?Q?=0A=09?=)" -"From: akr@jaist.ac.jp (\\ )") +"From: akr@jaist.ac.jp (\\\t)") (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 (\\ )") +"From: akr@jaist.ac.jp (\\\r=?US-ASCII?Q?=0A?=\t)" +"From: akr@jaist.ac.jp (\\\t)") (decode "From: akr@jaist.ac.jp (\\\r=?US-ASCII?Q?=0A?=\r