Aric Stewart <aric(a)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, ¢er, 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(a)winehq.org