Fix a weird bug in piping in some case if you pipe to no exists >pipe: then to a exists >pipe: it did make cmd crash for createfile only SetLastErrror when it fails. and the old one was in the loop. to solv it is to rest the GetLastError code before it is call.
Modified: trunk/reactos/subsys/system/cmd/cmd.c

Modified: trunk/reactos/subsys/system/cmd/cmd.c
--- trunk/reactos/subsys/system/cmd/cmd.c	2005-07-14 14:51:35 UTC (rev 16561)
+++ trunk/reactos/subsys/system/cmd/cmd.c	2005-07-14 18:16:57 UTC (rev 16562)
@@ -669,14 +669,20 @@
 	{
 		SECURITY_ATTRIBUTES sa = {sizeof(SECURITY_ATTRIBUTES), NULL, TRUE};
 
-		/* Create unique temporary file name */
+    
+
+    /* Create unique temporary file name */
 		GetTempFileName (szTempPath, _T("CMD"), 0, szFileName[1]);
 
+    /* we need make sure the LastError msg is zero before calling CreateFile */
+		 SetLastError(0); 
+
 		/* Set current stdout to temporary file */
 		hFile[1] = CreateFile (szFileName[1], GENERIC_WRITE, 0, &sa,
 				       TRUNCATE_EXISTING, FILE_ATTRIBUTE_TEMPORARY, NULL);
-		if (hFile[1] == INVALID_HANDLE_VALUE)
-		{
+		
+    if (hFile[1] == INVALID_HANDLE_VALUE)
+		{      
 			LoadString(CMD_ModuleHandle, STRING_CMD_ERROR2, szMsg, RC_STRING_MAX_SIZE);
 			ConErrPrintf(szMsg);
 			return;