From 74c38c6d1c813ddaa1ef2b7b88db5cc93cd44888 Mon Sep 17 00:00:00 2001
From: Francois-Rene Rideau <tunes@google.com>
Date: Sat, 12 Jan 2013 00:22:32 -0500
Subject: [PATCH] 2.26.81: Fix tests for LispWorks, including a fix to
 run-program/.

---
 asdf.asd                 |  2 +-
 header.lisp              |  2 +-
 run-program.lisp         | 13 +++++++------
 test/script-support.lisp |  1 +
 upgrade.lisp             |  2 +-
 5 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/asdf.asd b/asdf.asd
index b612f847..6beb5559 100644
--- a/asdf.asd
+++ b/asdf.asd
@@ -15,7 +15,7 @@
   :licence "MIT"
   :description "Another System Definition Facility"
   :long-description "ASDF builds Common Lisp software organized into defined systems."
-  :version "2.26.80" ;; to be automatically updated by bin/bump-revision
+  :version "2.26.81" ;; to be automatically updated by bin/bump-revision
   :depends-on ()
   :components ((:module "build" :components ((:file "asdf"))))
   :in-order-to (#+asdf2.27 (compile-op (monolithic-load-concatenated-source-op generate-asdf))))
diff --git a/header.lisp b/header.lisp
index 4c21f0dd..daae007f 100644
--- a/header.lisp
+++ b/header.lisp
@@ -1,5 +1,5 @@
 ;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp ; coding: utf-8 -*-
-;;; This is ASDF 2.26.80: Another System Definition Facility.
+;;; This is ASDF 2.26.81: Another System Definition Facility.
 ;;;
 ;;; Feedback, bug reports, and patches are all welcome:
 ;;; please mail to <asdf-devel@common-lisp.net>.
diff --git a/run-program.lisp b/run-program.lisp
index 85e5e277..6d861a16 100644
--- a/run-program.lisp
+++ b/run-program.lisp
@@ -272,19 +272,20 @@ Use ELEMENT-TYPE and EXTERNAL-FORMAT for the stream passed to the OUTPUT process
                        #+sbcl (sb-ext:process-output process))))
                (values process stream)))
            #+(or allegro clisp clozure cmu ecl (and lispworks os-unix) sbcl scl)
-           (process-result (process)
+           (process-result (process pipe)
+             (declare (ignorable pipe))
              ;; 1- wait
              #+(and clozure os-unix) (ccl::external-process-wait process)
              #+(or cmu scl) (ext:process-wait process)
              #+(and ecl os-unix) (ext:external-process-wait process)
              #+sbcl (sb-ext:process-wait process)
              ;; 2- extract result
-             #+allegro (sys:reap-os-subprocess :pid process :wait t)
+             #+allegro (if pipe (sys:reap-os-subprocess :pid process :wait t) process)
              #+clisp process
              #+clozure (nth-value 1 (ccl:external-process-status process))
              #+(or cmu scl) (ext:process-exit-code process)
              #+ecl (nth-value 1 (ext:external-process-status process))
-             #+lispworks (system:pid-exit-status process :wait t)
+             #+lispworks (if pipe (system:pid-exit-status process :wait t) process)
              #+sbcl (sb-ext:process-exit-code process))
            (check-result (exit-code process)
              #+clisp
@@ -304,12 +305,12 @@ Use ELEMENT-TYPE and EXTERNAL-FORMAT for the stream passed to the OUTPUT process
                      (unwind-protect
                           (slurp-input-stream output stream)
                        (when stream (close stream))
-                       (check-result (process-result process) process))
+                       (check-result (process-result process pipe) process))
                      (unwind-protect
                           (check-result
                            #+(or allegro lispworks) ; when not capturing, returns the exit code!
                            process
-                           #-(or allegro lispworks) (process-result process)
+                           #-(or allegro lispworks) (process-result process pipe)
                            process))))))
            (system-command (command)
              (etypecase command
@@ -324,7 +325,7 @@ Use ELEMENT-TYPE and EXTERNAL-FORMAT for the stream passed to the OUTPUT process
              #+allegro
              (excl:run-shell-command command :input interactive :output interactive :wait t)
              #+(or clisp clozure cmu (and lispworks os-unix) sbcl scl)
-             (process-result (run-program command :pipe nil :interactive interactive))
+             (process-result (run-program command :pipe nil :interactive interactive) nil)
              #+ecl (ext:system command)
              #+cormanlisp (win32:system command)
              #+gcl (lisp:system command)
diff --git a/test/script-support.lisp b/test/script-support.lisp
index dbccd990..2a1a3794 100644
--- a/test/script-support.lisp
+++ b/test/script-support.lisp
@@ -55,6 +55,7 @@
                     #+xcl :xcl))))
      (merge-pathnames
       (make-pathname :directory `(#-gcl :relative "fasls" ,impl)
+                     :name "asdf" ;; otherwise LispWorks borks, because it fills in :UNSPECIFIC rather than NIL.
                      :defaults *asdf-directory*)
       *asdf-lisp*))))
 
diff --git a/upgrade.lisp b/upgrade.lisp
index 981a751d..14c27463 100644
--- a/upgrade.lisp
+++ b/upgrade.lisp
@@ -31,7 +31,7 @@
          ;; "2.345.6" would be a development version in the official upstream
          ;; "2.345.0.7" would be your seventh local modification of official release 2.345
          ;; "2.345.6.7" would be your seventh local modification of development version 2.345.6
-         (asdf-version "2.26.80")
+         (asdf-version "2.26.81")
          (existing-asdf (find-class (find-symbol* :component :asdf nil) nil))
          (existing-version *asdf-version*)
          (already-there (equal asdf-version existing-version)))
-- 
GitLab