X-Git-Url: https://git.distorted.org.uk/~mdw/lisp/blobdiff_plain/6e1633e7a77cd38b1aff25196867b17e4d4a6c00..1a50efd8a9e976bf16a29ce381ea38c6b9a39ea1:/safely.lisp diff --git a/safely.lisp b/safely.lisp index 13671a4..9b4ab45 100644 --- a/safely.lisp +++ b/safely.lisp @@ -112,8 +112,10 @@ (declaim (inline rename)) (defun rename (old new) - #-clisp (rename-file old new) - #+clisp (posix:copy-file old new :method :rename)) + (let ((target (make-pathname :directory '(:relative) + :defaults new))) + #-clisp (rename-file old target) + #+clisp (rename-file old target :if-exists :overwrite))) (defun delete-file-without-moaning (file) "Delete the FILE, ignoring errors." @@ -179,9 +181,7 @@ :method :hardlink :if-exists nil))) - - - #-(or cmu sbcl) + #-(or cmu sbcl clisp) ;; Otherwise just copy the file contents and hope for the best. (with-open-file (input file :element-type :default) (multiple-value-bind