projects
/
kmrcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
r5094: *** empty log message ***
[kmrcl.git]
/
strings.lisp
diff --git
a/strings.lisp
b/strings.lisp
index a070731a2afff44463a1def6f1bae6619e2c4fc2..5343f31cb0f488c3f01af628c57f40b004a42ecb 100644
(file)
--- a/
strings.lisp
+++ b/
strings.lisp
@@
-7,7
+7,7
@@
;;;; Programmer: Kevin M. Rosenberg
;;;; Date Started: Apr 2000
;;;;
;;;; Programmer: Kevin M. Rosenberg
;;;; Date Started: Apr 2000
;;;;
-;;;; $Id: strings.lisp,v 1.3
6 2003/06/07 05:45:14
kevin Exp $
+;;;; $Id: strings.lisp,v 1.3
7 2003/06/12 02:38:39
kevin Exp $
;;;;
;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg
;;;;
;;;;
;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg
;;;;
@@
-168,7
+168,7
@@
(null (find-if #'not-whitespace? str))))
(defun replaced-string-length (str repl-alist)
(null (find-if #'not-whitespace? str))))
(defun replaced-string-length (str repl-alist)
- (declare (string str))
+ (declare (s
imple-s
tring str))
(let* ((orig-len (length str))
(new-len orig-len))
(declare (fixnum orig-len new-len))
(let* ((orig-len (length str))
(new-len orig-len))
(declare (fixnum orig-len new-len))
@@
-198,7
+198,8
@@
list of characters and replacement strings."
(if match
(let* ((subst (cdr match))
(len (length subst)))
(if match
(let* ((subst (cdr match))
(len (length subst)))
- (declare (fixnum len))
+ (declare (fixnum len)
+ (simple-string subst))
(dotimes (j len)
(declare (fixnum j))
(setf (char new-string dpos) (char subst j))
(dotimes (j len)
(declare (fixnum j))
(setf (char new-string dpos) (char subst j))
@@
-212,31
+213,31
@@
list of characters and replacement strings."
(substitute-chars-strings string '((#\& . "&") (#\< . "<"))))
(defun make-usb8-array (len)
(substitute-chars-strings string '((#\& . "&") (#\< . "<"))))
(defun make-usb8-array (len)
- (make-array len :adjustable nil
- :fill-pointer nil
- :element-type '(unsigned-byte 8)))
+ (make-array len :element-type '(unsigned-byte 8)))
(defun usb8-array-to-string (vec)
(defun usb8-array-to-string (vec)
+ (declare (type (simple-array (unsigned-byte 8) (*)) vec))
(let* ((len (length vec))
(str (make-string len)))
(declare (fixnum len)
(simple-string str)
(optimize (speed 3)))
(let* ((len (length vec))
(str (make-string len)))
(declare (fixnum len)
(simple-string str)
(optimize (speed 3)))
- (dotimes (i len)
+ (do ((i 0 (1+ i)))
+ ((= i len) str)
(declare (fixnum i))
(declare (fixnum i))
- (setf (schar str i) (code-char (aref vec i))))
- str))
+ (setf (schar str i) (code-char (aref vec i))))))
(defun string-to-usb8-array (str)
(defun string-to-usb8-array (str)
+ (declare (simple-string str))
(let* ((len (length str))
(vec (make-usb8-array len)))
(declare (fixnum len)
(let* ((len (length str))
(vec (make-usb8-array len)))
(declare (fixnum len)
- (type (
array fixnum
(*)) vec)
+ (type (
simple-array (unsigned-byte 8)
(*)) vec)
(optimize (speed 3)))
(optimize (speed 3)))
- (dotimes (i len)
+ (do ((i 0 (1+ i)))
+ ((= i len) vec)
(declare (fixnum i))
(declare (fixnum i))
- (setf (aref vec i) (char-code (schar str i))))
- vec))
+ (setf (aref vec i) (char-code (schar str i))))))
(defun concat-separated-strings (separator &rest lists)
(format nil (concatenate 'string "~{~A~^" (string separator) "~}")
(defun concat-separated-strings (separator &rest lists)
(format nil (concatenate 'string "~{~A~^" (string separator) "~}")
@@
-331,3
+332,7
@@
Leading zeros are present."
(nreverse results))
(declare (fixnum i j end))
(push (subseq str i j) results)))
(nreverse results))
(declare (fixnum i j end))
(push (subseq str i j) results)))
+
+(defun string-starts-with (start str)
+ (and (>= (length str) (length start))
+ (string-equal start str :end2 (length start))))