# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1332867204 0 # Node ID fb3c9d7509dde6f55091b04388d48a9150f146f0 # Parent 0e8c80209c4b76e5c80184ea22945fd774578d82 Fix dw_listbox_get_text() to work in Unicode mode on Windows. Added MacOS X changes to the readme. diff -r 0e8c80209c4b -r fb3c9d7509dd readme.txt --- a/readme.txt Tue Mar 27 15:57:36 2012 +0000 +++ b/readme.txt Tue Mar 27 16:53:24 2012 +0000 @@ -23,6 +23,7 @@ from available libraries (Firefox, Webkit, Qt, etc). Changes from version 2.3: +Added fullscreen support on Mac for resizable windows. Added UNICODE build mode on Windows allowing UTF-8 encoded text. ANSI builds are supported by removing -DUNICODE -D_UNICODE and -DAEROGLASS Added some support for antialiased drawing on Windows via GDI+. diff -r 0e8c80209c4b -r fb3c9d7509dd win/dw.c --- a/win/dw.c Tue Mar 27 15:57:36 2012 +0000 +++ b/win/dw.c Tue Mar 27 16:53:24 2012 +0000 @@ -7752,10 +7752,10 @@ */ void API dw_listbox_get_text(HWND handle, unsigned int index, char *buffer, unsigned int length) { - TCHAR tmpbuf[100] = {0}; + TCHAR tmpbuf[100] = {0}, *wbuffer; unsigned int len; - if(!buffer || !length) + if(!buffer || !length || !(wbuffer = _alloca((length+1)*sizeof(TCHAR)))) return; buffer[0] = 0; @@ -7767,17 +7767,22 @@ len = (int)SendMessage(handle, CB_GETLBTEXTLEN, (WPARAM)index, 0); if(len < length && len != CB_ERR) - SendMessage(handle, - CB_GETLBTEXT, (WPARAM)index, (LPARAM)buffer); + { + SendMessage(handle, CB_GETLBTEXT, (WPARAM)index, (LPARAM)wbuffer); + strncpy(buffer, WideToUTF8(wbuffer), length); + } } else { len = (int)SendMessage(handle, LB_GETTEXTLEN, (WPARAM)index, 0); if(len < length && len != LB_ERR) - SendMessage(handle, - LB_GETTEXT, (WPARAM)index, (LPARAM)buffer); - } + { + SendMessage(handle, LB_GETTEXT, (WPARAM)index, (LPARAM)wbuffer); + strncpy(buffer, WideToUTF8(wbuffer), length); + } + } + } /*