diff --git a/lisp/install.ros b/lisp/install.ros index 2be6582..33ec5b6 100644 --- a/lisp/install.ros +++ b/lisp/install.ros @@ -15,8 +15,6 @@ exec ros -Q +R -L sbcl-bin -- $0 "$@" (in-package :ros.script.install.3671936092) (defun main (&rest argv) - (let ((asdf:*system-definition-search-functions* - (remove 'roswell-installable-searcher asdf:*system-definition-search-functions*))) - (install argv))) + (install argv)) ;;; vim: set ft=lisp lisp: diff --git a/lisp/patch-quicklisp.lisp b/lisp/patch-quicklisp.lisp index e694928..c892cb5 100644 --- a/lisp/patch-quicklisp.lisp +++ b/lisp/patch-quicklisp.lisp @@ -35,6 +35,7 @@ (defun roswell-installable-searcher (system-name) (let ((name (roswell-installed-system-name system-name)) + (env "ROSINSTALL") pname) (and name @@ -42,7 +43,13 @@ (asdf:find-system pname nil))) (prog1 (or (quicklisp-client:local-projects-searcher name) - (progn + (unless (find system-name (loop for ar = (ros:getenv env) then (subseq ar (1+ p)) + for p = (position #\, ar) + for arg = (if p (subseq ar 0 p) ar) + collect arg + while p) + :test 'equal) + (roswell.util:setenv env (format nil "~A,~A" system-name (ros:getenv env))) (roswell:roswell `("install" ,system-name)) (quicklisp-client:register-local-projects) (quicklisp-client:local-projects-searcher name))