mirror of https://github.com/minexew/Shrine.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1000 B
63 lines
1000 B
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;
|
|
|