From: espen Date: Wed, 6 Sep 2006 10:15:34 +0000 (+0000) Subject: Bug fix X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/clg/commitdiff_plain/e846072c1836cffab07bf3fe5798ba6753e18df0 Bug fix --- diff --git a/gffi/basic-types.lisp b/gffi/basic-types.lisp index b2b0a89..b21fbd3 100644 --- a/gffi/basic-types.lisp +++ b/gffi/basic-types.lisp @@ -20,7 +20,7 @@ ;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -;; $Id: basic-types.lisp,v 1.3 2006-09-06 09:45:26 espen Exp $ +;; $Id: basic-types.lisp,v 1.4 2006-09-06 10:15:34 espen Exp $ (in-package "GFFI") @@ -570,6 +570,7 @@ (define-type-method reader-function ((type base-char) &key ref (inlined t)) ;;; String (defun utf8-length (string) + "Returns the length including the trailing zero, of STRING encoded as UTF8" (1+ (loop for char across string as char-code = (char-code char) @@ -601,7 +602,7 @@ (defun encode-utf8-string (string &optional location) ((< char-code #x800) (encode 11)) ((< char-code #x10000) (encode 16)) ((< char-code #x200000) (encode 21))))) - (setf (ref-byte location len) 0) + (setf (ref-byte location (1- len)) 0) location)) (defun decode-utf8-string (c-string)