Return error codes correctly, fixes 1109. Patch by Hartmut Birr.
Modified: trunk/reactos/subsys/system/cmd/cmd.c

Modified: trunk/reactos/subsys/system/cmd/cmd.c
--- trunk/reactos/subsys/system/cmd/cmd.c	2005-12-15 23:24:43 UTC (rev 20203)
+++ trunk/reactos/subsys/system/cmd/cmd.c	2005-12-16 03:00:02 UTC (rev 20204)
@@ -353,6 +353,7 @@
 	if (first == NULL)
 	{
 		error_out_of_memory();
+                nErrorLevel = 1;
 		return ;
 	}
 
@@ -361,6 +362,7 @@
 	{
 		free (first);
 		error_out_of_memory();
+                nErrorLevel = 1;
 		return ;
 	}
 
@@ -370,6 +372,7 @@
 		free (first);
 		free (rest);
 		error_out_of_memory();
+                nErrorLevel = 1;
 		return ;
 	}
 
@@ -380,6 +383,7 @@
 		free (rest);
 		free (full);
 		error_out_of_memory();
+                nErrorLevel = 1;
 		return ;
 	}
 
@@ -450,7 +454,7 @@
 		free (rest);
 		free (full);
 		free (szFullName);
-
+                nErrorLevel = 1;
 		return;
 	}
 
@@ -463,6 +467,7 @@
 			free (rest);
 			free (full);
 			free (szFullName);
+                        nErrorLevel = 1;
 			return;
 
 	}
@@ -525,6 +530,10 @@
 				GetExitCodeProcess (prci.hProcess, &dwExitCode);
 				nErrorLevel = (INT)dwExitCode;
 			}
+                        else
+                        {
+                            nErrorLevel = 0;
+                        }
 			CloseHandle (prci.hThread);
 			CloseHandle (prci.hProcess);
 		}
@@ -540,7 +549,12 @@
 				DebugPrintf (_T("[ShellExecute failed!: %s]\n"), full);
 #endif
 				error_bad_command ();
+                                nErrorLevel = 1;
 			}
+                        else
+                        {
+                                nErrorLevel = 0;
+                        }
 		}
 		// restore console mode
 		SetConsoleMode (
@@ -1331,7 +1345,7 @@
 		if (!(ip = ReadBatchLine (&bEchoThisLine)))
 		{
 			if (bFlag)
-				return 0;
+				return nErrorLevel;
 
 			ReadCommand (readline, CMDLINE_LENGTH);
 			ip = readline;
@@ -1457,7 +1471,7 @@
 	}
 	while (!bCanExit || !bExit);
 
-	return 0;
+	return nErrorLevel;
 }