[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57147] trunk/blender/source/blender/ editors/interface/interface_layout.c: fix for incorrect use of strncat in uiItemMenuEnumO

Campbell Barton ideasman42 at gmail.com
Thu May 30 20:42:32 CEST 2013


Revision: 57147
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57147
Author:   campbellbarton
Date:     2013-05-30 18:42:32 +0000 (Thu, 30 May 2013)
Log Message:
-----------
fix for incorrect use of strncat in uiItemMenuEnumO

Modified Paths:
--------------
    trunk/blender/source/blender/editors/interface/interface_layout.c

Modified: trunk/blender/source/blender/editors/interface/interface_layout.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_layout.c	2013-05-30 18:09:19 UTC (rev 57146)
+++ trunk/blender/source/blender/editors/interface/interface_layout.c	2013-05-30 18:42:32 UTC (rev 57147)
@@ -1723,7 +1723,8 @@
 {
 	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 @@
 	}
 
 	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 @@
 		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);
 }
 




More information about the Bf-blender-cvs mailing list