Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/kornelski/7z.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'CPP/7zip/UI/Far/ExtractEngine.cpp')
-rwxr-xr-xCPP/7zip/UI/Far/ExtractEngine.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/CPP/7zip/UI/Far/ExtractEngine.cpp b/CPP/7zip/UI/Far/ExtractEngine.cpp
index 677cac79..02d14f83 100755
--- a/CPP/7zip/UI/Far/ExtractEngine.cpp
+++ b/CPP/7zip/UI/Far/ExtractEngine.cpp
@@ -118,6 +118,12 @@ STDMETHODIMP CExtractCallBackImp::MessageError(const wchar_t *message)
return S_OK;
}
+static void ReduceString(UString &s, int size)
+{
+ if (s.Length() > size)
+ s = s.Left(size / 2) + UString(L" ... ") + s.Right(size / 2);
+}
+
STDMETHODIMP CExtractCallBackImp::SetOperationResult(Int32 operationResult, bool encrypted)
{
switch(operationResult)
@@ -145,10 +151,11 @@ STDMETHODIMP CExtractCallBackImp::SetOperationResult(Int32 operationResult, bool
default:
return E_FAIL;
}
- char buffer[512];
- const AString s = UnicodeStringToMultiByte(m_CurrentFilePath, m_CodePage);
- sprintf(buffer, g_StartupInfo.GetMsgString(idMessage), (const char *)s);
- if (g_StartupInfo.ShowMessage(buffer) == -1)
+ UString name = m_CurrentFilePath;
+ ReduceString(name, 70);
+ AString s = g_StartupInfo.GetMsgString(idMessage);
+ s.Replace(" '%s'", "");
+ if (g_StartupInfo.ShowMessageLines(s + (AString)("\n") + UnicodeStringToMultiByte(name, m_CodePage)) == -1)
return E_ABORT;
}
}