U8 char_map[26]="22233344455566677778889999"; /* Fmt of word lst entry: U8 ACD_WORD_CHAR U8 word[] with terminating zero I16 block; //definition offset in ::/Adam/AutoComplete/ACDefs.DATA */ U0 PhoneNumWords(U8 *num) { I64 ch; U8 *_num=StrNew(num),*dst=_num, *dict=acd.word_lst,*st,*src; while (*num) { if ('0'<=*num<='9') *dst++=*num; num++; } *dst=0; while (*dict++) { if (StrLen(dict)>2) { dst=st=StrNew(dict); while (ch=ToUpper(*dst)) { if ('A'<=ch<='Z') *dst=char_map[ch-'A']; else *dst=CH_SPACE; dst++; } *dst=0; src=_num; while (*src) { if (!StrNCmp(st,src,StrLen(st))) { ch=*src; *src=0; "%s" ,_num; *src=ch; "$GREEN$%s$FG$" ,dict; "%s\n" ,src+StrLen(st); } src++; } Free(st); } dict+=StrLen(dict)+3; } Free(_num); '\n'; } U0 PNWDemo() { U8 *st; while ((st=GetStr("Phone Num:")) && *st) { PhoneNumWords(st); Free(st); } Free(st); } PNWDemo;