r3662: *** empty log message ***
authorKevin M. Rosenberg <kevin@rosenberg.net>
Thu, 26 Dec 2002 11:57:23 +0000 (11:57 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Thu, 26 Dec 2002 11:57:23 +0000 (11:57 +0000)
debian/changelog
package.lisp
strings.lisp

index fa955d9a3b8db4a3d8f3d5d531aab0b3ce3d4538..9b6725bb24f02c767c076d62ac4dc294c723dcb0 100644 (file)
@@ -1,3 +1,9 @@
+cl-kmrcl (1.23-1) unstable; urgency=low
+
+  * New upstream
+
+ -- Kevin M. Rosenberg <kmr@debian.org>  Thu, 26 Dec 2002 04:46:15 -0700
+
 cl-kmrcl (1.22-1) unstable; urgency=low
 
   * New upstream
index daeff57546ce3b3181ad318ca35b6967329ad77d..0781ae5dc628d5ed43d32fef68dfc0913b391c19 100644 (file)
@@ -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
 ;;;;
          #: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
          #: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
index bf915077496962eb8c3eb680cdc8087f04a06664..88ebbdfbabb2fdf4dc692ad60523654de0adece2 100644 (file)
@@ -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
 ;;;;
   (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 #\& "&amp;")
+   #\< "&lt;"))
+
+(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)))))
+
+