Patch by Andrey Janzen (virus126).

Fix copy\paste bug in calc.


svn path=/trunk/; revision=25830
This commit is contained in:
Saveliy Tretiakov 2007-02-17 15:33:57 +00:00
parent e565b89550
commit 4ea3e26092
2 changed files with 17 additions and 6 deletions

View file

@ -476,18 +476,23 @@ LRESULT WINAPI MainProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
if (!(len = _tcslen(calc.display))) if (!(len = _tcslen(calc.display)))
return 0; return 0;
if (!(s = calc.display))
return 0;
if (s[len - 1] == TEXT('.') || s[len - 1] == TEXT(','))
len--;
if (!(hGlobalMemory = GlobalAlloc(GHND, (len + 1) * sizeof(TCHAR)))) if (!(hGlobalMemory = GlobalAlloc(GHND, (len + 1) * sizeof(TCHAR))))
return 0; return 0;
if (!(pGlobalMemory = GlobalLock(hGlobalMemory))) if (!(pGlobalMemory = GlobalLock(hGlobalMemory)))
return 0; return 0;
if (!(s = calc.display))
return 0;
for (i = 0; i < len; i++) for (i = 0; i < len; i++)
*pGlobalMemory++ = *s++; *pGlobalMemory++ = *s++;
pGlobalMemory[len - 1] = 0;
GlobalUnlock(hGlobalMemory); // call GetLastError() for exception handling GlobalUnlock(hGlobalMemory); // call GetLastError() for exception handling
if (!OpenClipboard(hWnd)) if (!OpenClipboard(hWnd))
@ -496,7 +501,7 @@ LRESULT WINAPI MainProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
if (!EmptyClipboard()) if (!EmptyClipboard())
return 0; return 0;
if (!SetClipboardData(CF_TEXT, hGlobalMemory)) if (!SetClipboardData(CF_TTEXT, hGlobalMemory))
return 0; return 0;
if (!CloseClipboard()) if (!CloseClipboard())
@ -514,11 +519,11 @@ LRESULT WINAPI MainProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
HGLOBAL hGlobalMemory; HGLOBAL hGlobalMemory;
LPTSTR pGlobalMemory; LPTSTR pGlobalMemory;
if (IsClipboardFormatAvailable(CF_TEXT)) { if (IsClipboardFormatAvailable(CF_TTEXT)) {
if (!OpenClipboard(hWnd)) if (!OpenClipboard(hWnd))
return 0; return 0;
if (!(hGlobalMemory = GetClipboardData(CF_TEXT))) if (!(hGlobalMemory = GetClipboardData(CF_TTEXT)))
return 0; return 0;
if (!(size = GlobalSize(hGlobalMemory))) if (!(size = GlobalSize(hGlobalMemory)))

View file

@ -20,6 +20,12 @@
////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////
#ifdef UNICODE
#define CF_TTEXT CF_UNICODETEXT
#else
#define CF_TTEXT CF_TEXT
#endif
// numerics are defined here for easier porting // numerics are defined here for easier porting
typedef double calcfloat; typedef double calcfloat;