diff options
author | Campbell Barton <ideasman42@gmail.com> | 2011-10-24 10:57:53 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2011-10-24 10:57:53 +0400 |
commit | 5571485bad17fce48bca160cef97f6a591d5c08f (patch) | |
tree | 9d4e5e82bacbea46f864648a97fdbe76e5f58f29 /source/blender | |
parent | 809131bc8026c85f61813de42c34b02c47a780fe (diff) |
fix for crash when entering in non unicode ascii chars.
now allow these but only for filepaths.
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/editors/interface/interface_handlers.c | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index e49cb4898d9..99972f2ff09 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -1944,26 +1944,18 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle if((event->ascii || event->utf8_buf[0]) && (retval == WM_UI_HANDLER_CONTINUE)) { char ascii = event->ascii; - const char *utf8_buf= event->utf8_buf; /* exception that's useful for number buttons, some keyboard numpads have a comma instead of a period */ - if(ELEM3(but->type, NUM, NUMABS, NUMSLI)) { /* could use data->min*/ - if(event->type == PADPERIOD && ascii == ',') { + if(ELEM3(but->type, NUM, NUMABS, NUMSLI)) + if(event->type == PADPERIOD && ascii == ',') ascii = '.'; - utf8_buf= NULL; /* force ascii fallback */ - } - } - if(utf8_buf && utf8_buf[0]) { - int utf8_buf_len= BLI_str_utf8_size(utf8_buf); + if(event->utf8_buf[0]) { /* keep this printf until utf8 is well tested */ - if (utf8_buf_len != 1) { - printf("%s: utf8 char '%.*s'\n", __func__, utf8_buf_len, utf8_buf); - } - - // strcpy(utf8_buf, "12345"); - changed= ui_textedit_type_buf(but, data, event->utf8_buf, utf8_buf_len); + printf("%s: utf8 char '%s'\n", __func__, event->utf8_buf); + // strcpy(event->utf8_buf, "12345"); + changed= ui_textedit_type_buf(but, data, event->utf8_buf, BLI_str_utf8_size(event->utf8_buf)); } else { changed= ui_textedit_type_ascii(but, data, ascii); |