* Added multiple file support (copied from y.c)
*
* 30-Apr-2005 (Magnus Olsen) <magnus@greatlord.com>)
- * Remove all hardcode string to En.rc
+ * Remove all hardcode string to En.rc
*/
-#include "precomp.h"
+#include <precomp.h>
#include "resource.h"
#ifdef INCLUDE_CMD_TYPE
TCHAR szMsg[RC_STRING_MAX_SIZE];
TCHAR buff[256];
HANDLE hFile, hConsoleOut;
- DWORD dwRead;
- DWORD dwWritten;
BOOL bRet;
INT argc,i;
LPTSTR *argv;
LPTSTR errmsg;
+ BOOL bPaging = FALSE;
+ BOOL bFirstTime = TRUE;
hConsoleOut=GetStdHandle (STD_OUTPUT_HANDLE);
if (!_tcsncmp (param, _T("/?"), 2))
{
- LoadString(GetModuleHandle(NULL), STRING_TYPE_HELP1, szMsg, RC_STRING_MAX_SIZE);
- ConOutPuts(szMsg);
+ ConOutResPaging(TRUE,STRING_TYPE_HELP1);
return 0;
}
}
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++)
{
- if (_T('/') == argv[i][0])
+ if (_T('/') == argv[i][0] && _totupper(argv[i][1]) != _T('P'))
{
- LoadString(GetModuleHandle(NULL), STRING_TYPE_ERROR1, szMsg, RC_STRING_MAX_SIZE);
+ LoadString(CMD_ModuleHandle, STRING_TYPE_ERROR1, szMsg, RC_STRING_MAX_SIZE);
ConErrPrintf(szMsg, argv[i] + 1);
continue;
}
+ nErrorLevel = 0;
+
hFile = CreateFile(argv[i],
GENERIC_READ,
FILE_SHARE_READ,NULL,
NULL);
ConErrPrintf (_T("%s - %s"), argv[i], errmsg);
LocalFree (errmsg);
+ nErrorLevel = 1;
continue;
}
-
+
do
{
- bRet = ReadFile(hFile,buff,sizeof(buff),&dwRead,NULL);
-
- if (dwRead>0 && bRet)
- WriteFile(hConsoleOut,buff,dwRead,&dwWritten,NULL);
-
- } while(dwRead>0 && bRet);
+ bRet = FileGetString (hFile, buff, sizeof(buff) / sizeof(TCHAR));
+ if(bPaging)
+ {
+ if(bRet)
+ ConOutPrintfPaging(bFirstTime, buff);
+ }
+ else
+ {
+ if(bRet)
+ ConOutPrintf(buff);
+ }
+ bFirstTime = FALSE;
+
+ } while(bRet);
CloseHandle(hFile);
}