- #-clisp (rename-file old
- (make-pathname :directory '(:relative)
- :defaults new))
- #+clisp (posix:copy-file old new :method :rename))
+ #-clisp
+ (let ((target (make-pathname :directory '(:relative)
+ :defaults new)))
+ (rename-file old target))
+
+ #+clisp
+ (let ((rc (%rename (namestring old) (namestring new))))
+ (when (= rc -1)
+ (error "Failed to rename ~S to ~S: ~A" old new (posix:strerror)))))