Subject: bug#6430: Emacs WINDOWS truncates exit status of processes to 8 bits

From: Eli Zaretskii <[email-masked]>
Date: Wed, 15 Jun 2016 05:39:50 +0300

> From: Noam Postavsky <[email-masked]>
> Date: Tue, 14 Jun 2016 17:48:22 -0400
> Cc: [email-masked], [email-masked]
> 
> > Emacs doesn't truncate exit status of subprocesses in any way, it
> > retrieves the full value of the status, and then reformats it
> > according to what the Posix-style WIF* macros (which Emacs uses
> > elsewhere) expect.  No information is lost during this reformatting,
> > see the implementation of waitpid in w32proc.c.
> 
> Not really sure what this reformatting is about, but I think the point
> is that the original value does not return to lisp.

Why is that a problem?

The important information that I thought this was about is in the
upper 4 bits of the status, and it doesn't get lost -- it's passed
back to Emacs as the signal (if any) that caused the subprocess to
exit.

If there are any important use cases with programs that return status
above 255, we can easily change the definition of WEXITSTATUS for
Windows.  But I have yet to see a real-life example of such a program,
or any complaint about the current WEXITSTATUS definition in Emacs.