25 Commits

Author SHA1 Message Date
Martijn Laan
36177fd98a
Redo the message change. Todo: commit updated Default.isl. 2025-06-03 20:09:20 +02:00
Martijn Laan
64d20b80f3
Add support for overwriting read-only files. 2025-05-26 15:11:54 +02:00
Martijn Laan
8a552ef397
Verify remaining precompiled binaries + add extra comments to build(-ce).bat. 2025-05-02 16:24:28 +02:00
Martijn Laan
e6ae2228c9
Fix d8a1a8f7's fix: it was setting pDefUsed to NULL if pDefaultChar wasn't NULL and vice versa. 2025-04-28 19:51:41 +02:00
Martijn Laan
d8a1a8f751
Fix invalid WideCharToMultiByte parameters, caused by 1fd19b5d and probably causing an error on Windows 2016 at least.
Win32 docs for the two params: "For the CP_UTF7 and CP_UTF8 settings for CodePage, this parameter must be set to NULL. Otherwise, the function fails with ERROR_INVALID_PARAMETER."
2025-04-26 09:23:32 +02:00
Martijn Laan
b7edf63b10
The second progress report was done 'in between' regular output of a single line which makes the lines end up reversed in the log due to the line collection. Fix this + also also do the second progress report when needed (=after the final file). 2024-11-14 19:06:51 +01:00
Martijn Laan
5bf562b1fc
Merge branch 'main' into extract7zippage
# Conflicts:
#	Projects/Src/Compression.SevenZipDecoder/7zDecode/IS7zDec.obj
2024-11-14 13:41:45 +01:00
Martijn Laan
2d3b2f40af
Extract7ZipFile: improve output/log memory requirements. 2024-11-14 13:41:14 +01:00
Martijn Laan
b7efc08dcf
Merge branch 'main' into extract7zippage
# Conflicts:
#	Components/Lzma2/Util/7z/7zMain.c
#	Projects/Src/Compression.SevenZipDecoder/7zDecode/IS7zDec.c
#	Projects/Src/Compression.SevenZipDecoder/7zDecode/IS7zDec.obj
2024-11-14 13:18:52 +01:00
Martijn Laan
d78d5dd35a
Extract7ZipFile: output/log memory requirements. 2024-11-14 13:17:56 +01:00
Martijn Laan
81557149a4
Add abort option. 2024-11-09 13:40:56 +01:00
Martijn Laan
bda8555b87
Add basic progress reporting for 7-Zip extracting, not yet actually used. 2024-11-09 13:19:47 +01:00
Martijn Laan
70de42e2e7
Sanity check the names of directories and files 7-Zip wants to create. Also enable the preexisting CreateFileA check for BCC32. 2024-10-29 19:02:18 +01:00
Martijn Laan
ca6d2a76e1
Various 7-Zip related improvements. 2024-10-08 19:26:28 +02:00
Martijn Laan
bee7be3bf4
Check for USE_WINDOWS_FILE. 2024-10-05 20:29:09 +02:00
Martijn Laan
88dcad59d2
Add specific error text for SZ_ERROR_NO_ARCHIVE. 2024-10-05 15:55:30 +02:00
Martijn Laan
358c00b746
Fix comment typo. 2024-10-05 12:12:16 +02:00
Martijn Laan
85d88d9f9b
Return res on errors instead of always returning 1. 2024-10-05 10:21:32 +02:00
Martijn Laan
17be212776
Move the stdio.h/stdout change outside 7zMain.c. This means using the SDK without any changes at all would work, isn't that cool? 2024-10-03 19:04:32 +02:00
Martijn Laan
d0f6c549d3
Finish workaround. It works 💪 2024-10-03 18:34:24 +02:00
Martijn Laan
144a32834c
Workaround stdcall issue. Not yet finished so also not yet tested. 2024-10-03 15:52:04 +02:00
Martijn Laan
85a426d199
Rename to better match the SDK and also LZMADecode/ISLzmaDec. 2024-10-03 07:34:36 +02:00
Martijn Laan
3fa5eb6809
Support Unicode archive names. 2024-10-03 07:08:11 +02:00
Martijn Laan
1fd19b5d31
Support output/log of Unicode directory and file names. 2024-10-03 06:59:38 +02:00
Martijn Laan
f0290f699a
Embed the test application code. So now we can extract 7zip archives with basically zero extra code by us.
The overhead is basically zero: before inclusion a compiled Example1.iss is 1.75 MB and after inclusion it's 1.77 MB. I'm sure it's fully included since it extracts an external archive.

The code's output is redirected to the log and its limits are as documented by 7zC.txt:

"- It reads only "FileName", "Size", "LastWriteTime" and "CRC" information for each file in archive.
 - It supports only LZMA and Copy (no compression) methods with BCJ or BCJ2 filters.
 - It converts original UTF-16 Unicode file names to UTF-8 Unicode file names.

These limitations will be fixed in future versions."

Also: it's not fully Unicode? Not sure if this is my fault or not.

Todo:
-It needs to collect output strings and watch for newlines before directly calling Log, much/just like output logging.
-If the OBJ is compiled with Visual Studio then the Delphi compile doesn't work: it complains about missing the various Windows functions used. For the OBJ compiled with bcc32c this was solved by just doing 'uses Windows'.
-Am unsure if it now contains two copies of the LZMA/LZMA decompression code, one from IS7ZipDec.obj and the other from ISLzmaDec/ISLzma2Dec.obj.
-Test the FullPaths parameter.
2024-10-02 22:08:03 +02:00