add /P as param for Type, from PCDOS by Brandon Turner

svn path=/trunk/; revision=16765
This commit is contained in:
Magnus Olsen 2005-07-27 00:05:34 +00:00
parent dac7500f25
commit a06de608ff

View file

@ -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);