Commit 2aa6e2eb authored by James Hawkins's avatar James Hawkins Committed by Alexandre Julliard

advpack: Implement AddDelBackupEntry.

parent bc7cb836
......@@ -55,16 +55,47 @@ WINE_DEFAULT_DEBUG_CHANNEL(advpack);
*
* If lpcszBackupDir is NULL, the INI file is assumed to exist in
* c:\windows or created there if it does not exist.
*
* BUGS
* Unimplemented.
*/
HRESULT WINAPI AddDelBackupEntry(LPCSTR lpcszFileList, LPCSTR lpcszBackupDir,
LPCSTR lpcszBaseName, DWORD dwFlags)
{
FIXME("(%p, %p, %p, %ld) stub\n", lpcszFileList, lpcszBackupDir,
CHAR szIniPath[MAX_PATH];
LPSTR szString = NULL;
const char szBackupEntry[] = "-1,0,0,0,0,0,-1";
TRACE("(%p, %p, %p, %ld)\n", lpcszFileList, lpcszBackupDir,
lpcszBaseName, dwFlags);
if (!lpcszFileList || !*lpcszFileList)
return S_OK;
if (lpcszBackupDir)
lstrcpyA(szIniPath, lpcszBackupDir);
else
GetWindowsDirectoryA(szIniPath, MAX_PATH);
lstrcatA(szIniPath, "\\");
lstrcatA(szIniPath, lpcszBaseName);
lstrcatA(szIniPath, ".ini");
SetFileAttributesA(szIniPath, FILE_ATTRIBUTE_NORMAL);
if (dwFlags & AADBE_ADD_ENTRY)
szString = (LPSTR)szBackupEntry;
else if (dwFlags & AADBE_DEL_ENTRY)
szString = NULL;
/* add or delete the INI entries */
while (*lpcszFileList)
{
WritePrivateProfileStringA("backup", lpcszFileList, szString, szIniPath);
lpcszFileList += lstrlenA(lpcszFileList) + 1;
}
/* hide the INI file */
SetFileAttributesA(szIniPath, FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN);
return S_OK;
}
......
......@@ -163,12 +163,9 @@ static void test_AddDelBackupEntry()
/* create the INF file */
res = pAddDelBackupEntry("one\0two\0three", "c:\\", "basename", AADBE_ADD_ENTRY);
ok(res == S_OK, "Expected S_OK, got %ld\n", res);
todo_wine
{
ok(check_ini_file_attr(path), "Expected ini file to be hidden\n");
ok(check_ini_contents(path, TRUE), "Expected ini contents to match\n");
ok(DeleteFileA(path), "Expected path to exist\n");
}
ok(check_ini_file_attr(path), "Expected ini file to be hidden\n");
ok(check_ini_contents(path, TRUE), "Expected ini contents to match\n");
ok(DeleteFileA(path), "Expected path to exist\n");
lstrcpyA(path, CURR_DIR);
lstrcatA(path, "\\backup\\basename.INI");
......@@ -185,12 +182,9 @@ static void test_AddDelBackupEntry()
CreateDirectoryA("backup", NULL);
res = pAddDelBackupEntry("one\0two\0three", "backup", "basename", AADBE_ADD_ENTRY);
ok(res == S_OK, "Expected S_OK, got %ld\n", res);
todo_wine
{
ok(check_ini_file_attr(path), "Expected ini file to be hidden\n");
ok(check_ini_contents(path, TRUE), "Expected ini contents to match\n");
ok(DeleteFileA(path), "Expected path to exist\n");
}
ok(check_ini_file_attr(path), "Expected ini file to be hidden\n");
ok(check_ini_contents(path, TRUE), "Expected ini contents to match\n");
ok(DeleteFileA(path), "Expected path to exist\n");
RemoveDirectoryA("backup");
lstrcpyA(path, "c:\\windows\\basename.INI");
......@@ -198,21 +192,15 @@ static void test_AddDelBackupEntry()
/* try a NULL backup dir, INI is created in c:\windows */
res = pAddDelBackupEntry("one\0two\0three", NULL, "basename", AADBE_ADD_ENTRY);
ok(res == S_OK, "Expected S_OK, got %ld\n", res);
todo_wine
{
ok(check_ini_contents(path, TRUE), "Expected ini contents to match\n");
}
ok(check_ini_contents(path, TRUE), "Expected ini contents to match\n");
/* remove the entries with AADBE_DEL_ENTRY */
SetFileAttributesA(path, FILE_ATTRIBUTE_NORMAL);
res = pAddDelBackupEntry("one\0three", NULL, "basename", AADBE_DEL_ENTRY);
SetFileAttributesA(path, FILE_ATTRIBUTE_NORMAL);
ok(res == S_OK, "Expected S_OK, got %ld\n", res);
todo_wine
{
ok(check_ini_contents(path, FALSE), "Expected ini contents to match\n");
ok(DeleteFileA(path), "Expected path to exist\n");
}
ok(check_ini_contents(path, FALSE), "Expected ini contents to match\n");
ok(DeleteFileA(path), "Expected path to exist\n");
}
/* the FCI callbacks */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment