mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 17:52:56 +00:00
add /P as param for Type, from PCDOS by Brandon Turner
svn path=/trunk/; revision=16765
This commit is contained in:
parent
dac7500f25
commit
a06de608ff
1 changed files with 23 additions and 5 deletions
|
@ -38,11 +38,12 @@ INT cmd_type (LPTSTR cmd, LPTSTR param)
|
||||||
TCHAR buff[256];
|
TCHAR buff[256];
|
||||||
HANDLE hFile, hConsoleOut;
|
HANDLE hFile, hConsoleOut;
|
||||||
DWORD dwRead;
|
DWORD dwRead;
|
||||||
DWORD dwWritten;
|
|
||||||
BOOL bRet;
|
BOOL bRet;
|
||||||
INT argc,i;
|
INT argc,i;
|
||||||
LPTSTR *argv;
|
LPTSTR *argv;
|
||||||
LPTSTR errmsg;
|
LPTSTR errmsg;
|
||||||
|
BOOL bPaging = FALSE;
|
||||||
|
BOOL bFirstTime = TRUE;
|
||||||
|
|
||||||
hConsoleOut=GetStdHandle (STD_OUTPUT_HANDLE);
|
hConsoleOut=GetStdHandle (STD_OUTPUT_HANDLE);
|
||||||
|
|
||||||
|
@ -60,9 +61,17 @@ INT cmd_type (LPTSTR cmd, LPTSTR param)
|
||||||
|
|
||||||
argv = split (param, &argc, TRUE);
|
argv = split (param, &argc, TRUE);
|
||||||
|
|
||||||
|
for(i = 0; i < argc; i++)
|
||||||
|
{
|
||||||
|
if(*argv[i] == _T('/') && _tcslen(argv[i]) >= 2 && _totupper(argv[i][1]) == _T('P'))
|
||||||
|
{
|
||||||
|
bPaging = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 0; i < argc; i++)
|
for (i = 0; i < argc; i++)
|
||||||
{
|
{
|
||||||
if (_T('/') == argv[i][0])
|
if (_T('/') == argv[i][0] && _totupper(argv[i][1]) != _T('P'))
|
||||||
{
|
{
|
||||||
LoadString(CMD_ModuleHandle, STRING_TYPE_ERROR1, szMsg, RC_STRING_MAX_SIZE);
|
LoadString(CMD_ModuleHandle, STRING_TYPE_ERROR1, szMsg, RC_STRING_MAX_SIZE);
|
||||||
ConErrPrintf(szMsg, argv[i] + 1);
|
ConErrPrintf(szMsg, argv[i] + 1);
|
||||||
|
@ -90,13 +99,22 @@ INT cmd_type (LPTSTR cmd, LPTSTR param)
|
||||||
LocalFree (errmsg);
|
LocalFree (errmsg);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
bRet = ReadFile(hFile,buff,sizeof(buff),&dwRead,NULL);
|
bRet = ReadFile(hFile,buff,sizeof(buff),&dwRead,NULL);
|
||||||
|
|
||||||
if (dwRead>0 && bRet)
|
if(bPaging)
|
||||||
WriteFile(hConsoleOut,buff,dwRead,&dwWritten,NULL);
|
{
|
||||||
|
if(dwRead>0 && bRet)
|
||||||
|
ConOutPrintfPaging(bFirstTime, buff);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(dwRead>0 && bRet)
|
||||||
|
ConOutPrintf(buff);
|
||||||
|
}
|
||||||
|
bFirstTime = FALSE;
|
||||||
|
|
||||||
} while(dwRead>0 && bRet);
|
} while(dwRead>0 && bRet);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue