Rewrite so we don't depend on matchers lifting complex expressions
authorChris Hanson <org/chris-hanson/cph>
Sat, 13 Oct 2001 05:54:33 +0000 (05:54 +0000)
committerChris Hanson <org/chris-hanson/cph>
Sat, 13 Oct 2001 05:54:33 +0000 (05:54 +0000)
upwards.

v7/src/imail/imap-syntax.scm

index 99467ac58a2a96259fd952cc7541170e25110ff2..b68db7bc2864dae235410aca5fb011e04e758f10 100644 (file)
@@ -1,6 +1,6 @@
 ;;; -*-Scheme-*-
 ;;;
-;;; $Id: imap-syntax.scm,v 1.17 2001/10/10 04:26:48 cph Exp $
+;;; $Id: imap-syntax.scm,v 1.18 2001/10/13 05:54:33 cph Exp $
 ;;;
 ;;; Copyright (c) 2000, 2001 Massachusetts Institute of Technology
 ;;;
                       url:match:escape))))))
 
 (define imap:parse:enc-mailbox
-  (*parser
-   (map url:decode-string
-       (match (+ (alt (char-set (char-set-union imap:char-set:achar
-                                                (string->char-set ":@/")))
-                      url:match:escape))))))
+  (let ((imap:char-set:bchar
+        (char-set-union imap:char-set:achar (string->char-set ":@/"))))
+    (*parser
+     (map url:decode-string
+         (match (+ (alt (char-set imap:char-set:bchar)
+                        url:match:escape)))))))
 
 (define imap:parse:section
   (*parser
             ")"))))
 \f
 (define imap:parse:nz-number
-  (*parser
-   (map string->number
-       (match (seq (char-set (char-set-difference char-set:numeric
-                                                  (char-set #\0)))
-                   (* (char-set char-set:numeric)))))))
+  (let ((char-set:1-9 (char-set-difference char-set:numeric (char-set #\0))))
+    (*parser
+     (map string->number
+         (match (seq (char-set char-set:1-9)
+                     (* (char-set char-set:numeric))))))))
 
 (define imap:parse:astring
   (*parser (alt imap:parse:atom imap:parse:string)))