Made cmd unicode compatible. Modified: trunk/reactos/subsys/system/cmd/console.c Modified: trunk/reactos/subsys/system/cmd/copy.c Modified: trunk/reactos/subsys/system/cmd/main.c Modified: trunk/reactos/subsys/system/cmd/move.c _____
Modified: trunk/reactos/subsys/system/cmd/console.c --- trunk/reactos/subsys/system/cmd/console.c 2005-07-30 18:51:43 UTC (rev 16897) +++ trunk/reactos/subsys/system/cmd/console.c 2005-07-30 18:52:33 UTC (rev 16898) @@ -261,22 +261,27 @@
LineCount = 0;
/* rest LineCount and return if no string have been given */ - if (szFormat == NULL) - return; + if (szFormat == NULL) + return;
//get the size of the visual screen that can be printed too - GetConsoleScreenBufferInfo(hConsole, &csbi); + if (!GetConsoleScreenBufferInfo(hConsole, &csbi)) + { + // we assuming its a file handle + ConPrintf(szFormat, arg_ptr, nStdHandle); + return; + } //subtract 2 to account for "press any key..." and for the blank line at the end of PagePrompt() ScreenLines = (csbi.srWindow.Bottom - csbi.srWindow.Top) - 4; ScreenCol = (csbi.srWindow.Right - csbi.srWindow.Left) + 1;
- //make sure they didnt make the screen to small + //make sure they didnt make the screen to small if(ScreenLines<4) - { - ConPrintf(szFormat, arg_ptr, nStdHandle); - return ; - } + { + ConPrintf(szFormat, arg_ptr, nStdHandle); + return ; + } len = _vstprintf (szOut, szFormat, arg_ptr); #ifdef _UNICODE @@ -286,44 +291,44 @@ pBuf = szOut; #endif - for(i = 0; i < len; i++) - { + for(i = 0; i < len; i++) + {
- if(szOut[i] == _T('\n')) - { - LineCount++; - CharEL=0; - } - else - { - CharEL++; - if (CharEL>=ScreenCol) - { - if (i+1<len) - { - if(szOut[i+1] != _T('\n')) LineCount++; - } - CharEL=0; - } - } + if(pBuf[i] == '\n') + { + LineCount++; + CharEL=0; + } + else + { + CharEL++; + if (CharEL>=ScreenCol) + { + if (i+1<len) + { + if(pBuf[i+1] != '\n') LineCount++; + } + CharEL=0; + } + }
- /* FIXME : write more that one char at time */ - WriteFile (GetStdHandle (nStdHandle),&pBuf[i],sizeof(TCHAR),&dwWritten,NULL); - if(LineCount >= ScreenLines) - { - if(_tcsncicmp(&szOut[i],_T("\n"),2)!=0) - WriteFile (GetStdHandle (nStdHandle),_T("\n"),sizeof(TCHAR),&dwWritten,NULL); + /* FIXME : write more that one char at time */ + WriteFile (GetStdHandle (nStdHandle),&pBuf[i],sizeof(CHAR),&dwWritten,NULL); + if(LineCount >= ScreenLines) + { + if(strnicmp(&pBuf[i], "\n", 2)!=0) + WriteFile (GetStdHandle (nStdHandle),"\n",sizeof(CHAR),&dwWritten,NULL);
- if(PagePrompt() != PROMPT_YES) - { - return; - } - //reset the number of lines being printed - LineCount = 0; - CharEL=0; - } + if(PagePrompt() != PROMPT_YES) + { + return; + } + //reset the number of lines being printed + LineCount = 0; + CharEL=0; + }
- } + }
#ifdef UNICODE free(pBuf); _____
Modified: trunk/reactos/subsys/system/cmd/copy.c --- trunk/reactos/subsys/system/cmd/copy.c 2005-07-30 18:51:43 UTC (rev 16897) +++ trunk/reactos/subsys/system/cmd/copy.c 2005-07-30 18:52:33 UTC (rev 16898) @@ -321,7 +321,7 @@
INT res; LoadString(CMD_ModuleHandle, STRING_COPY_HELP1, szMsg, RC_STRING_MAX_SIZE); ConOutPrintf(szMsg,fn); - res = FilePromptYNA (""); + res = FilePromptYNA (_T("")); return res; }
@@ -833,7 +833,7 @@ nFiles++; /* only print source name when more then one file */ if(_tcschr (arg[nSrc], _T('+')) != NULL || _tcschr (arg[nSrc], _T('*')) != NULL) - ConOutPrintf("%s\n",findBuffer.cFileName); + ConOutPrintf(_T("%s\n"),findBuffer.cFileName); //LoadString(CMD_ModuleHandle, STRING_MOVE_ERROR1, szMsg, RC_STRING_MAX_SIZE); } else _____
Modified: trunk/reactos/subsys/system/cmd/main.c --- trunk/reactos/subsys/system/cmd/main.c 2005-07-30 18:51:43 UTC (rev 16897) +++ trunk/reactos/subsys/system/cmd/main.c 2005-07-30 18:52:33 UTC (rev 16898) @@ -17,7 +17,7 @@
#endif { #ifdef _UNICODE - return _main(void); + return _main(); #else return _main(argc, argv); #endif _____
Modified: trunk/reactos/subsys/system/cmd/move.c --- trunk/reactos/subsys/system/cmd/move.c 2005-07-30 18:51:43 UTC (rev 16897) +++ trunk/reactos/subsys/system/cmd/move.c 2005-07-30 18:52:33 UTC (rev 16898) @@ -60,7 +60,7 @@
INT res; LoadString(CMD_ModuleHandle, STRING_MOVE_HELP1, szMsg, RC_STRING_MAX_SIZE); ConOutPrintf(szMsg,fn); - res = FilePromptYNA (""); + res = FilePromptYNA (_T("")); return res; }