[ros-diffs] [greatlrd] 16765: add /P as param for Type, from PCDOS by Brandon Turner

greatlrd at svn.reactos.com greatlrd at svn.reactos.com
Wed Jul 27 02:06:07 CEST 2005


add /P as param for Type, from PCDOS by Brandon Turner
Modified: trunk/reactos/subsys/system/cmd/type.c
  _____  

Modified: trunk/reactos/subsys/system/cmd/type.c
--- trunk/reactos/subsys/system/cmd/type.c	2005-07-26 22:51:03 UTC
(rev 16764)
+++ trunk/reactos/subsys/system/cmd/type.c	2005-07-27 00:05:34 UTC
(rev 16765)
@@ -38,11 +38,12 @@

 	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);
 
@@ -60,9 +61,17 @@
 
 	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(CMD_ModuleHandle, STRING_TYPE_ERROR1,
szMsg, RC_STRING_MAX_SIZE);
 			ConErrPrintf(szMsg, argv[i] + 1);
@@ -90,13 +99,22 @@
 			LocalFree (errmsg);
 			continue;
 		}
-
+		
 		do
 		{
 			bRet =
ReadFile(hFile,buff,sizeof(buff),&dwRead,NULL);
 
-			if (dwRead>0 && bRet)
-
WriteFile(hConsoleOut,buff,dwRead,&dwWritten,NULL);
+			if(bPaging)
+			{
+				if(dwRead>0 && bRet)
+					ConOutPrintfPaging(bFirstTime,
buff);
+			}
+			else
+			{				
+				if(dwRead>0 && bRet)
+					ConOutPrintf(buff);
+			}
+			bFirstTime = FALSE;
 
 		} while(dwRead>0 && bRet);
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.reactos.org/pipermail/ros-diffs/attachments/20050727/44e67fcc/attachment.html


More information about the Ros-diffs mailing list