chdir fix

This commit is contained in:
David Botton 2024-04-11 21:59:17 -04:00
parent 705e1b26c4
commit 2325357d41

View file

@ -21,10 +21,18 @@
(handler-case (handler-case
(if (and (> (length data) 3) (if (and (> (length data) 3)
(equalp (subseq data 0 3) "cd ")) (equalp (subseq data 0 3) "cd "))
(let* ((dir (subseq data 3 (length data)))
(sw (char dir 0)))
(uiop:with-current-directory ((format nil "~A~A" (uiop:with-current-directory ((format nil "~A~A"
(subseq data 3 (length data)) (if (or (equal sw (uiop:directory-separator-for-host))
(equal sw #\~))
dir
(format nil "~A~A~A"
(text-value (package-div panel))
(uiop:directory-separator-for-host)
dir))
(uiop:directory-separator-for-host))) (uiop:directory-separator-for-host)))
(setf (text-value (package-div panel)) (uiop:getcwd))) (setf (text-value (package-div panel)) (uiop:getcwd))))
(uiop:with-current-directory ((text-value (package-div panel))) (uiop:with-current-directory ((text-value (package-div panel)))
(multiple-value-bind (result new-package new-dir) (multiple-value-bind (result new-package new-dir)
(capture-eval (format nil "(uiop:run-program \"~A\" :output *standard-output*)(uiop:getcwd)" data) (capture-eval (format nil "(uiop:run-program \"~A\" :output *standard-output*)(uiop:getcwd)" data)