/* a public domain rename, by ERS */ #include #include #include #include #include #include "lib.h" int rename(_oldname, _newname) const char *_oldname, *_newname; { char oldname[PATH_MAX], newname[PATH_MAX]; int rval; if (!strcmp(_oldname, _newname)) { rval = 0; /* no-op */ } if (!access(_newname, 0)) { /* new name already exists */ if (unlink(_newname)) return -1; } _unx2dos(_oldname, oldname); _unx2dos(_newname, newname); if ( (rval = Frename(0, oldname, newname)) < 0 ) { errno = -rval; rval = -1; } return rval; }