static int FSDrvRename(struct _reent* r, const char* oldName, const char* newName) { FSStatus err = FSRename(fsClient, fsCmdBlock, oldName, newName, FS_RET_ALL_ERROR); if(err != FS_STATUS_OK) { FSDrvReportError(r); return -1; } return 0; }
int __wut_fs_rename(struct _reent *r, const char *oldName, const char *newName) { FSStatus rc; if (oldName == NULL) { return -1; } if (newName == NULL) { return -1; } char *path_old = __wut_fs_fixpath(r, oldName); if (!path_old) { r->_errno = ENOMEM; return -1; } char *path_new = __wut_fs_fixpath(r, newName); if (!path_new) { r->_errno = ENOMEM; return -1; } // Set up command block FSCmdBlock fsCmd; FSInitCmdBlock(&fsCmd); rc = FSRename(__wut_devoptab_fs_client, &fsCmd, path_old, path_new, -1); free(path_old); free(path_new); if (rc >= 0) { return 0; } r->_errno = __wut_fs_translate_error(rc); return -1; }
static int sd_fat_rename_r (struct _reent *r, const char *oldName, const char *newName) { sd_fat_private_t *dev = sd_fat_get_device_data(oldName); if(!dev) { r->_errno = ENODEV; return -1; } OSLockMutex(dev->pMutex); char *real_oldpath = sd_fat_real_path(oldName, dev); if(!real_oldpath) { r->_errno = ENOMEM; OSUnlockMutex(dev->pMutex); return -1; } char *real_newpath = sd_fat_real_path(newName, dev); if(!real_newpath) { r->_errno = ENOMEM; free(real_oldpath); OSUnlockMutex(dev->pMutex); return -1; } int result = FSRename(dev->pClient, dev->pCmd, real_oldpath, real_newpath, -1); free(real_oldpath); free(real_newpath); OSUnlockMutex(dev->pMutex); if(result < 0) { r->_errno = result; return -1; } return 0; }