diff --git a/md5.asd b/md5.asd index 8cc1d5a..4829f27 100755 --- a/md5.asd +++ b/md5.asd @@ -15,5 +15,9 @@ :maintainer "Pierre R. Mai " :licence "Public Domain" :version "2.0.2" - #+sbcl :depends-on #+sbcl ("sb-rotate-byte") + :depends-on (#+sbcl "sb-rotate-byte" + #-(or :cmu :sbcl + (and :lispworks (not :lispworks4)) + :ccl :allegro) + "flexi-streams") :components ((:file "md5"))) diff --git a/md5.lisp b/md5.lisp index b1dae39..05ed5d9 100755 --- a/md5.lisp +++ b/md5.lisp @@ -711,7 +711,12 @@ determined by the underlying implementation." #-(or :cmu :sbcl (and :lispworks (not :lispworks4)) :ccl :allegro) (if (<= char-code-limit 256) (md5sum-sequence string :start start :end end) - (error "md5:md5sum-string is not supported for your implementation.")))) + (md5sum-sequence + (flexi-streams:string-to-octets string + :external-format + (if (eq external-format :default) + :UTF-8 + external-format)))))) (eval-when (:compile-toplevel :load-toplevel :execute) (defconstant +buffer-size+ (* 128 1024)