1.0.29.1: fix FILL
[sbcl.git] / contrib / asdf-install / installer.lisp
index 4dd97a5..b55532a 100644 (file)
@@ -2,8 +2,9 @@
 
 (defvar *proxy* (posix-getenv "http_proxy"))
 (defvar *cclan-mirror*
-  (or (posix-getenv "CCLAN_MIRROR")
-      "http://ftp.linux.org.uk/pub/lisp/cclan/"))
+  (let ((mirror (posix-getenv "CCLAN_MIRROR")))
+    (or (and (not (string= mirror "")) mirror)
+        "http://ftp.linux.org.uk/pub/lisp/cclan/")))
 
 (defun directorify (name)
   ;; input name may or may not have a training #\/, but we know we
@@ -13,7 +14,8 @@
         (merge-pathnames
          (make-pathname :directory `(:relative ,(pathname-name path)))
          (make-pathname :directory (pathname-directory path)
-                        :host (pathname-host path)))
+                        :host (pathname-host path)
+                        :device (pathname-device path)))
         path)))
 
 (defvar *sbcl-home* (directorify (posix-getenv "SBCL_HOME")))
 
 
 (defun copy-stream (in out)
-  (let ((buf (make-array 8192 :element-type (stream-element-type in))))
+  (let ((buf (make-array 8192 :element-type (stream-element-type out))))
     (loop for pos = (read-sequence buf in)
           until (zerop pos)
           do (write-sequence buf out :end pos))))
       (elt *locations* (1- response)))))
 
 (defparameter *tar-program*
-  #+darwin "gnutar"
-  #+sunos "gtar"
-  #-(or darwin sunos) "tar")
+  ;; Please do not "clean this up" by using a bunch of #+'s and one
+  ;; #-. When the conditional is written this way, adding a new
+  ;; special case only involves one change. If #- is used, two changes
+  ;; are needed. -- JES, 2007-02-12
+  (progn
+    "tar"
+    #+darwin "gnutar"
+    #+(or sunos netbsd) "gtar"))
 
 (defun get-tar-directory (packagename)
   (let* ((tar (with-output-to-string (o)