From 00ced5e3af67cc6e40c09d45e2d39f4b7af853e0 Mon Sep 17 00:00:00 2001 From: Huw Davies Date: Fri, 4 Mar 2005 10:46:55 +0000 Subject: [PATCH] Fix regression in GetPrivateProfileSection for lines without an '='. Add test. --- dlls/kernel/profile.c | 2 +- dlls/kernel/tests/profile.c | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/dlls/kernel/profile.c b/dlls/kernel/profile.c index aef63c472fe..15f0309dcaf 100644 --- a/dlls/kernel/profile.c +++ b/dlls/kernel/profile.c @@ -863,7 +863,7 @@ static INT PROFILE_GetSection( PROFILESECTION *section, LPCWSTR section_name, if (len <= 2) break; if (!*key->name) continue; /* Skip empty lines */ if (IS_ENTRY_COMMENT(key->name)) continue; /* Skip comments */ - if (!key->value) continue; /* Skip lines w.o. '=' */ + if (!return_values && !key->value) continue; /* Skip lines w.o. '=' */ PROFILE_CopyEntry( buffer, key->name, len - 1, 0 ); len -= strlenW(buffer) + 1; buffer += strlenW(buffer) + 1; diff --git a/dlls/kernel/tests/profile.c b/dlls/kernel/tests/profile.c index ed7471dfe4f..ad6efaa3375 100644 --- a/dlls/kernel/tests/profile.c +++ b/dlls/kernel/tests/profile.c @@ -114,6 +114,14 @@ void test_profile_string() /* and test */ ok( !strcmp( buf, "name1,name2,name4"), "wrong keys returned: %s\n", buf); + + ret=GetPrivateProfileSectionA("s", buf, sizeof(buf), TESTFILE2); + for( p = buf + strlen(buf) + 1; *p;p += strlen(p)+1) + p[-1] = ','; + /* and test */ + ok( !strcmp( buf, "name1=val1,name2=,name3,name4=val4"), "wrong section returned: %s\n", + buf); + /* add a new key to test that the file is quite usable */ WritePrivateProfileStringA( "s", "name5", "val5", TESTFILE2); ret=GetPrivateProfileStringA( "s", NULL, "", buf, sizeof(buf),