mirror of https://github.com/OpenTTD/OpenTTD
(svn r9084) -Fix: [win9x] Clipboard paste for Windows95 (doesn't have CF_UNICODETEXT) correctly converts the input to the current locale.
parent
3b3c7554b7
commit
3702f987c8
|
@ -993,25 +993,26 @@ bool InsertTextBufferClipboard(Textbuf *tb)
|
||||||
uint16 width, length;
|
uint16 width, length;
|
||||||
|
|
||||||
if (IsClipboardFormatAvailable(CF_UNICODETEXT)) {
|
if (IsClipboardFormatAvailable(CF_UNICODETEXT)) {
|
||||||
const char *ret;
|
|
||||||
|
|
||||||
OpenClipboard(NULL);
|
OpenClipboard(NULL);
|
||||||
cbuf = GetClipboardData(CF_UNICODETEXT);
|
cbuf = GetClipboardData(CF_UNICODETEXT);
|
||||||
|
|
||||||
ptr = (const char*)GlobalLock(cbuf);
|
ptr = (const char*)GlobalLock(cbuf);
|
||||||
ret = convert_from_fs((wchar_t*)ptr, utf8_buf, lengthof(utf8_buf));
|
const char *ret = convert_from_fs((wchar_t*)ptr, utf8_buf, lengthof(utf8_buf));
|
||||||
GlobalUnlock(cbuf);
|
GlobalUnlock(cbuf);
|
||||||
CloseClipboard();
|
CloseClipboard();
|
||||||
|
|
||||||
if (*ret == '\0') return false;
|
if (*ret == '\0') return false;
|
||||||
|
#if !defined(UNICODE)
|
||||||
} else if (IsClipboardFormatAvailable(CF_TEXT)) {
|
} else if (IsClipboardFormatAvailable(CF_TEXT)) {
|
||||||
OpenClipboard(NULL);
|
OpenClipboard(NULL);
|
||||||
cbuf = GetClipboardData(CF_TEXT);
|
cbuf = GetClipboardData(CF_TEXT);
|
||||||
|
|
||||||
ptr = (const char*)GlobalLock(cbuf);
|
ptr = (const char*)GlobalLock(cbuf);
|
||||||
ttd_strlcpy(utf8_buf, ptr, lengthof(utf8_buf));
|
ttd_strlcpy(utf8_buf, FS2OTTD(ptr), lengthof(utf8_buf));
|
||||||
|
|
||||||
GlobalUnlock(cbuf);
|
GlobalUnlock(cbuf);
|
||||||
CloseClipboard();
|
CloseClipboard();
|
||||||
|
#endif /* UNICODE */
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue