Tried a dirty patch so that I can move on until the proper patch arrives.
Strange thing is, it doesn't work when it comes to hu.dwim.rdbms.oracle?
Don't like second guessing you but maybe babel isn't doing this?


*** Before the patch:

BABEL> (let ((octet-array-utf-16le (make-array 6 :element-type '(unsigned-byte 8)
                           :initial-contents (vector #X66 #X00 #X6F #X00 #X6F #X00))))
     (babel:octets-to-string octet-array-utf-16le :encoding :utf-16))
"???"
BABEL>


*** After the path:

BABEL> (let ((octet-array-utf-16le (make-array 6 :element-type '(unsigned-byte 8)
                           :initial-contents (vector #X66 #X00 #X6F #X00 #X6F #X00))))
     (babel:octets-to-string octet-array-utf-16le :encoding :utf-16))
"foo"
BABEL>



$ cat babel-src-enc-unicode.lisp.diff
548c548
<                       (t #+little-endian nil)))))
---
>                       (t #+little-endian t)))))
602c602
<                      (t #+little-endian nil)))))
---
>                      (t #+little-endian t)))))



But after the patch the trouble with hu.dwim.rdbms.oracle stays the same:

$ rm -r .cache/common-lisp/sbcl-1.0.37-linux-x86-64/home/chris/code/lisp-tp/babel/
$ sbcl --eval "(progn (asdf::load-system 'symarena-oracle) (in-package "SYMORA"))"

...

* (select-symtag)
--TIME MARK 2010-11-04--
12:51 0           RDBMS DEBUG   About to BEGIN transaction in database #<ORACLE {1003B5A741}>
12:51 0           RDBMS DEBUG   Executing "SELECT SYMTAG_KEY FROM symtag"
...
12:51 0           RDBMS DEBUG   Preparing command: "SELECT SYMTAG_KEY FROM symtag"
12:51 0           RDBMS DEBUG   Fetching "??????????" from buffer at index 0
12:51 0           RDBMS DEBUG   Fetched: "???"
12:51 0           RDBMS DEBUG   Fetching "??????????" from buffer at index 0
...
12:51 0           RDBMS DEBUG   Freeing environment handle of transaction #<#<STANDARD-CLASS NIL {1004F711B1}> :begin-executed-p #t {1003286641}>
#<(AND (VECTOR T 8) (NOT SIMPLE-ARRAY)) {100415A8DF}>
* (defparameter foostr (elt (elt * 0) 0))

FOOSTR
* (list (elt foostr 0) (elt foostr 1) (elt foostr 2))

(#\U6600 #\U6F00 #\U6F00)
* foostr

"???"
*

 

 

 

Regards,

chris

!DSPAM:4cd2a5dc48581985511769!