mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-11 00:07:09 -06:00
Update to 7-Zip 17.00 Beta
This commit is contained in:
@@ -43,23 +43,31 @@ void SetFileInfoStrings(const CFileInfo &fileInfo,
|
||||
fileInfoStrings.Size = "";
|
||||
}
|
||||
|
||||
FILETIME localFileTime;
|
||||
fileInfoStrings.Time.Empty();
|
||||
if (fileInfo.TimeIsDefined)
|
||||
{
|
||||
if (!FileTimeToLocalFileTime(&fileInfo.Time, &localFileTime))
|
||||
throw 4190402;
|
||||
char timeString[32];
|
||||
ConvertFileTimeToString(localFileTime, timeString);
|
||||
ConvertUtcFileTimeToString(fileInfo.Time, timeString);
|
||||
fileInfoStrings.Time = g_StartupInfo.GetMsgString(NMessageID::kOverwriteModifiedOn);
|
||||
fileInfoStrings.Time += ' ';
|
||||
fileInfoStrings.Time += timeString;
|
||||
}
|
||||
}
|
||||
|
||||
static void ReduceString2(UString &s, unsigned size)
|
||||
{
|
||||
if (!s.IsEmpty() && s.Back() == ' ')
|
||||
{
|
||||
// s += (wchar_t)(0x2423);
|
||||
s.InsertAtFront(L'\"');
|
||||
s += L'\"';
|
||||
}
|
||||
ReduceString(s, size);
|
||||
}
|
||||
|
||||
NResult::EEnum Execute(const CFileInfo &oldFileInfo, const CFileInfo &newFileInfo)
|
||||
{
|
||||
const int kYSize = 20;
|
||||
const int kYSize = 22;
|
||||
const int kXSize = 76;
|
||||
|
||||
CFileInfoStrings oldFileInfoStrings;
|
||||
@@ -68,17 +76,30 @@ NResult::EEnum Execute(const CFileInfo &oldFileInfo, const CFileInfo &newFileInf
|
||||
SetFileInfoStrings(oldFileInfo, oldFileInfoStrings);
|
||||
SetFileInfoStrings(newFileInfo, newFileInfoStrings);
|
||||
|
||||
UString oldName2 = oldFileInfo.Name;
|
||||
UString newName2 = newFileInfo.Name;
|
||||
const UString &oldName2 = oldFileInfo.Name;
|
||||
const UString &newName2 = newFileInfo.Name;
|
||||
|
||||
int slashPos = oldName2.ReverseFind_PathSepar();
|
||||
UString pref1 = oldName2.Left(slashPos + 1);
|
||||
UString name1 = oldName2.Ptr(slashPos + 1);
|
||||
|
||||
slashPos = newName2.ReverseFind_PathSepar();
|
||||
UString pref2 = newName2.Left(slashPos + 1);
|
||||
UString name2 = newName2.Ptr(slashPos + 1);
|
||||
|
||||
const unsigned kNameOffset = 2;
|
||||
{
|
||||
const unsigned maxNameLen = kXSize - 9 - 2;
|
||||
ReduceString(oldName2, maxNameLen);
|
||||
ReduceString(newName2, maxNameLen);
|
||||
ReduceString(pref1, maxNameLen);
|
||||
ReduceString(pref2, maxNameLen);
|
||||
ReduceString2(name1, maxNameLen - kNameOffset);
|
||||
ReduceString2(name2, maxNameLen - kNameOffset);
|
||||
}
|
||||
|
||||
AString oldName = UnicodeStringToMultiByte(oldName2);
|
||||
AString newName = UnicodeStringToMultiByte(newName2);
|
||||
AString pref1A (UnicodeStringToMultiByte(pref1, CP_OEMCP));
|
||||
AString pref2A (UnicodeStringToMultiByte(pref2, CP_OEMCP));
|
||||
AString name1A (UnicodeStringToMultiByte(name1, CP_OEMCP));
|
||||
AString name2A (UnicodeStringToMultiByte(name2, CP_OEMCP));
|
||||
|
||||
struct CInitDialogItem initItems[]={
|
||||
{ DI_DOUBLEBOX, 3, 1, kXSize - 4, kYSize - 2, false, false, 0, false, NMessageID::kOverwriteTitle, NULL, NULL },
|
||||
@@ -88,15 +109,17 @@ NResult::EEnum Execute(const CFileInfo &oldFileInfo, const CFileInfo &newFileInf
|
||||
|
||||
{ DI_TEXT, 5, 4, 0, 0, false, false, 0, false, NMessageID::kOverwriteMessageWouldYouLike, NULL, NULL },
|
||||
|
||||
{ DI_TEXT, 7, 6, 0, 0, false, false, 0, false, -1, oldName, NULL },
|
||||
{ DI_TEXT, 7, 7, 0, 0, false, false, 0, false, -1, oldFileInfoStrings.Size, NULL },
|
||||
{ DI_TEXT, 7, 8, 0, 0, false, false, 0, false, -1, oldFileInfoStrings.Time, NULL },
|
||||
{ DI_TEXT, 7, 6, 0, 0, false, false, 0, false, -1, pref1A, NULL },
|
||||
{ DI_TEXT, 7 + kNameOffset, 7, 0, 0, false, false, 0, false, -1, name1A, NULL },
|
||||
{ DI_TEXT, 7, 8, 0, 0, false, false, 0, false, -1, oldFileInfoStrings.Size, NULL },
|
||||
{ DI_TEXT, 7, 9, 0, 0, false, false, 0, false, -1, oldFileInfoStrings.Time, NULL },
|
||||
|
||||
{ DI_TEXT, 5, 10, 0, 0, false, false, 0, false, NMessageID::kOverwriteMessageWithtTisOne, NULL, NULL },
|
||||
{ DI_TEXT, 5, 11, 0, 0, false, false, 0, false, NMessageID::kOverwriteMessageWithtTisOne, NULL, NULL },
|
||||
|
||||
{ DI_TEXT, 7, 12, 0, 0, false, false, 0, false, -1, newName, NULL },
|
||||
{ DI_TEXT, 7, 13, 0, 0, false, false, 0, false, -1, newFileInfoStrings.Size, NULL },
|
||||
{ DI_TEXT, 7, 14, 0, 0, false, false, 0, false, -1, newFileInfoStrings.Time, NULL },
|
||||
{ DI_TEXT, 7, 13, 0, 0, false, false, 0, false, -1, pref2A, NULL },
|
||||
{ DI_TEXT, 7 + kNameOffset, 14, 0, 0, false, false, 0, false, -1, name2A, NULL },
|
||||
{ DI_TEXT, 7, 15, 0, 0, false, false, 0, false, -1, newFileInfoStrings.Size, NULL },
|
||||
{ DI_TEXT, 7, 16, 0, 0, false, false, 0, false, -1, newFileInfoStrings.Time, NULL },
|
||||
|
||||
{ DI_TEXT, 3, kYSize - 5, 0, 0, false, false, DIF_BOXCOLOR|DIF_SEPARATOR, false, -1, "", NULL },
|
||||
|
||||
|
||||
Reference in New Issue
Block a user