X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fstring.lisp;h=1bb322b84f6f6e4847d566a386fb2d1e5e57e467;hb=928c6f695253c9f03ff440d18338efb8eea9b2f0;hp=6f88024ace66354f393b33c75facd6e17d4a8e2f;hpb=28a82d590a536e520a46e0703a08829485ae8bf5;p=jscl.git diff --git a/src/string.lisp b/src/string.lisp index 6f88024..1bb322b 100644 --- a/src/string.lisp +++ b/src/string.lisp @@ -13,13 +13,19 @@ ;; You should have received a copy of the GNU General Public License ;; along with JSCL. If not, see . -;; (defun stringp (x) -;; (and (vectorp x) (eq (array-element-type x) 'character))) +(defun stringp (s) + (stringp s)) + +(defun string-length (string) + (storage-vector-size string)) + +(defun make-string (n &key initial-element) + (make-array n :element-type 'character :initial-element initial-element)) (defun string (x) (cond ((stringp x) x) ((symbolp x) (symbol-name x)) - (t (char-to-string x)))) + (t (make-string 1 :initial-element x)))) (defun string= (s1 s2) (let* ((s1 (string s1)) @@ -41,9 +47,6 @@ (when (and (= i (1- len-1)) (> len-2 len-1)) (return-from string< (1+ i)))))))) -(defun stringp (s) - (stringp s)) - (define-setf-expander char (string index) (let ((g!string (gensym)) (g!index (gensym))