wchar* strupperw(wchar *Str) { for (wchar *ChPtr=Str;*ChPtr;ChPtr++) if (*ChPtr<128) *ChPtr=loctoupper(*ChPtr); return(Str); }
int Ask(const char *AskStr) { const int MaxItems=10; char Item[MaxItems][40]; int ItemKeyPos[MaxItems],NumItems=0; for (const char *NextItem=AskStr;NextItem!=NULL;NextItem=strchr(NextItem+1,'_')) { char *CurItem=Item[NumItems]; strncpyz(CurItem,NextItem+1,ASIZE(Item[0])); char *EndItem=strchr(CurItem,'_'); if (EndItem!=NULL) *EndItem=0; int KeyPos=0,CurKey; while ((CurKey=CurItem[KeyPos])!=0) { bool Found=false; for (int I=0;I<NumItems && !Found;I++) if (loctoupper(Item[I][ItemKeyPos[I]])==loctoupper(CurKey)) Found=true; if (!Found && CurKey!=' ') break; KeyPos++; } ItemKeyPos[NumItems]=KeyPos; NumItems++; } for (int I=0;I<NumItems;I++) { eprintf(I==0 ? (NumItems>4 ? "\n":" "):", "); int KeyPos=ItemKeyPos[I]; for (int J=0;J<KeyPos;J++) eprintf("%c",Item[I][J]); eprintf("[%c]%s",Item[I][KeyPos],&Item[I][KeyPos+1]); } eprintf(" "); int Ch=GetKey(); #if defined(_WIN_32) OemToCharBuff((LPCSTR)&Ch,(LPTSTR)&Ch,1); #endif Ch=loctoupper(Ch); for (int I=0;I<NumItems;I++) if (Ch==Item[I][ItemKeyPos[I]]) return(I+1); return(0); }
char* strupper(char *Str) { /*#ifdef _WIN_32 CharUpper((LPTSTR)Str); #else*/ for (char *ChPtr=Str;*ChPtr;ChPtr++) *ChPtr=(char)loctoupper(*ChPtr); //#endif return(Str); }
char* strupper(char *Str) { #ifdef _WIN_ALL CharUpperA((LPSTR)Str); #else for (char *ChPtr=Str;*ChPtr;ChPtr++) *ChPtr=(char)loctoupper(*ChPtr); #endif return(Str); }
int toupperw(int ch) { return((ch<128) ? loctoupper(ch):ch); }