cabinet 2: Keep track of the uncompressed file size
James Hawkins
truiken at gmail.com
Thu Aug 23 16:21:46 CDT 2007
Hi,
Changelog:
* Keep track of the uncompressed file size.
dlls/cabinet/cabinet_main.c | 4 ++++
dlls/cabinet/tests/extract.c | 40 ++++++++--------------------------------
2 files changed, 12 insertions(+), 32 deletions(-)
--
James Hawkins
-------------- next part --------------
diff --git a/dlls/cabinet/cabinet_main.c b/dlls/cabinet/cabinet_main.c
index aa46cf0..933b85a 100644
--- a/dlls/cabinet/cabinet_main.c
+++ b/dlls/cabinet/cabinet_main.c
@@ -201,6 +201,8 @@ static INT_PTR fdi_notify_extract(FDINOTIFICATIONTYPE fdint, PFDINOTIFICATION pf
szDirectory = HeapAlloc(GetProcessHeap(), 0, dwSize);
lstrcpynA(szDirectory, szFullPath, dwSize);
+ pDestination->FileSize += pfdin->cb;
+
if (pDestination->Operation & EXTRACT_FILLFILELIST)
{
fileList = &pDestination->FileList;
@@ -345,6 +347,8 @@ HRESULT WINAPI Extract(SESSION *dest, LPCSTR szCabName)
path = NULL;
}
+ dest->FileSize = 0;
+
if (!FDICopy(hfdi, name, path, 0,
fdi_notify_extract, NULL, dest))
res = E_FAIL;
diff --git a/dlls/cabinet/tests/extract.c b/dlls/cabinet/tests/extract.c
index b9df804..f622b4e 100644
--- a/dlls/cabinet/tests/extract.c
+++ b/dlls/cabinet/tests/extract.c
@@ -342,10 +342,7 @@ static void test_Extract(void)
session.Operation = EXTRACT_FILLFILELIST | EXTRACT_EXTRACTFILES;
res = pExtract(&session, "extract.cab");
ok(res == S_OK, "Expected S_OK, got %d\n", res);
- todo_wine
- {
- ok(session.FileSize == 40, "Expected 40, got %d\n", session.FileSize);
- }
+ ok(session.FileSize == 40, "Expected 40, got %d\n", session.FileSize);
ok(session.Error.erfOper == FDIERROR_NONE,
"Expected FDIERROR_NONE, got %d\n", session.Error.erfOper);
ok(session.Error.erfType == 0, "Expected 0, got %d\n", session.Error.erfType);
@@ -374,10 +371,7 @@ static void test_Extract(void)
session.Operation = EXTRACT_FILLFILELIST;
res = pExtract(&session, "extract.cab");
ok(res == S_OK, "Expected S_OK, got %d\n", res);
- todo_wine
- {
- ok(session.FileSize == 40, "Expected 40, got %d\n", session.FileSize);
- }
+ ok(session.FileSize == 40, "Expected 40, got %d\n", session.FileSize);
ok(session.Error.erfOper == FDIERROR_NONE,
"Expected FDIERROR_NONE, got %d\n", session.Error.erfOper);
ok(session.Error.erfType == 0, "Expected 0, got %d\n", session.Error.erfType);
@@ -404,10 +398,7 @@ static void test_Extract(void)
session.Operation = EXTRACT_EXTRACTFILES;
res = pExtract(&session, "extract.cab");
ok(res == S_OK, "Expected S_OK, got %d\n", res);
- todo_wine
- {
- ok(session.FileSize == 40, "Expected 40, got %d\n", session.FileSize);
- }
+ ok(session.FileSize == 40, "Expected 40, got %d\n", session.FileSize);
ok(session.Error.erfOper == FDIERROR_NONE,
"Expected FDIERROR_NONE, got %d\n", session.Error.erfOper);
ok(session.Error.erfType == 0, "Expected 0, got %d\n", session.Error.erfType);
@@ -434,10 +425,7 @@ static void test_Extract(void)
/* Extract does not extract files if the dest dir does not exist */
res = pExtract(&session, "extract.cab");
ok(res == S_OK, "Expected S_OK, got %d\n", res);
- todo_wine
- {
- ok(session.FileSize == 40, "Expected 40, got %d\n", session.FileSize);
- }
+ ok(session.FileSize == 40, "Expected 40, got %d\n", session.FileSize);
ok(session.Error.erfOper == FDIERROR_NONE,
"Expected FDIERROR_NONE, got %d\n", session.Error.erfOper);
ok(session.Error.erfType == 0, "Expected 0, got %d\n", session.Error.erfType);
@@ -464,10 +452,7 @@ static void test_Extract(void)
CreateDirectoryA("dest", NULL);
res = pExtract(&session, "extract.cab");
ok(res == S_OK, "Expected S_OK, got %d\n", res);
- todo_wine
- {
- ok(session.FileSize == 40, "Expected 40, got %d\n", session.FileSize);
- }
+ ok(session.FileSize == 40, "Expected 40, got %d\n", session.FileSize);
ok(session.Error.erfOper == FDIERROR_NONE,
"Expected FDIERROR_NONE, got %d\n", session.Error.erfOper);
ok(session.Error.erfType == 0, "Expected 0, got %d\n", session.Error.erfType);
@@ -496,10 +481,7 @@ static void test_Extract(void)
session.FileList = NULL;
res = pExtract(&session, "extract.cab");
ok(res == S_OK, "Expected S_OK, got %d\n", res);
- todo_wine
- {
- ok(session.FileSize == 40, "Expected 40, got %d\n", session.FileSize);
- }
+ ok(session.FileSize == 40, "Expected 40, got %d\n", session.FileSize);
ok(session.Error.erfOper == FDIERROR_NONE,
"Expected FDIERROR_NONE, got %d\n", session.Error.erfOper);
ok(session.Error.erfType == 0, "Expected 0, got %d\n", session.Error.erfType);
@@ -527,10 +509,7 @@ static void test_Extract(void)
session.Operation = 0;
res = pExtract(&session, "extract.cab");
ok(res == S_OK, "Expected S_OK, got %d\n", res);
- todo_wine
- {
- ok(session.FileSize == 40, "Expected 40, got %d\n", session.FileSize);
- }
+ ok(session.FileSize == 40, "Expected 40, got %d\n", session.FileSize);
ok(session.Error.erfOper == FDIERROR_NONE,
"Expected FDIERROR_NONE, got %d\n", session.Error.erfOper);
ok(session.Error.erfType == 0, "Expected 0, got %d\n", session.Error.erfType);
@@ -558,10 +537,7 @@ static void test_Extract(void)
session.FilterList = session.FileList;
res = pExtract(&session, "extract.cab");
ok(res == S_OK, "Expected S_OK, got %d\n", res);
- todo_wine
- {
- ok(session.FileSize == 40, "Expected 40, got %d\n", session.FileSize);
- }
+ ok(session.FileSize == 40, "Expected 40, got %d\n", session.FileSize);
ok(session.Error.erfOper == FDIERROR_NONE,
"Expected FDIERROR_NONE, got %d\n", session.Error.erfOper);
ok(session.Error.erfType == 0, "Expected 0, got %d\n", session.Error.erfType);
--
1.4.4.2
More information about the wine-patches
mailing list