diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-05-30 22:42:32 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-05-30 22:42:32 +0400 |
commit | ba767857b8f303681e732b251cb235ecadd454d1 (patch) | |
tree | bb2755fc0c9e3deb2688bfbde56a2a38fdea60f9 /source/blender/editors/interface/interface_layout.c | |
parent | d7f51f83f65799b447324d1738239cffdc5e1918 (diff) |
fix for incorrect use of strncat in uiItemMenuEnumO
Diffstat (limited to 'source/blender/editors/interface/interface_layout.c')
-rw-r--r-- | source/blender/editors/interface/interface_layout.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index 7522273f562..881b199abe1 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -1723,7 +1723,8 @@ void uiItemMenuEnumO(uiLayout *layout, bContext *C, const char *opname, const ch { wmOperatorType *ot = WM_operatortype_find(opname, 0); /* print error next */ MenuItemLevel *lvl; - char namestr[UI_MAX_NAME_STR], keybuf[128]; + char namestr_buf[UI_MAX_NAME_STR], keybuf[128]; + char *namestr = namestr_buf; UI_OPERATOR_ERROR_RET(ot, opname, return ); @@ -1734,9 +1735,9 @@ void uiItemMenuEnumO(uiLayout *layout, bContext *C, const char *opname, const ch } if (name) - BLI_strncpy(namestr, name, sizeof(namestr)); + namestr += BLI_strncpy_rlen(namestr, name, sizeof(namestr_buf)); else - BLI_strncpy(namestr, RNA_struct_ui_name(ot->srna), sizeof(namestr)); + namestr += BLI_strncpy_rlen(namestr, RNA_struct_ui_name(ot->srna), sizeof(namestr_buf)); if (layout->root->type == UI_LAYOUT_MENU && !icon) icon = ICON_BLANK1; @@ -1751,12 +1752,11 @@ void uiItemMenuEnumO(uiLayout *layout, bContext *C, const char *opname, const ch if (ot->prop && WM_key_event_operator_string(C, ot->idname, layout->root->opcontext, NULL, false, keybuf, sizeof(keybuf))) { - strncat(namestr, "|", sizeof(namestr) - 1); - strncat(namestr, keybuf, sizeof(namestr) - 1); + namestr += BLI_snprintf(namestr, sizeof(namestr_buf) - (namestr - namestr_buf) , "|%s", name); } } - ui_item_menu(layout, namestr, icon, menu_item_enum_opname_menu, NULL, lvl, RNA_struct_ui_description(ot->srna), + ui_item_menu(layout, namestr_buf, icon, menu_item_enum_opname_menu, NULL, lvl, RNA_struct_ui_description(ot->srna), true); } |