X-Git-Url: http://git.kpe.io/?p=kmrcl.git;a=blobdiff_plain;f=strings.lisp;h=f382fe9221dc0e1b48433bcfc15c7fb51ee5a5fa;hp=8af34976b6bd83e10863a8bf0a7eddfbce7540ec;hb=0d0bdfdfb15376444d09b8bbbbe4e7034f710dcf;hpb=9a080059e2396d4145fdfacf9a3c61cb745b9484 diff --git a/strings.lisp b/strings.lisp index 8af3497..f382fe9 100644 --- a/strings.lisp +++ b/strings.lisp @@ -7,7 +7,7 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Apr 2000 ;;;; -;;;; $Id: strings.lisp,v 1.24 2003/05/08 23:35:18 kevin Exp $ +;;;; $Id: strings.lisp,v 1.25 2003/05/09 00:05:13 kevin Exp $ ;;;; ;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg ;;;; @@ -44,29 +44,17 @@ (setq in-word nil)))) n-words)) -#+allegro -(defun delimited-string-to-list (string &optional (separator #\space) skip-terminal) - "Uses allegro's internal function since that benchmarks faster than -my algorithm. Does allegro use assembly?" - (declare (string string) (character separator)) - (when skip-terminal - (let ((len (length string))) - (when (and (plusp len) (char= separator (char string (1- len)))) - (setq string (subseq string 0 (1- len)))))) - (excl:delimited-string-to-list string separator)) - ;; From Larry Hunter with modifications (defun position-char (char string start max) - (declare (optimize (speed 3) (safety 0)) + (declare (optimize (speed 3) (safety 0) (space 0)) (fixnum start max) (simple-string string)) (do* ((i start (1+ i))) ((= i max) nil) (declare (fixnum i)) (when (char= char (schar string i)) (return i)))) -(defun #-allegro delimited-string-to-list - #+allegro my-delimited-string-to-list - (string &optional (separator #\space) skip-terminal) +(defun delimited-string-to-list (string &optional (separator #\space) + skip-terminal) "split a string with delimiter" (declare (optimize (speed 3) (safety 0) (space 0) (compilation-speed 0)) (type string string)