int main(int argc, char **argv) { int i; gtk_init(&argc, &argv); load_setttings(); if (argc > 1) { p_err("Currently only support ~/.config/hime/pho.tab2"); } pho_load(); for(i=0; i < idxnum_pho; i++) { phokey_t key = idx_pho[i].key; int frm = idx_pho[i].start; int to = idx_pho[i+1].start; int j; for(j=frm; j < to; j++) { prph(key); char *str = pho_idx_str(j); dbg(" %s %d\n", str, ch_pho[j].count); } } return 0; }
int utf8_pho_keys(char *utf8, phokey_t *phkeys) { int i; int ofs=0; int phkeysN=0; PH_COUNT phcou[256]; do { for(; ofs < ch_phoN; ofs++) if (utf8_eq(utf8, pho_idx_str(ofs))) break; if (ofs==ch_phoN) goto ret; for(i=0; i < idxnum_pho; i++) { if (idx_pho[i].start<= ofs && ofs < idx_pho[i+1].start) { // dbg("ofs:%d %d %d %d\n", ofs, i, idx_pho[i].start, idx_pho[i+1].start); phcou[phkeysN].count = ch_pho[ofs].count; phcou[phkeysN++].key = idx_pho[i].key; break; } } ofs++; } while (ofs < ch_phoN); ret: #if 0 utf8_putchar(utf8); dbg("n %d\n", phkeysN); #endif qsort(phcou, phkeysN, sizeof(PH_COUNT), qcmp_pho_count); for(i=0; i < phkeysN; i++) phkeys[i] = phcou[i].key; return phkeysN; }