[version 0.6.1 ediware**20070309060016] { hunk ./CHANGELOG.txt 1 +Version 0.6.1 +2006-03-08 +Changed SPLIT-STRING so that it doesn't rely on unspecified behaviour (reported by Jianshi Huang) + hunk ./CHANGELOG.txt 27 -Adher to user-provided content length if FORM-DATA is true +Adhere to user-provided content length if FORM-DATA is true hunk ./doc/index.html 636 -The current version is 0.6.0. Drakma can be installed +The current version is 0.6.1. Drakma can be installed hunk ./doc/index.html 662 +

+Luís Oliveira maintains a darcs +repository of Drakma +at http://common-lisp.net/~loliveira/ediware/. hunk ./doc/index.html 797 + ;; the following line is only needed if the receiving server doesn't accept + ;; chunked transfer encoding (like for example Apache 1.x) + :content-length t hunk ./doc/index.html 856 -A non-NIL content-length argument +A non-NIL content-length argument hunk ./doc/index.html 1353 -$Header: /usr/local/cvsrep/drakma/doc/index.html,v 1.57 2007/02/08 14:35:00 edi Exp $ +$Header: /usr/local/cvsrep/drakma/doc/index.html,v 1.62 2007/03/08 19:32:03 edi Exp $ hunk ./drakma.asd 2 -;;; $Header: /usr/local/cvsrep/drakma/drakma.asd,v 1.30 2007/02/08 14:34:58 edi Exp $ +;;; $Header: /usr/local/cvsrep/drakma/drakma.asd,v 1.31 2007/03/08 19:32:01 edi Exp $ hunk ./drakma.asd 37 -(defvar *drakma-version-string* "0.6.0" +(defvar *drakma-version-string* "0.6.1" hunk ./util.lisp 2 -;;; $Header: /usr/local/cvsrep/drakma/util.lisp,v 1.29 2007/02/08 08:22:10 edi Exp $ +;;; $Header: /usr/local/cvsrep/drakma/util.lisp,v 1.30 2007/03/08 19:32:01 edi Exp $ hunk ./util.lisp 200 - "Splits STRING into substrings separated by the characters in the -sequence SEPARATORS. Empty substrings aren't collected." - (loop for char across string - when (find char separators :test #'char=) - when collector - collect (coerce collector 'string) into result - and do (setq collector nil) end - else - collect char into collector - finally (return (if collector - (append result (list (coerce collector 'string))) - result)))) + "Splits STRING into a list of substrings \(which is returned) +separated by the characters in the sequence SEPARATORS. Empty +substrings aren't collected." + (flet ((make-collector () + (make-array 0 + :adjustable t + :fill-pointer t + :element-type #+:lispworks 'lw:simple-char + #-:lispworks 'character))) + (loop with collector = (make-collector) + for char across string + for counter downfrom (1- (length string)) + when (find char separators :test #'char=) + when (plusp (length collector)) + collect collector + and do (setq collector (make-collector)) end + else + do (vector-push-extend char collector) + and when (zerop counter) + collect collector))) }