[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32910] trunk/blender/source/blender: - avoid loop within loop for unique naming function ( even though it wasnt likely to run often).

Campbell Barton ideasman42 at gmail.com
Sun Nov 7 10:33:10 CET 2010


Revision: 32910
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32910
Author:   campbellbarton
Date:     2010-11-07 10:33:10 +0100 (Sun, 07 Nov 2010)

Log Message:
-----------
- avoid loop within loop for unique naming function (even though it wasnt likely to run often).
- off by 1 error with outliner naming length. was 1 too short. 

Modified Paths:
--------------
    trunk/blender/source/blender/blenlib/intern/path_util.c
    trunk/blender/source/blender/editors/space_outliner/outliner.c

Modified: trunk/blender/source/blender/blenlib/intern/path_util.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/path_util.c	2010-11-07 08:49:07 UTC (rev 32909)
+++ trunk/blender/source/blender/blenlib/intern/path_util.c	2010-11-07 09:33:10 UTC (rev 32910)
@@ -205,10 +205,12 @@
 		char	left[UNIQUE_NAME_MAX];
 		int		number;
 		int		len= BLI_split_name_num(left, &number, name, delim);
-		do {	/* nested while loop looks bad but likely it wont run most times */
-			while(BLI_snprintf(tempname, name_len, "%s%c%03d", left, delim, number) >= name_len) {
-				if(len > 0)	left[--len]= '\0';	/* word too long */
-				else		number= 0;			/* reset, must be a massive number */
+		do {
+			int newlen= BLI_snprintf(tempname, name_len, "%s%c%03d", left, delim, number);
+			if(newlen >= name_len) {
+				len -= ((newlen + 1) - name_len);
+				if(len < 0) len= number= 0;
+				left[len]= '\0';
 			}
 		} while(number++, unique_check(arg, tempname));
 

Modified: trunk/blender/source/blender/editors/space_outliner/outliner.c
===================================================================
--- trunk/blender/source/blender/editors/space_outliner/outliner.c	2010-11-07 08:49:07 UTC (rev 32909)
+++ trunk/blender/source/blender/editors/space_outliner/outliner.c	2010-11-07 09:33:10 UTC (rev 32910)
@@ -5592,7 +5592,7 @@
 				spx=te->xs+2*OL_X-4;
 				if(spx+dx+10>ar->v2d.cur.xmax) dx = ar->v2d.cur.xmax-spx-10;
 
-				bt= uiDefBut(block, TEX, OL_NAMEBUTTON, "", spx, (short)te->ys, dx+10, OL_H-1, te->name, 1.0, (float)len-1, 0, 0, "");
+				bt= uiDefBut(block, TEX, OL_NAMEBUTTON, "", spx, (short)te->ys, dx+10, OL_H-1, te->name, 1.0, (float)len, 0, 0, "");
 				uiButSetRenameFunc(bt, namebutton_cb, tselem);
 				
 				/* returns false if button got removed */





More information about the Bf-blender-cvs mailing list