anchor.diff:               #+ecl (nth-value 1 (ext:external-process-status process))
                #+lispworks (system:pid-exit-status process :wait t)
                #+sbcl (sb-ext:process-exit-code process))
  -           (check-result (exit-code)
  +           (check-result (exit-code process)
                #+clisp
                (setf exit-code
                      (typecase exit-code (integer exit-code) (null 0) (t -1)))
                (unless (or ignore-error-status
                            (equal exit-code 0))
  -               (error "Process ~S exited with error code ~D" command exit-code))
  -             exit-code)
  +               (error 'subprocess-error :command command :code exit-code :process process)))
              (use-run-program ()
                #-(or abcl cormanlisp gcl (and lispworks os-windows) mcl xcl)
                (let ((pipe (and output t)))
  
positive.code:               command :show-cmd nil :prefix "" :output-stream nil)
               #+mcl (ccl::with-cstrs ((%command command)) (_system %command)))
             (call-system (command-string)
               (check-result (system command-string)))
             (use-system ()
               (if output
                   (with-temporary-file (:pathname tmp :direction :output)
  
negative.code:                      (unwind-protect
                            (slurp-input-stream output stream)
                         (when stream (close stream))
                         (check-result (process-result process) process))
                       (unwind-protect
                            (check-result
                             #+(or allegro lispworks) ; when not capturing, returns the exit code!
                             process
                             #-(or allegro lispworks) (process-result process)
                             process))))))
             (system-command (command)
               (etypecase command
                 (string (if (os-windows-p) (format nil "cmd /c ~A" command) command))
  