ZealOS/src/Demo/PhoneNumWords.ZC
TomAwezome 3a33e6baaf Rename CosmiC to ZealC.
Rename all .CC files to .ZC extension.
2021-12-11 06:21:22 -05:00

72 lines
1 KiB
HolyC
Executable file

U8 char_map[26]="22233344455566677778889999";
/*
Format of word list entry:
U8 ACD_WORD_CHAR
U8 word[] with terminating zero
I16 block; //definition offset in ::/System/AutoComplete/ACDefs.DATA
*/
U0 PhoneNumWords(U8 *num)
{
I64 ch;
U8 *_num = StrNew(num), *dst = _num,
*dict = acd.word_list, *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 (!StrNCompare(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 = StrGet("Phone Num:")) && *st)
{
PhoneNumWords(st);
Free(st);
}
Free(st);
}
PNWDemo;