wut/libraries/wutdevoptab/devoptab_fs_rename.c

41 lines
804 B
C
Raw Normal View History

#include "devoptab_fs.h"
2018-05-27 12:11:45 +01:00
int
__wut_fs_rename(struct _reent *r,
const char *oldName,
const char *newName)
{
FSStatus status;
FSCmdBlock cmd;
char *fixedOldPath, *fixedNewPath;
2018-05-27 12:11:45 +01:00
if (!oldName || !newName) {
r->_errno = EINVAL;
2018-05-27 12:11:45 +01:00
return -1;
}
fixedOldPath = __wut_fs_fixpath(r, oldName);
if (!fixedOldPath) {
2018-05-27 12:11:45 +01:00
return -1;
}
fixedNewPath = __wut_fs_fixpath(r, newName);
if (!fixedNewPath) {
free(fixedOldPath);
2018-05-27 12:11:45 +01:00
return -1;
}
FSInitCmdBlock(&cmd);
status = FSRename(__wut_devoptab_fs_client, &cmd, fixedOldPath, fixedNewPath,
-1);
free(fixedOldPath);
free(fixedNewPath);
2018-05-27 12:11:45 +01:00
if (status < 0) {
r->_errno = __wut_fs_translate_error(status);
2018-05-27 12:11:45 +01:00
return -1;
}
return 0;
2018-05-27 12:11:45 +01:00
}