[Date Prev][Date Next]
(ITS#3869) Unicode datatypes @ 64-bit host
Full_Name: Hallvard B Furuseth
OS: Linux (x86_64)
Submission from: (NULL) (220.127.116.11)
Submitted by: hallvard
liblunicode/ucstr.c:ucstrncasecmp() and ucstrncmp() take ldap_unicode_t*
strings, but are passed ac_uint4* strings from UTF8bvnormcmp().
/* UCDATA uses UCS-2 passed in an unsigned long */
typedef unsigned long ldap_unicode_t;
which is 8 bytes on a 64-bit host, but include/ac/bytes.h says
typedef unsigned AC_INT4_TYPE ac_uint4;
where AC_INT4_TYPE is a 4-byte integer type.
Yet it passes 'make tests', which maybe means some character
encoding tests are needed...
BTW, ldap_pvt_uc.h also has a declaration
typedef short ldap_ucs2_t;
Looks strange to me that this one is signed. The type is not
used though, so maybe it should simply be deleted.