From 187895ab4ca43bb45e041b9f028900f072b681e7 Mon Sep 17 00:00:00 2001
From: D Herring <dherring@at.tentpost.dot.com>
Date: Wed, 19 Aug 2009 00:32:47 -0400
Subject: [PATCH] ECL bugfix

ECL was complaining that
""
Iteration in LOOP follows body code.
Current LOOP context: FOR KEY = (FIRST DATA) FOR.
""

SBCL allows a looser LOOP syntax; it is nontrivial to port SBCL's LOOP to ECL,
though they do share a common heritage.
---
 asdf.lisp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/asdf.lisp b/asdf.lisp
index f1f6d7c4..a32e0ecd 100644
--- a/asdf.lisp
+++ b/asdf.lisp
@@ -1359,9 +1359,9 @@ Returns the new tree (which probably shares structure with the old one)"
   (loop for name in +asdf-methods+ do
        (let ((keyword (intern (symbol-name name) :keyword)))
 	 (loop for data = rest then (cddr data)
-	      while data
-	      for key = (first data) 
-	      for value = (second data) 
+	      for key = (and data (first data))
+	      for value = (and data (second data))
+              while data
 	      when (eq key keyword) do
 	      (destructuring-bind (op qual (o c) &body body) value
 	      (pushnew
-- 
GitLab