X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Frun-program.lisp;h=b854e3109faf78fa1f20c52f79ff4d2f2877bb26;hb=171fde84561e232b8af8c05b82dfe8a8f9e08340;hp=0417401ce26c2249b129b6cdc81a2b3d305c23ee;hpb=6113d10bd637c220036cb74b45f03354fe1f872d;p=sbcl.git diff --git a/src/code/run-program.lisp b/src/code/run-program.lisp index 0417401..b854e31 100644 --- a/src/code/run-program.lisp +++ b/src/code/run-program.lisp @@ -773,7 +773,7 @@ Users Manual for details about the PROCESS structure."#-win32" (if search 1 0) environment-vec pty-name (if wait 1 0)))) - (unless (= child -1) + (unless (minusp child) (setf proc (apply #'make-process @@ -791,9 +791,15 @@ Users Manual for details about the PROCESS structure."#-win32" (list :%status :running)))) (push proc *active-processes*))))) ;; Report the error outside the lock. - (when (= child -1) - (error "couldn't fork child process: ~A" - (strerror))))))))) + #+win32 + (when (minusp child) + (error "Couldn't execute ~S: ~A" progname (strerror))) + #-win32 + (case child + (-2 + (error "Couldn't execute ~S: ~A" progname (strerror))) + (-1 + (error "Couldn't fork child process: ~A" (strerror)))))))))) (dolist (fd *close-in-parent*) (sb-unix:unix-close fd)) (unless proc