You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apr.apache.org by Jeff Trawick <tr...@attglobal.net> on 2003/05/28 16:23:37 UTC

Re: cvs commit: apr-iconv/lib charset_alias.h

martin@apache.org wrote:
> martin      2003/05/28 07:03:28
> 
>   Modified:    lib      charset_alias.h

>   Log:
>   [Porting] Collation order is different for EBCDIC machines

>   
>   Revision  Changes    Path
>   1.2       +14 -0     apr-iconv/lib/charset_alias.h
>   
>   Index: charset_alias.h
>   ===================================================================
>   RCS file: /home/cvs/apr-iconv/lib/charset_alias.h,v
>   retrieving revision 1.1
>   retrieving revision 1.2
>   diff -u -u -r1.1 -r1.2
>   --- charset_alias.h	12 Jan 2003 23:46:28 -0000	1.1
>   +++ charset_alias.h	28 May 2003 14:03:28 -0000	1.2
>   @@ -394,6 +394,20 @@
>    {
>        struct charset_alias key;
>        struct charset_alias *alias;
>   +#if 'A' == '\xC1' /* if EBCDIC host */
>   +    /* The table is sorted in ASCII collation order, not in EBCDIC order.
>   +     * At the first access, we sort it automatically
>   +     * Criterion for the 1st time initialization is the fact that the
>   +     * 1st name in the list starts with a digit (in ASCII, numbers
>   +     * have a lower ordinal value than alphabetic characters; while
>   +     * in EBCDIC, their ordinal value is higher)
>   +     */
>   +    if (isdigit(charset_alias_list[0].name[0]))  {
>   +        qsort((void *)charset_alias_list, charset_alias_count,
>   +	      sizeof(charset_alias_list[0]),
>   +	      charset_alias_compare);

should a mutex be held here for the check and optional sort?