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

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

Sounds like we should change ldap_unicode_t ac_uint4. It doesn't appear 
that this definition affects anything besides ucstr.c.

h.b.furuseth@usit.uio.no wrote:
> Full_Name: Hallvard B Furuseth
> Version: HEAD
> OS: Linux (x86_64)
> URL: 
> Submission from: (NULL) (
> 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.

  -- Howard Chu
  Chief Architect, Symas Corp.  http://www.symas.com
  Director, Highland Sun        http://highlandsun.com/hyc
  OpenLDAP Core Team            http://www.openldap.org/project/