[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25252] trunk/blender/source/blender: Fix #20245: datablock names allowed entering 22 characters but can

Brecht Van Lommel brecht at blender.org
Wed Dec 9 19:03:44 CET 2009


Revision: 25252
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25252
Author:   blendix
Date:     2009-12-09 19:03:44 +0100 (Wed, 09 Dec 2009)

Log Message:
-----------
Fix #20245: datablock names allowed entering 22 characters but can
only accept 21.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/interface/interface_handlers.c
    trunk/blender/source/blender/makesrna/intern/rna_access.c

Modified: trunk/blender/source/blender/editors/interface/interface_handlers.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_handlers.c	2009-12-09 17:53:52 UTC (rev 25251)
+++ trunk/blender/source/blender/editors/interface/interface_handlers.c	2009-12-09 18:03:44 UTC (rev 25252)
@@ -1079,9 +1079,9 @@
 
 	uiStyleFontSet(&style->widget);
 
-	origstr= MEM_callocN(sizeof(char)*(data->maxlen+1), "ui_textedit origstr");
+	origstr= MEM_callocN(sizeof(char)*data->maxlen, "ui_textedit origstr");
 	
-	BLI_strncpy(origstr, but->drawstr, data->maxlen+1);
+	BLI_strncpy(origstr, but->drawstr, data->maxlen);
 	but->pos= strlen(origstr)-but->ofs;
 	
 	/* XXX solve generic */
@@ -1130,7 +1130,7 @@
 			changed= ui_textedit_delete_selection(but, data);
 
 		len= strlen(str);
-		if(len < data->maxlen) {
+		if(len+1 < data->maxlen) {
 			for(x= data->maxlen; x>but->pos; x--)
 				str[x]= str[x-1];
 			str[but->pos]= ascii;
@@ -1365,7 +1365,7 @@
 			for (y=0; y<strlen(buf); y++)
 			{
 				/* add contents of buffer */
-				if(len < data->maxlen) {
+				if(len+1 < data->maxlen) {
 					for(x= data->maxlen; x>but->pos; x--)
 						str[x]= str[x-1];
 					str[but->pos]= buf[y];
@@ -1411,8 +1411,8 @@
 
 	/* retrieve string */
 	data->maxlen= ui_get_but_string_max_length(but);
-	data->str= MEM_callocN(sizeof(char)*(data->maxlen+1), "textedit str");
-	ui_get_but_string(but, data->str, data->maxlen+1);
+	data->str= MEM_callocN(sizeof(char)*data->maxlen, "textedit str");
+	ui_get_but_string(but, data->str, data->maxlen);
 
 	data->origstr= BLI_strdup(data->str);
 	data->selextend= 0;

Modified: trunk/blender/source/blender/makesrna/intern/rna_access.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_access.c	2009-12-09 17:53:52 UTC (rev 25251)
+++ trunk/blender/source/blender/makesrna/intern/rna_access.c	2009-12-09 18:03:44 UTC (rev 25252)
@@ -885,6 +885,7 @@
 	*precision= (float)fprop->precision;
 }
 
+/* this is the max length including \0 terminator */
 int RNA_property_string_maxlength(PropertyRNA *prop)
 {
 	StringPropertyRNA *sprop= (StringPropertyRNA*)rna_ensure_property(prop);
@@ -1588,6 +1589,7 @@
 	return buf;
 }
 
+/* this is the length without \0 terminator */
 int RNA_property_string_length(PointerRNA *ptr, PropertyRNA *prop)
 {
 	StringPropertyRNA *sprop= (StringPropertyRNA*)prop;





More information about the Bf-blender-cvs mailing list