void debug_output_int32(const char *var_name, int32_t v) { t_can_simple_var_packet p; debug_output_string(var_name); p.type = SIMPLE_VAR_TYPE_INT32; p.ctr = debug_output_next_ctr++; memcpy(p.data, &v, sizeof(v)); ecan_send(SIMPLE_VAR_OUTPUT_ID, (unsigned char *)&p, 8, 0); }
void Indic_ParseSyllables( HDC hdc, SCRIPT_ANALYSIS *psa, ScriptCache* psc, LPCWSTR input, const int cChar, IndicSyllable **syllables, int *syllable_count, lexical_function lex, BOOL modern) { int index = 0; int next = 0; int center = 0; *syllable_count = 0; if (!lex) { ERR("Failure to have required functions\n"); return; } debug_output_string(input, cChar, lex); while (next != -1) { while((next < cChar) && lex(input[next]) == lex_Generic) next++; index = next; if (next >= cChar) break; next = Indic_process_next_syllable(input, cChar, 0, ¢er, index, lex); if (next != -1) { if (*syllable_count) *syllables = HeapReAlloc(GetProcessHeap(),0,*syllables, sizeof(IndicSyllable)*(*syllable_count+1)); else *syllables = HeapAlloc(GetProcessHeap(),0,sizeof(IndicSyllable)); (*syllables)[*syllable_count].start = index; (*syllables)[*syllable_count].base = center; (*syllables)[*syllable_count].ralf = -1; (*syllables)[*syllable_count].blwf = -1; (*syllables)[*syllable_count].pref = -1; (*syllables)[*syllable_count].end = next-1; FindBaseConsonant(hdc, psa, psc, input, &(*syllables)[*syllable_count], lex, modern); index = next; *syllable_count = (*syllable_count)+1; } else if (index < cChar) { TRACE("Processing failed at %i\n",index); next = ++index; } } TRACE("Processed %i of %i characters into %i syllables\n",index,cChar,*syllable_count); }