[Date Prev][Date Next] [Chronological] [Thread] [Top]

(ITS#3869) Unicode datatypes @ 64-bit host



Full_Name: Hallvard B Furuseth
Version: HEAD
OS: Linux (x86_64)
URL: 
Submission from: (NULL) (129.240.186.42)
Submitted by: hallvard


liblunicode/ucstr.c:ucstrncasecmp() and ucstrncmp() take ldap_unicode_t*
strings, but are passed ac_uint4* strings from UTF8bvnormcmp().

include/ldap_pvt_uc.h says
   /* 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.