projects
/
jscl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Move string-length to non-primitive
[jscl.git]
/
src
/
string.lisp
diff --git
a/src/string.lisp
b/src/string.lisp
index
6f88024
..
1bb322b
100644
(file)
--- 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 <http://www.gnu.org/licenses/>.
;; You should have received a copy of the GNU General Public License
;; along with JSCL. If not, see <http://www.gnu.org/licenses/>.
-;; (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))
(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))
(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))))))))
(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))
(define-setf-expander char (string index)
(let ((g!string (gensym))
(g!index (gensym))