X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=strings.lisp;h=8eb08f74e9faa7ac1b243ee78988db6b2a239444;hb=f21d8902cf098dc991499a76cb290e52d3b4c39c;hp=a97c37ba551f5d2e436da7954d69a138e248232d;hpb=035b66e6fe51559e2db70691ddcae4ab641a4873;p=kmrcl.git diff --git a/strings.lisp b/strings.lisp index a97c37b..8eb08f7 100644 --- a/strings.lisp +++ b/strings.lisp @@ -153,12 +153,16 @@ (defun is-string-empty (str) (zerop (length str))) -(defvar *whitespace-chars* '(#\space #\tab #\return #\linefeed)) +(defvar *whitespace-chars* '(#\space #\tab #\return #\linefeed + #+allegro #\%space + #+lispworks #\No-Break-Space)) (defun is-char-whitespace (c) (declare (character c) (optimize (speed 3) (safety 0))) (or (char= c #\Space) (char= c #\Tab) (char= c #\Return) - (char= c #\Linefeed))) + (char= c #\Linefeed) + #+allegro (char= c #\%space) + #+lispworks (char= c #\No-Break-Space))) (defun is-string-whitespace (str) "Return t if string is all whitespace" @@ -423,7 +427,7 @@ for characters in a string" (+ 10 (- code +char-code-upper-a+)) (- code +char-code-0+)))) -(defun uriencode-string (query) +(defun encode-uri-string (query) "Escape non-alphanumeric characters for URI fields" (declare (simple-string query) (optimize (speed 3) (safety 0) (space 0))) @@ -446,7 +450,7 @@ for characters in a string" (setf (schar str dpos) (hexchar (logand c 15)))) (setf (schar str dpos) ch))))) -(defun uridecode-string (query) +(defun decode-uri-string (query) "Unescape non-alphanumeric characters for URI fields" (declare (simple-string query) (optimize (speed 3) (safety 0) (space 0))) @@ -623,3 +627,10 @@ for characters in a string" (t (setq in-white nil) (write-char c stream))))))) + +(defun string->list (string) + (let ((eof (list nil))) + (with-input-from-string (stream string) + (do ((x (read stream nil eof) (read stream nil eof)) + (l nil (cons x l))) + ((eq x eof) (nreverse l))))))