Index: /trunk/ccl/lib/chars.lisp
===================================================================
--- /trunk/ccl/lib/chars.lisp	(revision 5259)
+++ /trunk/ccl/lib/chars.lisp	(revision 5260)
@@ -68,5 +68,5 @@
 
 
-;True for ascii codes 13 and 32-126 inclusive.
+;True for ascii codes 10 and 32-126 inclusive.
 (defun standard-char-p (c)
   "The argument must be a character object. STANDARD-CHAR-P returns T if the
@@ -82,17 +82,15 @@
 
 
-; if no table - then what?
 (defun upper-case-p (c)
   "The argument must be a character object; UPPER-CASE-P returns T if the
    argument is an upper-case character, NIL otherwise."
   (let* ((code (char-code c)))
-    (declare (optimize (speed 3)(safety 0)))
-    (and (%i>= code (char-code #\A))
-         (%i<= code (char-code #\Z)))))
-
-
-
-
-; I assume nobody cares that this be blindingly fast
+    (declare (type (mod #x110000) code))
+    (and (>= code (char-code #\A))
+         (<= code (char-code #\Z)))))
+
+
+
+
 (defun both-case-p (c)
   "The argument must be a character object. BOTH-CASE-P returns T if the
@@ -100,10 +98,9 @@
   both upper and lower case. For ASCII, this is the same as ALPHA-CHAR-P."
   (let* ((code (char-code c)))
-    (declare (optimize (speed 3)(safety 0)))
-    (if (%i>= code (char-code #\A))
-      (if (%i<= code (char-code #\Z))
-        t
-        (if (%i>= code (char-code #\a))
-          (%i<= code (char-code #\z)))))))
+    (declare (type (mod #x110000) code))
+    (or (and (>= code (char-code #\A))
+             (<= code (char-code #\Z)))
+        (and (>= code (char-code #\a))
+             (<= code (char-code #\z))))))
   
 (defun alphanumericp (c)
@@ -111,5 +108,5 @@
    argument is either numeric or alphabetic."
   (let ((code (char-code c)))
-    (declare (fixnum code))
+    (declare (type (mod #x110000) code))
     (or
      (and (>= code (char-code #\0))
@@ -156,6 +153,6 @@
           (return))))))
 
-; Compares each char against all following chars, not just next one. Tries
-; to be fast for one or two args.
+;;; Compares each char against all following chars, not just next one. Tries
+;;; to be fast for one or two args.
 (defun char-not-equal (char &rest others)
   "Return T if no two of the arguments are the same character.
@@ -165,5 +162,5 @@
     (let* ((rest (cdr others)))
       (cond 
-       (rest                       ; more than 2 args, no table
+       (rest                   
         (setq char (char-code (char-upcase char)))
         (do ((list others (cdr list)))
