VFS: Do not traumatize Nextra
This commit is contained in:
		| @@ -79,14 +79,14 @@ class ValveFile : public FileObject | ||||
|  | ||||
| 		static bool Delete(const char* filename, const char* pathID)  | ||||
| 		{ | ||||
| 			if (!g_FileSystem->FileExists(filename)) | ||||
| 			if (!Exists(filename)) | ||||
| 			{ | ||||
| 				return false; | ||||
| 			} | ||||
|  | ||||
| 			g_FileSystem->RemoveFile(filename, pathID); | ||||
|  | ||||
| 			if (g_FileSystem->FileExists(filename)) | ||||
| 			if (Exists(filename)) | ||||
| 			{ | ||||
| 				return false; | ||||
| 			} | ||||
|   | ||||
| @@ -37,9 +37,9 @@ static cell AMX_NATIVE_CALL read_dir(AMX *amx, cell *params) | ||||
| 	} | ||||
|  | ||||
| 	const char* entry = dir->GetEntryName(); | ||||
| 	cell* outputLen = get_amxaddr(amx, params[5]); | ||||
|  | ||||
| 	size_t entrylen = set_amxstring_utf8(amx, params[3], entry, strlen(entry), params[4] + 1); | ||||
| 	*get_amxaddr(amx, params[5]) = entrylen; | ||||
| 	*outputLen = set_amxstring_utf8(amx, params[3], entry, strlen(entry), params[4] + 1); | ||||
|  | ||||
| 	return offset; | ||||
| } | ||||
| @@ -79,8 +79,8 @@ static cell AMX_NATIVE_CALL read_file(AMX *amx, cell *params) | ||||
| 		if (buffer[length - 1] == '\r') | ||||
| 			buffer[--length] = '\0'; | ||||
|  | ||||
| 		length = set_amxstring_utf8(amx, params[3], buffer, length, params[4] + 1); // + EOS | ||||
| 		*get_amxaddr(amx, params[5]) = length; | ||||
| 		cell* textLen = get_amxaddr(amx, params[5]); | ||||
| 		*textLen = set_amxstring_utf8(amx, params[3], buffer, length, params[4] + 1); // + EOS | ||||
|  | ||||
| 		return currentLine; | ||||
| 	} | ||||
| @@ -761,7 +761,7 @@ static cell AMX_NATIVE_CALL amx_open_dir(AMX *amx, cell *params) | ||||
|  | ||||
| 	size_t numParams = *params / sizeof(cell); | ||||
|  | ||||
| 	if (*params / sizeof(cell) >= 4 && params[5] > 0) | ||||
| 	if (numParams >= 4 && params[5] > 0) | ||||
| 	{ | ||||
| 		const char* wildcardedPath = g_LibSys.PathFormat("%s%s*", path, (path[length - 1] != '/' && path[length - 1] != '\\') ? "/" : ""); | ||||
| 		const char* pathID = get_amxstring(amx, params[6], 1, length); | ||||
| @@ -780,8 +780,9 @@ static cell AMX_NATIVE_CALL amx_open_dir(AMX *amx, cell *params) | ||||
| 		} | ||||
|  | ||||
| 		set_amxstring_utf8(amx, params[2], pFirst, strlen(pFirst), params[3] + 1); | ||||
| 		cell* fileType = get_amxaddr(amx, params[4]); | ||||
|  | ||||
| 		*get_amxaddr(amx, params[4]) = g_FileSystem->FindIsDirectory(handle) ? FileType_Directory : FileType_File; | ||||
| 		*fileType = g_FileSystem->FindIsDirectory(handle) ? FileType_Directory : FileType_File; | ||||
|  | ||||
| 		return reinterpret_cast<cell>(new DirectoryHandle(reinterpret_cast<void*>(&handle), true)); | ||||
| 	} | ||||
| @@ -795,7 +796,8 @@ static cell AMX_NATIVE_CALL amx_open_dir(AMX *amx, cell *params) | ||||
|  | ||||
| 	if (numParams >= 4) | ||||
| 	{ | ||||
| 		*get_amxaddr(amx, params[4]) = dir->IsEntryDirectory() ? FileType_Directory : FileType_File; | ||||
| 		cell* fileType = get_amxaddr(amx, params[4]); | ||||
| 		*fileType = dir->IsEntryDirectory() ? FileType_Directory : FileType_File; | ||||
| 	} | ||||
|  | ||||
| 	const char* entry = dir->GetEntryName(); | ||||
| @@ -858,7 +860,8 @@ static cell AMX_NATIVE_CALL amx_get_dir(AMX *amx, cell *params) | ||||
|  | ||||
| 		if (numParams >= 4) | ||||
| 		{ | ||||
| 			*get_amxaddr(amx, params[4]) = g_FileSystem->FindIsDirectory(*handle) ? FileType_Directory : FileType_File; | ||||
| 			cell* fileType = get_amxaddr(amx, params[4]); | ||||
| 			*fileType = g_FileSystem->FindIsDirectory(*handle) ? FileType_Directory : FileType_File; | ||||
| 		} | ||||
|  | ||||
| 		set_amxstring_utf8(amx, params[2], entry, strlen(entry), params[3] + 1); | ||||
| @@ -881,7 +884,8 @@ static cell AMX_NATIVE_CALL amx_get_dir(AMX *amx, cell *params) | ||||
|  | ||||
| 		if (numParams >= 4) | ||||
| 		{ | ||||
| 			*get_amxaddr(amx, params[4]) = handle->IsEntryDirectory() ? FileType_Directory : FileType_File; | ||||
| 			cell* fileType = get_amxaddr(amx, params[4]); | ||||
| 			*fileType = handle->IsEntryDirectory() ? FileType_Directory : FileType_File; | ||||
| 		} | ||||
|  | ||||
| 		const char* entry = handle->GetEntryName(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user