For me it seems iolib is the only system using babel directly? Can't see iolib using the octects-to-string function, only for dns but maybe I didn't look hard enough. Or it uses another babel function to do this?
Do I have to turn on the right byte-ordering somewhere, just for the time being?
ouch: this is in oracle/cffi-util.lisp
(def function oci-string-to-lisp (pointer &optional size) #+nil (cffi:foreign-string-to-lisp pointer :count size :encoding (connection-encoding-of (database-of *transaction*))) ;; the above doesn't work, because babel thinks the encoding is ;; invalid and returns question marks only. Perhaps Babel doesn't ;; understand the endianness? Need to investigate. (coerce (iter (for i from 0 by 2) (when size (while (< i size))) (let ((code (cffi:mem-ref pointer :short i))) (until (zerop code)) (collect (code-char code)))) 'string))
try to re-enable the #+nil-ed line and drop the rest...
this change is nasty, it should have deserved a KLUDGE comment, or maybe even better would have been a runtime (warn "description of the issue")...
David, if you're reading this then update your coding standards... in the long term you'll also benefit from it, believe me... ;)