summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xplugins/Msg_Export/src/FileViewer.cpp54
-rwxr-xr-xplugins/Msg_Export/src/utils.cpp6
2 files changed, 29 insertions, 31 deletions
diff --git a/plugins/Msg_Export/src/FileViewer.cpp b/plugins/Msg_Export/src/FileViewer.cpp
index 619d97ed3c..e76ac7a885 100755
--- a/plugins/Msg_Export/src/FileViewer.cpp
+++ b/plugins/Msg_Export/src/FileViewer.cpp
@@ -678,7 +678,6 @@ bool bLoadFile(HWND hwndDlg, CLHistoryDlg * pclDlg)
OutputDebugString(szTmp);
GETTEXTLENGTHEX sData = { 0 };
- sData.flags = GTL_NUMCHARS;
sData.flags = GTL_DEFAULT;
DWORD dwDataRead = (DWORD)SendMessage(hRichEdit, EM_GETTEXTLENGTHEX, (WPARAM)&sData, 0);
@@ -712,37 +711,38 @@ bool bAdvancedCopy(HWND hwnd)
int nSelLenght = sSelectRange.cpMax - sSelectRange.cpMin + 1; // +1 for null termination
if (nSelLenght > 1)
{
- OpenClipboard(NULL);
- EmptyClipboard();
-
- TCHAR *pszSrcBuf = new TCHAR[nSelLenght];
- pszSrcBuf[0] = 0;
- SendMessage(hwnd, EM_GETSELTEXT, 0, (LPARAM)pszSrcBuf);
+ if (OpenClipboard(NULL)) {
+ EmptyClipboard();
+
+ TCHAR *pszSrcBuf = new TCHAR[nSelLenght];
+ pszSrcBuf[0] = 0;
+ SendMessage(hwnd, EM_GETSELTEXT, 0, (LPARAM)pszSrcBuf);
+
+ HANDLE hDecMem = GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE, nSelLenght);
+ TCHAR *pszCurDec = (TCHAR*)GlobalLock(hDecMem);
+
+ bool bInSpaces = false;
+ for (TCHAR *pszCur = pszSrcBuf; pszCur[0]; pszCur++) {
+ if (bInSpaces) {
+ if (pszCur[0] == ' ')
+ continue;
+ bInSpaces = false;
+ }
- HANDLE hDecMem = GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE, nSelLenght);
- TCHAR *pszCurDec = (TCHAR*)GlobalLock(hDecMem);
+ if (pszCur[0] == '\n')
+ bInSpaces = true;
- bool bInSpaces = false;
- for (TCHAR *pszCur = pszSrcBuf; pszCur[0]; pszCur++) {
- if (bInSpaces) {
- if (pszCur[0] == ' ')
- continue;
- bInSpaces = false;
+ pszCurDec[0] = pszCur[0];
+ pszCurDec++;
}
+ pszCurDec[0] = 0;
+ GlobalUnlock(hDecMem);
- if (pszCur[0] == '\n')
- bInSpaces = true;
-
- pszCurDec[0] = pszCur[0];
- pszCurDec++;
+ SetClipboardData(CF_TEXT, hDecMem);
+ delete[] pszSrcBuf;
+ CloseClipboard();
+ return true;
}
- pszCurDec[0] = 0;
- GlobalUnlock(hDecMem);
-
- SetClipboardData(CF_TEXT, hDecMem);
- delete[] pszSrcBuf;
- CloseClipboard();
- return true;
}
return false;
}
diff --git a/plugins/Msg_Export/src/utils.cpp b/plugins/Msg_Export/src/utils.cpp
index 65b86fc401..023c90a90b 100755
--- a/plugins/Msg_Export/src/utils.cpp
+++ b/plugins/Msg_Export/src/utils.cpp
@@ -445,8 +445,7 @@ static bool bWriteTextToFile(HANDLE hFile, const TCHAR *pszSrc, bool bUtf8File,
{
if (nLen != -1) {
TCHAR *tmp = (TCHAR*)alloca(sizeof(TCHAR)*(nLen + 1));
- mir_tstrncpy(tmp, pszSrc, nLen);
- tmp[nLen] = 0;
+ mir_tstrncpy(tmp, pszSrc, nLen + 1);
pszSrc = tmp;
}
@@ -468,8 +467,7 @@ static bool bWriteTextToFile(HANDLE hFile, const char *pszSrc, bool bUtf8File, i
if (nLen != -1) {
char *tmp = (char*)alloca(nLen + 1);
- mir_strncpy(tmp, pszSrc, nLen);
- tmp[nLen] = 0;
+ mir_strncpy(tmp, pszSrc, nLen + 1);
pszSrc = tmp;
}