mirror of
https://github.com/Zeal-Operating-System/ZealOS.git
synced 2025-01-14 08:36:31 +00:00
3a33e6baaf
Rename all .CC files to .ZC extension.
72 lines
1 KiB
HolyC
Executable file
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;
|