Split off unchecked character comparisons, for inclusion in
authorChris Hanson <org/chris-hanson/cph>
Tue, 25 Sep 2001 05:17:00 +0000 (05:17 +0000)
committerChris Hanson <org/chris-hanson/cph>
Tue, 25 Sep 2001 05:17:00 +0000 (05:17 +0000)
"string.scm".

v7/src/runtime/char.scm

index 0ee70d8a613c5091d8a04cd5960e2e9b6e5b5815..6bb4f9fd6b7b2f82b484f71767c263ca53f01b68 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: char.scm,v 14.12 2001/09/24 05:24:55 cph Exp $
+$Id: char.scm,v 14.13 2001/09/25 05:17:00 cph Exp $
 
 Copyright (c) 1988-1999, 2001 Massachusetts Institute of Technology
 
@@ -93,6 +93,7 @@ USA.
   (map char->ascii chars))
 \f
 (define (char=? x y)
+  ;; There's no %CHAR=? because the compiler recodes CHAR=? as EQ?.
   (guarantee-char x 'CHAR=?)
   (guarantee-char y 'CHAR=?)
   (fix:= (char->integer x) (char->integer y)))
@@ -100,25 +101,34 @@ USA.
 (define (char<? x y)
   (guarantee-char x 'CHAR<?)
   (guarantee-char y 'CHAR<?)
+  (%char<? x y))
+
+(define-integrable (%char<? x y)
   (fix:< (char->integer x) (char->integer y)))
 
 (define (char<=? x y)
   (guarantee-char x 'CHAR<=?)
   (guarantee-char y 'CHAR<=?)
+  (%char<=? x y))
+
+(define-integrable (%char<=? x y)
   (fix:<= (char->integer x) (char->integer y)))
 
 (define (char>? x y)
   (guarantee-char x 'CHAR>?)
   (guarantee-char y 'CHAR>?)
+  (%char>? x y))
+
+(define-integrable (%char>? x y)
   (fix:> (char->integer x) (char->integer y)))
 
 (define (char>=? x y)
   (guarantee-char x 'CHAR>=?)
   (guarantee-char y 'CHAR>=?)
-  (fix:>= (char->integer x) (char->integer y)))
+  (%char>=? x y))
 
-(define (char-ci->integer char)
-  (char->integer (char-upcase char)))
+(define-integrable (%char>=? x y)
+  (fix:>= (char->integer x) (char->integer y)))
 
 (define (char-ci=? x y)
   (fix:= (char-ci->integer x) (char-ci->integer y)))
@@ -134,6 +144,9 @@ USA.
 
 (define (char-ci>=? x y)
   (fix:>= (char-ci->integer x) (char-ci->integer y)))
+
+(define-integrable (char-ci->integer char)
+  (char->integer (char-upcase char)))
 \f
 (define (char-downcase char)
   (guarantee-char char 'CHAR-DOWNCASE)
@@ -141,26 +154,20 @@ USA.
 
 (define (%char-downcase char)
   (if (fix:< (%char-code char) 256)
-      (%%char-downcase char)
+      (%make-char (vector-8b-ref downcase-table (%char-code char))
+                 (%char-bits char))
       char))
 
-(define-integrable (%%char-downcase char)
-  (%make-char (vector-8b-ref downcase-table (%char-code char))
-             (%char-bits char)))
-
 (define (char-upcase char)
   (guarantee-char char 'CHAR-UPCASE)
   (%char-upcase char))
 
 (define (%char-upcase char)
   (if (fix:< (%char-code char) 256)
-      (%%char-upcase char)
+      (%make-char (vector-8b-ref upcase-table (%char-code char))
+                 (%char-bits char))
       char))
 
-(define-integrable (%%char-upcase char)
-  (%make-char (vector-8b-ref upcase-table (%char-code char))
-             (%char-bits char)))
-
 (define downcase-table)
 (define upcase-table)