r3750: *** empty log message ***
[kmrcl.git] / strings.lisp
index 231ad6923fc1788d0ccfc5378a03e232a6cdf404..d91d9ac9e1d92a7316d3455fca89c13fb47d7b8d 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Apr 2000
 ;;;;
-;;;; $Id: strings.lisp,v 1.5 2002/12/28 07:59:37 kevin Exp $
+;;;; $Id: strings.lisp,v 1.6 2003/01/13 21:40:20 kevin Exp $
 ;;;;
 ;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;;
@@ -197,3 +197,31 @@ list of characters and replacement strings."
            new-string)))))
 
     
+
+(defun make-usb8-array (len)
+  (make-array len :adjustable nil
+             :fill-pointer nil
+             :element-type '(unsigned-byte 8)))
+
+(defun usb8-array-to-string (vec)
+  (let* ((len (length vec))
+        (str (make-string len)))
+    (declare (fixnum len)
+            (simple-string str)
+            (optimize (speed 3)))
+    (dotimes (i len)
+      (declare (fixnum i))
+      (setf (schar str i) (code-char (aref vec i))))
+    str))
+
+(defun string-to-usb8-array (str)
+  (let* ((len (length str))
+        (vec (make-usb8-array len)))
+    (declare (fixnum len)
+            (type (array fixnum (*)) vec)
+            (optimize (speed 3)))
+    (dotimes (i len)
+      (declare (fixnum i))
+      (setf (aref vec i) (char-code (schar str i))))
+    vec))
+