0. !!! Bugfix !!! See the attachement.
I made a mistake in the nsis7z.cpp file, so above 2GB of uncompressed data zero size was displayed. Now it is corrected.
For admins: Please remove the attached file from my previous post (#47).
1. I do not know, what is the 7zip archive real size limit, but in case if uncompressed amount of data reached/exceeded the 2GB size, the displayed size was wrong (mostly a negative value) in callback mode. Practically this is only a cosmetical change, but may be useful.
Note that the returned value must be correctly processed via NSIS script (only updated part of the original example script):
Function CallbackTest
Pop $R8
Pop $R9
StrCpy $R7 "bytes"
IntCmp $R9 0 NoOvrFlw 0 NoOvrFlw
IntOp $R9 $R9 & 0x7FFFFFFF
IntOp $R8 $R8 & 0x7FFFFFFF
StrCpy $R7 "kilobytes"
NoOvrFlw:
SetDetailsPrint textonly
DetailPrint "Installing $R8 / $R9 $R7..."
SetDetailsPrint both
FunctionEnd
2. Sorry, but I have not enough programming knowledge to do this. My primary target was recompiling the plugin to support the legacy operating systems.
PS: Sorry, my english is bad.