From 6aec21957879207bdbbb782b99af3058e0d98bba Mon Sep 17 00:00:00 2001 From: jstenar <> Date: Tue, 30 Oct 2007 20:42:59 +0000 Subject: [PATCH] Fixing wide character related bugs --- doc/ChangeLog | 4 ++++ pyreadline/console/console.py | 4 +++- pyreadline/logger.py | 4 ++-- pyreadline/modes/emacs.py | 2 +- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/doc/ChangeLog b/doc/ChangeLog index 525588a..340b142 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,7 @@ +2007-10-30 Jörgen Stenarson + * Fixing console.title to work with wide characters + * Fixing wide character bug for log_sock + 2007-10-30 Jörgen Stenarson * Add tests for history buffer. Add ignore_leading_spaces option for history searches for forward_search_history, and reverse_search_history. diff --git a/pyreadline/console/console.py b/pyreadline/console/console.py index 9b334fe..7133776 100644 --- a/pyreadline/console/console.py +++ b/pyreadline/console/console.py @@ -553,7 +553,7 @@ class Console(object): if txt: self.SetConsoleTitleW(txt) else: - buffer = c_buffer(200) + buffer = create_unicode_buffer(200) n = self.GetConsoleTitleW(buffer, 200) if n > 0: return buffer.value[:n] @@ -596,6 +596,8 @@ class Console(object): # add the functions from the dll to the class for func in funcs: setattr(Console, func, getattr(windll.kernel32, func)) +windll.kernel32.SetConsoleTitleW.argtypes=[c_wchar_p] +windll.kernel32.GetConsoleTitleW.argtypes=[c_wchar_p,c_short] from event import Event diff --git a/pyreadline/logger.py b/pyreadline/logger.py index 539b042..cb5d46f 100644 --- a/pyreadline/logger.py +++ b/pyreadline/logger.py @@ -36,9 +36,9 @@ def log_sock(s,event_type=None): pass else: if event_type is None: - logsocket.sendto(s,(host,port)) + logsocket.sendto(str(s),(host,port)) elif event_type in show_event: - logsocket.sendto(s,(host,port)) + logsocket.sendto(str(s),(host,port)) else: pass diff --git a/pyreadline/modes/emacs.py b/pyreadline/modes/emacs.py index 7349587..4768fdb 100644 --- a/pyreadline/modes/emacs.py +++ b/pyreadline/modes/emacs.py @@ -81,7 +81,7 @@ class EmacsMode(basemode.BaseMode): dispatch_func = self.key_dispatch.get(keyinfo,default) log("readline from keyboard:%s,%s"%(keyinfo,dispatch_func)) - log_sock("%s|%s"%(format(keyinfo),dispatch_func.__name__),"bound_function") + log_sock(("%s|%s"%(format(keyinfo),dispatch_func.__name__)).encode(sys.stdout.encoding),"bound_function") r = None if dispatch_func: r = dispatch_func(event)