r5339: *** empty log message ***
authorKevin M. Rosenberg <kevin@rosenberg.net>
Sat, 19 Jul 2003 20:32:48 +0000 (20:32 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Sat, 19 Jul 2003 20:32:48 +0000 (20:32 +0000)
package.lisp
strings.lisp
symbols.lisp

index 89f583ac93c5d991e4ce7f6fac246710a9ad8f9d..68cd4133d0b23f5e3fa93760012480c6f10213df 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Apr 2000
 ;;;;
-;;;; $Id: package.lisp,v 1.51 2003/07/16 16:01:37 kevin Exp $
+;;;; $Id: package.lisp,v 1.52 2003/07/19 20:32:48 kevin Exp $
 ;;;;
 ;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;;
@@ -61,6 +61,8 @@
    #:ensure-string
    #:string-right-trim-one-char
    #:string-strip-ending
+   #:string-maybe-shorten
+   #:shrink-vector
    
    #:flatten
 
index 19389e1809564f7d6961f8beb20451ba8acf273d..6ec3f5ce434465fae964e79855d57da64bd5a88a 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Apr 2000
 ;;;;
-;;;; $Id: strings.lisp,v 1.48 2003/07/16 16:01:37 kevin Exp $
+;;;; $Id: strings.lisp,v 1.49 2003/07/19 20:32:48 kevin Exp $
 ;;;;
 ;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;;
@@ -540,3 +540,24 @@ for characters in a string"
        (return-from string-strip-ending
          (subseq str 0 (- len (length ending))))))))
        
+
+(defun string-maybe-shorten (str maxlen)
+  (let ((len (length str)))
+    (if (<= len maxlen)
+       str
+      (concatenate 'string (subseq str 0 (- maxlen 3)) "..."))))
+
+
+(defun shrink-vector (str size)
+  #+allegro
+  (excl::.primcall 'sys::shrink-svector str size)
+  #+sbcl
+  (sb-kernel:shrink-vector str size)
+  #+cmu
+  (lisp::shrink-vector str size)
+  #+lispworks
+  (system::shrink-vector$vector str size)
+  #+(or allegro cmu sbcl lispworks)
+  str
+  #-(or allegro cmu sbcl lispworks)
+  (subseq str 0 size))
index 5a8a3485cfb9f6582301bf44bd286a2fe03bf481..a61932785988967f169385fdb09baa005ffb2b80 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Apr 2000
 ;;;;
-;;;; $Id: symbols.lisp,v 1.3 2003/07/16 16:01:37 kevin Exp $
+;;;; $Id: symbols.lisp,v 1.4 2003/07/19 20:32:48 kevin Exp $
 ;;;;
 ;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;;
@@ -46,7 +46,7 @@
 ;;; Symbol functions
 
 (eval-when (:compile-toplevel :load-toplevel :execute)
-  (when (char= #\a (symbol-name '#:a))
+  (when (char= #\a (schar (symbol-name '#:a) 0))
     (pushnew :lowercase-reader *features*)))
 
 (defun string-default-case (str)