When an external application we use exits normally, exit with the same

exit code they returned.  All other types of exit from child processes
are normalized to a return code of 1.
Closes SF bug #732143.
This commit is contained in:
Fred Drake 2003-05-14 04:16:14 +00:00
parent a71319eebb
commit c868d16e11

View file

@ -525,9 +525,11 @@ class Job:
self.warning(
"Session transcript and error messages are in %s."
% self.log_filename)
result = 1
if hasattr(os, "WIFEXITED"):
if os.WIFEXITED(rc):
self.warning("Exited with status %s." % os.WEXITSTATUS(rc))
result = os.WEXITSTATUS(rc)
self.warning("Exited with status %s." % result)
else:
self.warning("Killed by signal %s." % os.WSTOPSIG(rc))
else:
@ -535,7 +537,7 @@ class Job:
sys.stderr.write("The relevant lines from the transcript are:\n")
sys.stderr.write("-" * 72 + "\n")
sys.stderr.writelines(get_run_transcript(self.log_filename))
sys.exit(rc)
sys.exit(result)
def message(self, msg):
msg = "+++ " + msg