A.M.Raportirenko | 1 Jun 10:04

rename-file Invalid argument


This is because unix:unix-resolve-links from unix-glibc2.lisp appends trailing
/ to the directory pathname. What reason in this?

root <at> sunct1 tmp # lisp
CMU Common Lisp 2008-04-02+ (sunct1) (19E), running on sunct1
With core: /opt/local/lib/cmucl/lib/lisp.core
Dumped on: Thu, 2008-04-03 10:12:05+04:00 on sunct1
Send questions and bug reports to your local CMUCL maintainer, 
or see <http://www.cons.org/cmucl/support.html>.
Loaded subsystems:
    Python 1.1, target Intel x86
    CLOS based on Gerd's PCL 2004/04/14 03:32:47
* (unix:unix-file-kind "file.aaa")

:FILE
* (rename-file "file.aaa" "file.bbb")

#P"/opt/tmp/file.bbb"
#P"/opt/tmp/file.aaa"
#P"/opt/tmp/file.bbb"
* (unix:unix-file-kind "directory.aaa")

:DIRECTORY
* (rename-file "directory.aaa" "directory.bbb")

File-error in function RENAME-FILE:
   Failed to rename /opt/tmp/directory.aaa/ 
to /opt/tmp/directory.aaa/directory.bbb: Invalid argument
   [Condition of type KERNEL:SIMPLE-FILE-ERROR]

Restarts:
  0: [ABORT] Return to Top-Level.

Debug  (type H for help)

(RENAME-FILE "directory.aaa" "directory.bbb")
Source: 
; File: target:code/filesys.lisp
(ERROR 'SIMPLE-FILE-ERROR :PATHNAME NEW-NAME :FORMAT-CONTROL ...)
0] 0

* (probe-file "file.bbb")

#P"/opt/tmp/file.bbb"
* (probe-file "directory.aaa")

#P"/opt/tmp/directory.aaa/"
* (unix:unix-maybe-prepend-current-directory "directory.aaa")

"/opt/tmp/directory.aaa"
* (unix:unix-resolve-links
    (unix:unix-maybe-prepend-current-directory "directory.aaa"))

"/opt/tmp/directory.aaa/"
* (quit)

Anatoly


Gmane