From: Kevin M. Rosenberg Date: Thu, 26 Dec 2002 11:57:23 +0000 (+0000) Subject: r3662: *** empty log message *** X-Git-Tag: v1.96~283 X-Git-Url: http://git.kpe.io/?p=kmrcl.git;a=commitdiff_plain;h=e408a6bd2a959f734733cd26a8c8098051fc46f6 r3662: *** empty log message *** --- diff --git a/debian/changelog b/debian/changelog index fa955d9..9b6725b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +cl-kmrcl (1.23-1) unstable; urgency=low + + * New upstream + + -- Kevin M. Rosenberg Thu, 26 Dec 2002 04:46:15 -0700 + cl-kmrcl (1.22-1) unstable; urgency=low * New upstream diff --git a/package.lisp b/package.lisp index daeff57..0781ae5 100644 --- a/package.lisp +++ b/package.lisp @@ -7,7 +7,7 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Apr 2000 ;;;; -;;;; $Id: package.lisp,v 1.17 2002/12/14 18:51:53 kevin Exp $ +;;;; $Id: package.lisp,v 1.18 2002/12/26 11:57:07 kevin Exp $ ;;;; ;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg ;;;; @@ -53,16 +53,6 @@ #:mapcar2-append-string #:delimited-string-to-list #:list-to-delimited-string - #:string-append - #:count-string-words - #:substitute-string-for-char - #:string-trim-last-character - #:string-hash - #:string-not-null? - #:whitespace? - #:not-whitespace? - #:string-ws? - #:string-invert #:indent-spaces #:print-list #:print-rows @@ -83,6 +73,20 @@ #:mean #:with-gensyms + ;; strings.lisp + #:string-append + #:count-string-words + #:substitute-string-for-char + #:string-trim-last-character + #:string-hash + #:string-not-null? + #:whitespace? + #:not-whitespace? + #:string-ws? + #:string-invert + #:escape-xml-string + #:string-replace-char-string + ;; symbols.lisp #:ensure-keyword #:concat-symbol diff --git a/strings.lisp b/strings.lisp index bf91507..88ebbdf 100644 --- a/strings.lisp +++ b/strings.lisp @@ -7,7 +7,7 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Apr 2000 ;;;; -;;;; $Id: strings.lisp,v 1.3 2002/12/14 02:36:42 kevin Exp $ +;;;; $Id: strings.lisp,v 1.4 2002/12/26 11:57:07 kevin Exp $ ;;;; ;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg ;;;; @@ -146,3 +146,54 @@ (when (stringp str) (null (find-if #'not-whitespace? str)))) +#+ignore +(defun string-replace-chars-strings (str repl-alist) + "Replace all instances of a chars with a string. repl-alist is an assoc +list of characters and replacement strings." + (let* ((orig-len (length str)) + (new-len orign-len)) + (declare (fixnum orig-len new-len)) + (dotimes (i orign-len) + (declare (fixnum i)) + (let ((c (schar i str))) + ))) + str) + +(defun escape-xml-string (string) + "Escape invalid XML characters" + (string-replace-char-string + (string-replace-char-string string #\& "&") + #\< "<")) + +(defun string-replace-char-string (string repl-char repl-str) + "Replace all occurances of repl-char with repl-str" + (declare (simple-string string)) + (let ((count (count repl-char string))) + (declare (fixnum count)) + (if (zerop count) + string + (locally (declare (optimize (speed 3) (safety 0))) + (let* ((old-length (length string)) + (repl-length (length repl-str)) + (new-string (make-string (the fixnum + (+ old-length + (the fixnum + (* count + (the fixnum (1- repl-length))))))))) + (declare (fixnum old-length repl-length) + (simple-string new-string)) + (let ((newpos 0)) + (declare (fixnum newpos)) + (dotimes (oldpos (length string)) + (declare (fixnum oldpos)) + (if (char= repl-char (schar string oldpos)) + (dotimes (repl-pos repl-length) + (declare (fixnumm repl-pos)) + (setf (schar new-string newpos) (schar repl-str repl-pos)) + (incf newpos)) + (progn + (setf (schar new-string newpos) (schar string oldpos)) + (incf newpos))))) + new-string))))) + +