From 389ad52bfabf71200ddf489577cf4789ef1913a1 Mon Sep 17 00:00:00 2001
From: Daniel Barlow <>
Date: Mon, 9 Jun 2003 01:49:03 +0000
Subject: [PATCH] asdf-install now accepts HTTP URLs as well as package
 names/filenames

---
 asdf-install.lisp | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/asdf-install.lisp b/asdf-install.lisp
index b8b3840d..b66a5d8b 100644
--- a/asdf-install.lisp
+++ b/asdf-install.lisp
@@ -135,8 +135,12 @@ an immediate concern
 				  (subseq line (1+ colon))))))
        stream))))
 
-(defun download (package-name file-name)
-  (let ((url (format nil "http://www.cliki.net/~A?download" package-name)))
+(defun download (package-name-or-url file-name)
+  (let ((url
+	 (if (string-equal package-name-or-url "http://"
+			   :end1 7)
+	     package-name-or-url
+	     (format nil "http://www.cliki.net/~A?download" package-name))))
     (destructuring-bind (response headers stream)
 	(block got
 	  (loop
@@ -249,8 +253,14 @@ an immediate concern
 
 (defvar *temporary-files*)
 (defun temp-file-name (p)
-  (merge-pathnames (make-pathname :type "asdf-install-tmp")
-		   (merge-pathnames p)))
+  (let* ((pos-slash (position #\/ p :from-end t))
+	 (pos-dot (position #\. p :start (or pos-slash 0))))
+    (merge-pathnames
+     (make-pathname
+      :name (subseq p (if pos-slash (1+ pos-slash) 0) pos-dot)
+      :type "asdf-install-tmp"))))
+		     
+
 
 (defun run (&optional (packages (cdr *posix-argv*)))
   (destructuring-bind (source system name) (where)
-- 
GitLab