kernel32: Fix PROFILE_Load to handle mac line endings.
This commit is contained in:
parent
40145952ae
commit
e8754b8ea6
|
@ -405,6 +405,7 @@ static PROFILESECTION *PROFILE_Load(HANDLE hFile, ENCODING * pEncoding)
|
|||
{
|
||||
szLineStart = next_line;
|
||||
next_line = memchrW(szLineStart, '\n', szEnd - szLineStart);
|
||||
if (!next_line) next_line = memchrW(szLineStart, '\r', szEnd - szLineStart);
|
||||
if (!next_line) next_line = szEnd;
|
||||
else next_line++;
|
||||
szLineEnd = next_line;
|
||||
|
|
|
@ -428,7 +428,7 @@ static BOOL emptystr_ok(CHAR emptystr[MAX_PATH])
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static void test_GetPrivateProfileString(void)
|
||||
static void test_GetPrivateProfileString(const char *content, const char *descript)
|
||||
{
|
||||
DWORD ret;
|
||||
CHAR buf[MAX_PATH];
|
||||
|
@ -441,15 +441,10 @@ static void test_GetPrivateProfileString(void)
|
|||
LPSTR tempfile;
|
||||
|
||||
static const char filename[] = ".\\winetest.ini";
|
||||
static const char content[]=
|
||||
"[section1]\r\n"
|
||||
"name1=val1\r\n"
|
||||
"name2=\"val2\"\r\n"
|
||||
"name3\r\n"
|
||||
"name4=a\r\n"
|
||||
"[section2]\r\n";
|
||||
|
||||
create_test_file(filename, content, sizeof(content));
|
||||
trace("test_GetPrivateProfileStringA: %s\n", descript);
|
||||
|
||||
create_test_file(filename, content, lstrlenA(content));
|
||||
|
||||
/* Run this test series with caching. Wine won't cache profile
|
||||
files younger than 2.1 seconds. */
|
||||
|
@ -674,7 +669,7 @@ static void test_GetPrivateProfileString(void)
|
|||
GetWindowsDirectoryA(windir, MAX_PATH);
|
||||
GetTempFileNameA(windir, "pre", 0, path);
|
||||
tempfile = strrchr(path, '\\') + 1;
|
||||
create_test_file(path, content, sizeof(content));
|
||||
create_test_file(path, content, lstrlenA(content));
|
||||
|
||||
/* only filename is used, file exists in windows directory */
|
||||
lstrcpyA(buf, "kumquat");
|
||||
|
@ -703,5 +698,20 @@ START_TEST(profile)
|
|||
test_profile_existing();
|
||||
test_profile_delete_on_close();
|
||||
test_profile_refresh();
|
||||
test_GetPrivateProfileString();
|
||||
test_GetPrivateProfileString(
|
||||
"[section1]\r\n"
|
||||
"name1=val1\r\n"
|
||||
"name2=\"val2\"\r\n"
|
||||
"name3\r\n"
|
||||
"name4=a\r\n"
|
||||
"[section2]\r\n",
|
||||
"CR+LF");
|
||||
test_GetPrivateProfileString(
|
||||
"[section1]\r"
|
||||
"name1=val1\r"
|
||||
"name2=\"val2\"\r"
|
||||
"name3\r"
|
||||
"name4=a\r"
|
||||
"[section2]\r",
|
||||
"CR only");
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue