set right errorlevel for cd / chdir, left to do we do not have /d param that are new in win2k maby in older windows also
Modified: trunk/reactos/subsys/system/cmd/internal.c

Modified: trunk/reactos/subsys/system/cmd/internal.c
--- trunk/reactos/subsys/system/cmd/internal.c	2005-07-06 19:42:41 UTC (rev 16462)
+++ trunk/reactos/subsys/system/cmd/internal.c	2005-07-06 20:15:36 UTC (rev 16463)
@@ -172,6 +172,8 @@
 		return 0;
 	}
 
+   nErrorLevel = 0;
+
 	/* The whole param string is our parameter these days. The only thing we do is eliminating every quotation mark */
 	/* Is it safe to change the characters param is pointing to? I presume it is, as there doesn't seem to be any
 	post-processing of it after the function call (what would that accomplish?) */
@@ -258,13 +260,14 @@
 	{
 
 	    hSearch = FindFirstFile(dir, &FileData); 
-        if (hSearch == INVALID_HANDLE_VALUE) 
-        { 
+      if (hSearch == INVALID_HANDLE_VALUE) 
+      { 
 	        ConOutFormatMessage(GetLastError());
-			free (lpOldPath);
-		    lpOldPath = NULL;
-            return 1;
-		}
+          free (lpOldPath);
+          lpOldPath = NULL;
+          nErrorLevel = 1;
+          return 1;
+      }
 
 		
         while (!fFinished) 
@@ -282,6 +285,7 @@
 				 ConOutFormatMessage(GetLastError());
 			     free (lpOldPath);
 		         lpOldPath = NULL;
+         nErrorLevel = 1;
 				 return 1;
 			 }
 				
@@ -293,6 +297,7 @@
             {             
 		     FindClose(hSearch);
 			 ConOutFormatMessage(GetLastError());
+       nErrorLevel = 1;
 			 free (lpOldPath);
 		     lpOldPath = NULL;
 			 return 1;
@@ -301,6 +306,7 @@
 
 		//ErrorMessage (GetLastError(), _T("CD"));
 		ConOutFormatMessage(GetLastError());
+    nErrorLevel = 1;
 
 		/* throw away current directory */
 		free (lpOldPath);