diff --git a/tools/clog-builder-shell.lisp b/tools/clog-builder-shell.lisp index dd616e8..6d7849e 100644 --- a/tools/clog-builder-shell.lisp +++ b/tools/clog-builder-shell.lisp @@ -21,32 +21,31 @@ (handler-case (if (and (> (length data) 3) (equalp (subseq data 0 3) "cd ")) - (let* ((dir (subseq data 3 (length data))) - (wc (when (> (length dir) 2) (char dir 1))) - (sw (char dir 0))) - (uiop:with-current-directory ((format nil "~A~A" - (if (or (equal wc #\:) - (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))) - (setf (text-value (package-div panel)) (uiop:getcwd)))) - (uiop:with-current-directory ((text-value (package-div panel))) - (multiple-value-bind (result new-package new-dir) - (capture-eval (format nil "(uiop:run-program \"~A\" :output *standard-output*)(uiop:getcwd)" - (ppcre:regex-replace-all "\\" data "\\\\\\")) - :clog-obj panel - :eval-form "~A" - :capture-result-form "" - :capture-console t - :capture-result nil) - (declare (ignore new-package)) - (setf (text-value (package-div panel)) new-dir) - (clog-terminal:echo target result)))) + (let* ((dir (subseq data 3 (length data))) + (wc (when (> (length dir) 2) (char dir 1))) + (sw (char dir 0))) + (uiop:with-current-directory ((format nil "~A~A" + (if (or (equal wc #\:) + (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))) + (setf (text-value (package-div panel)) (uiop:getcwd)))) + (uiop:with-current-directory ((text-value (package-div panel))) + (multiple-value-bind (result new-package new-dir) + (capture-eval (format nil "(uiop:run-program \"~A\" :output *standard-output*)(uiop:getcwd)" + (ppcre:regex-replace-all "\\" data "\\\\\\")) + :clog-obj panel + :eval-form "~A" + :capture-result-form "" + :capture-console t + :capture-result nil) + (declare (ignore new-package)) + (setf (text-value (package-div panel)) new-dir) + (clog-terminal:echo target result)))) (error (c) (clog-terminal:echo target (format nil "~A" c))))) - \ No newline at end of file