citra-emu
/
citra
Archived
1
0
Fork 0

Kernel/File: Fixed file read/write hwtests

The 3DS allows the user to read from files opened with the Write access modifier, even if he did not specify the Read access modifier.

Open the files in binary mode so that we can prevent CR/LF problems in Windows, where a line-end is replaced by these two bytes instead of just 0xA, this was causing problems with the GetSize test
This commit is contained in:
Subv 2014-12-08 17:45:17 -05:00
parent 2aa2d341d0
commit 1d1078fd8b
1 changed files with 6 additions and 3 deletions

View File

@ -38,12 +38,15 @@ bool File_SDMC::Open() {
} }
std::string mode_string; std::string mode_string;
if (mode.read_flag && mode.write_flag) if (mode.create_flag)
mode_string = "w+"; mode_string = "w+";
else if (mode.write_flag)
mode_string = "r+"; // Files opened with Write access can be read from
else if (mode.read_flag) else if (mode.read_flag)
mode_string = "r"; mode_string = "r";
else if (mode.write_flag)
mode_string = "w"; // Open the file in binary mode, to avoid problems with CR/LF on Windows systems
mode_string += "b";
file = new FileUtil::IOFile(path, mode_string.c_str()); file = new FileUtil::IOFile(path, mode_string.c_str());
return true; return true;