From 514ed19e1bd7ab4cd730a88ec15e84efe47431d6 Mon Sep 17 00:00:00 2001 From: teegaar Date: Sat, 10 Nov 2012 21:57:57 +0400 Subject: [PATCH] fix problems with non-ASCII text in clipboard fix issue #9 --- pyreadline/clipboard/win32_clipboard.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pyreadline/clipboard/win32_clipboard.py b/pyreadline/clipboard/win32_clipboard.py index 3473e49..032eeb2 100644 --- a/pyreadline/clipboard/win32_clipboard.py +++ b/pyreadline/clipboard/win32_clipboard.py @@ -34,7 +34,7 @@ from __future__ import print_function, unicode_literals, absolute_import from ctypes import * -from pyreadline.keysyms.winconstants import CF_TEXT, GHND +from pyreadline.keysyms.winconstants import CF_UNICODETEXT, GHND from pyreadline.unicode_helper import ensure_unicode,ensure_str OpenClipboard = windll.user32.OpenClipboard @@ -83,16 +83,16 @@ def getformatname(format): def GetClipboardText(): text = "" if OpenClipboard(0): - hClipMem = GetClipboardData(CF_TEXT) + hClipMem = GetClipboardData(CF_UNICODETEXT) if hClipMem: - GlobalLock.restype = c_char_p + GlobalLock.restype = c_wchar_p text = GlobalLock(hClipMem) GlobalUnlock(hClipMem) CloseClipboard() return ensure_unicode(text) def SetClipboardText(text): - buffer = c_buffer(ensure_str(text)) + buffer = create_unicode_buffer(ensure_unicode(text)) bufferSize = sizeof(buffer) hGlobalMem = GlobalAlloc(c_int(GHND), c_int(bufferSize)) GlobalLock.restype = c_void_p @@ -101,7 +101,7 @@ def SetClipboardText(text): GlobalUnlock(c_int(hGlobalMem)) if OpenClipboard(0): EmptyClipboard() - SetClipboardData(c_int(CF_TEXT), c_int(hGlobalMem)) + SetClipboardData(c_int(CF_UNICODETEXT), c_int(hGlobalMem)) CloseClipboard() if __name__ == '__main__':