[1/26](resend)usp10: Add Indic syllable parsing and reordering system

Alexandre Julliard julliard at winehq.org
Thu Jun 2 04:41:39 CDT 2011


Aric Stewart <aric at codeweavers.com> writes:

> +void Indic_ReorderCharacters( LPWSTR input, int cChar, lexical_function lex, reorder_function reorder_f)
> +{
> +    int index = 0;
> +    int next = 0;
> +    int center;
> +
> +    if (!lex || ! reorder_f)
> +    {
> +        ERR("Failure to have required functions\n");
> +        return;
> +    }
> +
> +    debug_output_string(input, cChar, lex);
> +    while (next != -1)
> +    {
> +        ZERO_OR_MORE(lex_Generic);
> +        index = next;
> +        next = Indic_process_next_syllable(input, cChar, 0, &center, index, lex);
> +        if (next != -1)
> +        {
> +            reorder_f(input, index, center, next-1, lex);
> +            index = next;
> +        }
> +        else if (index < cChar)
> +        {
> +            int i;
> +            TRACE("Processing failed at %i\n",index);
> +            for (i = index; i < cChar; i++)
> +                if (lex(input[i])==lex_Generic)
> +                {
> +                    TRACE("Restart processing at %i\n",i);
> +                    next = i;
> +                    index = i;
> +                    break;
> +                }
> +        }
> +    }
> +    TRACE("Processed %i of %i characters\n",index,cChar);
> +}

Please don't add dead code. This function should be called from
somewhere (same for the subsequent patches).

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list