unsigned int p00_rename(const char *src_name, const char *dst_name, const char *path) { char *p00_src, *p00_dst, rname[20]; int type; struct rawfile_info_s *rawfile; unsigned int rc; p00_dst = p00_file_find(dst_name, path); if (p00_dst != NULL) { lib_free(p00_dst); return FILEIO_FILE_EXISTS; } p00_src = p00_file_find(src_name, path); if (p00_src == NULL) return FILEIO_FILE_NOT_FOUND; type = p00_check_name(p00_src); if (type < 0) return FILEIO_FILE_NOT_FOUND; rawfile = rawfile_open(p00_src, path, FILEIO_COMMAND_APPEND); if (rawfile == NULL) { lib_free(p00_src); return FILEIO_FILE_NOT_FOUND; } memset(rname, 0, sizeof(rname)); strncpy(rname, dst_name, 16); if (p00_write_header(rawfile, (BYTE *)rname, 0) < 0) { rawfile_destroy(rawfile); lib_free(p00_src); return FILEIO_FILE_NOT_FOUND; } rawfile_destroy(rawfile); p00_dst = p00_file_create(dst_name, path, type); if (p00_dst == NULL) { lib_free(p00_src); return FILEIO_FILE_NOT_FOUND; } rc = rawfile_rename(p00_src, p00_dst, path); lib_free(p00_src); lib_free(p00_dst); return rc; }
unsigned int cbmfile_rename(const char *src_name, const char *dst_name, const char *path) { char *src_cbm, *dst_cbm; unsigned int rc; src_cbm = lib_stralloc(src_name); dst_cbm = lib_stralloc(dst_name); charset_petconvstring((BYTE *)src_cbm, 1); charset_petconvstring((BYTE *)dst_cbm, 1); rc = rawfile_rename(src_cbm, dst_cbm, path); lib_free(src_cbm); lib_free(dst_cbm); return rc; }