From 3b674e746c1d7a894dc37c835ced65fe241bbbeb Mon Sep 17 00:00:00 2001
From: Francois-Rene Rideau <tunes@google.com>
Date: Thu, 31 Jan 2013 03:48:16 -0500
Subject: [PATCH] 2.26.172: fixes for POIU, Genera, etc.

---
 action.lisp       |  3 +--
 asdf.asd          |  2 +-
 common-lisp.lisp  | 11 ++++++-----
 filesystem.lisp   |  3 ++-
 header.lisp       |  2 +-
 package.lisp      |  4 ++--
 plan.lisp         |  6 +++---
 upgrade.lisp      |  2 +-
 version.lisp-expr |  2 +-
 9 files changed, 18 insertions(+), 17 deletions(-)

diff --git a/action.lisp b/action.lisp
index c7d9d2811..4d194cec6 100644
--- a/action.lisp
+++ b/action.lisp
@@ -6,7 +6,6 @@
   (:recycle :asdf/action :asdf)
   (:use :asdf/common-lisp :asdf/driver :asdf/upgrade
    :asdf/component :asdf/system #:asdf/cache :asdf/find-system :asdf/find-component :asdf/operation)
-  (:intern #:stamp #:done-p)
   (:export
    #:action #:define-convenience-action-methods
    #:explain #:action-description
@@ -17,7 +16,7 @@
    #:component-operation-time #:mark-operation-done #:compute-action-stamp
    #:perform #:perform-with-restarts #:retry #:accept #:feature
    #:traverse-actions #:traverse-sub-actions #:required-components ;; in plan
-   #:action-path #:find-action))
+   #:action-path #:find-action #:stamp #:done-p))
 (in-package :asdf/action)
 
 (deftype action () '(cons operation component)) ;; a step to be performed while building the system
diff --git a/asdf.asd b/asdf.asd
index 31277183b..8ce533878 100644
--- a/asdf.asd
+++ b/asdf.asd
@@ -66,7 +66,7 @@
   :licence "MIT"
   :description "Another System Definition Facility"
   :long-description "ASDF builds Common Lisp software organized into defined systems."
-  :version "2.26.171" ;; to be automatically updated by make bump-version
+  :version "2.26.172" ;; to be automatically updated by make bump-version
   :depends-on ()
   #+asdf3 :encoding #+asdf3 :utf-8
   ;; For most purposes, asdf itself specially counts as a builtin system.
diff --git a/common-lisp.lisp b/common-lisp.lisp
index 007c83f66..72f1d2448 100644
--- a/common-lisp.lisp
+++ b/common-lisp.lisp
@@ -150,19 +150,20 @@
       (labels ((emit (start end)
                  (when (and (zerop start) (= end length))
                    (return-from remove-substrings string))
-                 (unless stream (setf stream (make-string-output-stream)))
-                 (write-string string stream :start start :end end))
+                 (when (< start end)
+                   (unless stream (setf stream (make-string-output-stream)))
+                   (write-string string stream :start start :end end)))
                (recurse (substrings start end)
                  (cond
-                   ((= start end))
+                   ((>= start end))
                    ((null substrings) (emit start end))
                    (t (let* ((sub (first substrings))
-                             (found (search sub string))
+                             (found (search sub string :start2 start :end2 end))
                              (more (rest substrings)))
                         (cond
                           (found
                            (recurse more start found)
-                           (recurse more (+ found (length sub)) end))
+                           (recurse substrings (+ found (length sub)) end))
                           (t
                            (recurse more start end))))))))
         (recurse substrings 0 length))
diff --git a/filesystem.lisp b/filesystem.lisp
index 76e6239a7..95a4ba272 100644
--- a/filesystem.lisp
+++ b/filesystem.lisp
@@ -91,7 +91,8 @@ or the original (parsed) pathname if it is false (the default)."
             #-(or allegro clisp gcl2.6)
             (if truename
                 (probe-file p)
-                (and (ignore-errors
+                (and (not (wild-pathname-p p))
+                     (ignore-errors
                       (let ((pp (translate-logical-pathname p)))
                         #+(or cmu scl) (unix:unix-stat (ext:unix-namestring pp))
                         #+(and lispworks unix) (system:get-file-stat pp)
diff --git a/header.lisp b/header.lisp
index 0f500de5f..90c87f333 100644
--- a/header.lisp
+++ b/header.lisp
@@ -1,5 +1,5 @@
 ;;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp -*-
-;;; This is ASDF 2.26.171: Another System Definition Facility.
+;;; This is ASDF 2.26.172: Another System Definition Facility.
 ;;;
 ;;; Feedback, bug reports, and patches are all welcome:
 ;;; please mail to <asdf-devel@common-lisp.net>.
diff --git a/package.lisp b/package.lisp
index 3b39ac294..a16e38e35 100644
--- a/package.lisp
+++ b/package.lisp
@@ -393,7 +393,7 @@ or when loading the package is optional."
     (check-type symbol symbol)
     (check-type to-package package)
     (check-type from-package package)
-    (check-type mixp boolean)
+    (check-type mixp (member nil t)) ; no cl:boolean on Genera
     (check-type shadowed hash-table)
     (check-type imported hash-table)
     (check-type inherited hash-table)
@@ -482,7 +482,7 @@ or when loading the package is optional."
   (defun ensure-symbol (name package intern recycle shadowed imported inherited exported)
     (check-type name string)
     (check-type package package)
-    (check-type intern boolean)
+    (check-type intern (member nil t)) ; no cl:boolean on Genera
     (check-type shadowed hash-table)
     (check-type imported hash-table)
     (check-type inherited hash-table)
diff --git a/plan.lisp b/plan.lisp
index 59dfabf02..d21cf25c6 100644
--- a/plan.lisp
+++ b/plan.lisp
@@ -64,9 +64,9 @@ the action of OPERATION on COMPONENT in the PLAN"))
   (:documentation "Status of an action in a plan"))
 
 (defmethod print-object ((status planned-action-status) stream)
-  (print-unreadable-object (status stream :type t)
-    (with-slots (stamp done-p planned-p) status
-      (format stream "~@{~S~^ ~}" :stamp stamp :done-p done-p :planned-p planned-p))))
+  (print-unreadable-object (status stream :type t :identity nil)
+    (with-slots (stamp done-p planned-p index) status
+      (format stream "~@{~S~^ ~}" :stamp stamp :done-p done-p :planned-p planned-p :index index))))
 
 (defmethod action-planned-p (action-status)
   (declare (ignorable action-status)) ; default method for non planned-action-status objects
diff --git a/upgrade.lisp b/upgrade.lisp
index 76793634b..94c4458bb 100644
--- a/upgrade.lisp
+++ b/upgrade.lisp
@@ -51,7 +51,7 @@ You can compare this string with e.g.: (ASDF:VERSION-SATISFIES (ASDF:ASDF-VERSIO
          ;; "3.4.5.67" would be a development version in the official upstream of 3.4.5.
          ;; "3.4.5.0.8" would be your eighth local modification of official release 3.4.5
          ;; "3.4.5.67.8" would be your eighth local modification of development version 3.4.5.67
-         (asdf-version "2.26.171")
+         (asdf-version "2.26.172")
          (existing-version (asdf-version)))
     (setf *asdf-version* asdf-version)
     (when (and existing-version (not (equal asdf-version existing-version)))
diff --git a/version.lisp-expr b/version.lisp-expr
index c8ff51659..ee7ae3cfa 100644
--- a/version.lisp-expr
+++ b/version.lisp-expr
@@ -1 +1 @@
-"2.26.171"
+"2.26.172"
-- 
GitLab