[movitz-cvs] CVS movitz/losp/muerte

ffjeld ffjeld at common-lisp.net
Sun Apr 27 19:30:13 UTC 2008


Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory clnet:/tmp/cvs-serv1813

Modified Files:
	characters.lisp 
Log Message:
Add some missing char-foo functions.


--- /project/movitz/cvsroot/movitz/losp/muerte/characters.lisp	2008/03/15 20:57:27	1.5
+++ /project/movitz/cvsroot/movitz/losp/muerte/characters.lisp	2008/04/27 19:30:12	1.6
@@ -10,7 +10,7 @@
 ;;;; Author:        Frode Vatvedt Fjeld <frodef at acm.org>
 ;;;; Created at:    Mon Feb  5 19:05:01 2001
 ;;;;                
-;;;; $Id: characters.lisp,v 1.5 2008/03/15 20:57:27 ffjeld Exp $
+;;;; $Id: characters.lisp,v 1.6 2008/04/27 19:30:12 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -29,6 +29,9 @@
     (:jne '(:sub-program (not-a-character) (:int 66)))
     (:shrl #.(cl:- 8 movitz::+movitz-fixnum-shift+) :eax)))
 
+(defun char-int (c)
+  (char-code c))
+
 (defun code-char (code)
   (with-inline-assembly (:returns :eax)
     (:compile-form (:result-mode :eax) code)
@@ -138,7 +141,9 @@
 
 (defun char-equal (first-character &rest more-characters)
   (numargs-case
-   (1 (x) (declare (ignore x)) t)
+   (1 (x)
+      (declare (ignore x))
+      t)
    (2 (x y)
       (char= (char-upcase x) (char-upcase y)))
    (t (first-character &rest more-characters)
@@ -148,6 +153,71 @@
 	  (unless (char= f (char-upcase c))
 	    (return nil)))))))
 
+(defun char-not-equal (first-character &rest more-characters)
+  (numargs-case
+   (1 (x)
+      (declare (ignore x))
+      t)
+   (2 (x y)
+      (not (char= (char-upcase x) (char-upcase y))))
+   (t (first-character &rest more-characters)
+      (declare (dynamic-extent more-characters))
+      (not (apply #'char-equal first-character more-characters)))))
+
+(defun char-lessp (first-character &rest more-characters)
+  (numargs-case
+   (1 (x)
+      (declare (ignore x))
+      t)
+   (2 (x y)
+      (char< (char-upcase x)
+	     (char-upcase y)))
+   (t (first-character &rest more-characters)
+      (declare (dynamic-extent more-characters))
+      (let ((x (char-upcase first-character)))
+	(dolist (y more-characters t)
+	  (unless (char< x (setf x (char-upcase y)))
+	    (return nil)))))))
+
+(defun char-not-lessp (first-character &rest more-characters)
+  (numargs-case
+   (1 (x)
+      (declare (ignore x))
+      t)
+   (2 (x y)
+      (not (char< (char-upcase x)
+		  (char-upcase y))))
+   (t (first-character &rest more-characters)
+      (declare (dynamic-extent more-characters))
+      (not (apply #'char-lessp first-character more-characters)))))
+
+(defun char-greaterp (first-character &rest more-characters)
+  (numargs-case
+   (1 (x)
+      (declare (ignore x))
+      t)
+   (2 (x y)
+      (char> (char-upcase x)
+	     (char-upcase y)))
+   (t (first-character &rest more-characters)
+      (declare (dynamic-extent more-characters))
+      (let ((x (char-upcase first-character)))
+	(dolist (y more-characters t)
+	  (unless (char> x (setf x (char-upcase y)))
+	    (return nil)))))))
+
+(defun char-not-greaterp (first-character &rest more-characters)
+  (numargs-case
+   (1 (x)
+      (declare (ignore x))
+      t)
+   (2 (x y)
+      (not (char> (char-upcase x)
+		  (char-upcase y))))
+   (t (first-character &rest more-characters)
+      (declare (dynamic-extent more-characters))
+      (not (apply #'char-greaterp first-character more-characters)))))
+
 (defun standard-char-p (c)
   "CLHS 2.1.3 Standard Characters"
   (or (char<= #\A (char-upcase c) #\Z)
@@ -217,3 +287,13 @@
       (char= character #\Return)
       (char= character #\Tab)
       (char= character #\Linefeed)))
+
+(defun character (c)
+  (etypecase c
+    (character c)
+    ((string 1)
+     (char c 0))
+    (symbol
+     (character (symbol-name c)))))
+
+




More information about the Movitz-cvs mailing list