diff --git a/reactos/subsys/system/cmd/console.c b/reactos/subsys/system/cmd/console.c index 4adf0108590..df3de993386 100644 --- a/reactos/subsys/system/cmd/console.c +++ b/reactos/subsys/system/cmd/console.c @@ -261,22 +261,27 @@ VOID ConPrintfPaging(BOOL NewPage, LPTSTR szFormat, va_list arg_ptr, DWORD nStdH 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 @@ VOID ConPrintfPaging(BOOL NewPage, LPTSTR szFormat, va_list arg_ptr, DWORD nStdH 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=ScreenCol) + { + if (i+1= 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); diff --git a/reactos/subsys/system/cmd/copy.c b/reactos/subsys/system/cmd/copy.c index 8d4d105f51d..957a1da17d5 100644 --- a/reactos/subsys/system/cmd/copy.c +++ b/reactos/subsys/system/cmd/copy.c @@ -321,7 +321,7 @@ static INT Overwrite (LPTSTR fn) 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 @@ INT cmd_copy (LPTSTR cmd, LPTSTR param) 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 diff --git a/reactos/subsys/system/cmd/main.c b/reactos/subsys/system/cmd/main.c index a760e3eba52..85bb80b7542 100644 --- a/reactos/subsys/system/cmd/main.c +++ b/reactos/subsys/system/cmd/main.c @@ -17,7 +17,7 @@ int main (int argc, char *argv[]) #endif { #ifdef _UNICODE - return _main(void); + return _main(); #else return _main(argc, argv); #endif diff --git a/reactos/subsys/system/cmd/move.c b/reactos/subsys/system/cmd/move.c index ac50741ea3e..00f6dafb201 100644 --- a/reactos/subsys/system/cmd/move.c +++ b/reactos/subsys/system/cmd/move.c @@ -60,7 +60,7 @@ static INT Overwrite (LPTSTR fn) INT res; LoadString(CMD_ModuleHandle, STRING_MOVE_HELP1, szMsg, RC_STRING_MAX_SIZE); ConOutPrintf(szMsg,fn); - res = FilePromptYNA (""); + res = FilePromptYNA (_T("")); return res; }