From efed709f6967b02a75dafb630d7da7357b7ebda3 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Tue, 12 Apr 2011 10:21:26 -0400 Subject: [PATCH] improve error reporting when using exec --- src/racket/src/port.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/racket/src/port.c b/src/racket/src/port.c index 38fbc345c7..ecef7e53c5 100644 --- a/src/racket/src/port.c +++ b/src/racket/src/port.c @@ -8203,12 +8203,20 @@ static Scheme_Object *subprocess(int c, Scheme_Object *args[]) END_XFORM_SKIP; err = MSC_IZE(execv)(command, argv); + if (err) + err = errno; /* If we get here it failed; give up */ /* using scheme_signal_error will leave us in the forked process, so use scheme_console_printf instead */ - scheme_console_printf("racket: exec failed (%d)\n", err); + scheme_console_printf("racket: exec failed (%s%serrno=%d)\n", +#ifdef NO_STRERROR_AVAILABLE + "", "", +#else + strerror(err), "; ", +#endif + err); /* back to Racket signal dispositions: */ START_XFORM_SKIP;