[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [35879] trunk/blender/source/blender: use less verbose string formatting for units and interface.

Campbell Barton ideasman42 at gmail.com
Tue Mar 29 16:36:56 CEST 2011


Revision: 35879
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35879
Author:   campbellbarton
Date:     2011-03-29 14:36:55 +0000 (Tue, 29 Mar 2011)
Log Message:
-----------
use less verbose string formatting for units and interface.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/unit.c
    trunk/blender/source/blender/editors/interface/interface.c

Modified: trunk/blender/source/blender/blenkernel/intern/unit.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/unit.c	2011-03-29 14:13:11 UTC (rev 35878)
+++ trunk/blender/source/blender/blenkernel/intern/unit.c	2011-03-29 14:36:55 UTC (rev 35879)
@@ -344,9 +344,7 @@
 
 	/* Convert to a string */
 	{
-		char conv_str[6] = {'%', '.', '0', 'l', 'f', '\0'}; /* "%.2lf" when prec is 2, must be under 10 */
-		conv_str[2] += prec;
-		len= snprintf(str, len_max, conv_str, (float)value_conv);
+		len= snprintf(str, len_max, "%.*lf", prec, value_conv);
 
 		if(len >= len_max)
 			len= len_max;

Modified: trunk/blender/source/blender/editors/interface/interface.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface.c	2011-03-29 14:13:11 UTC (rev 35878)
+++ trunk/blender/source/blender/editors/interface/interface.c	2011-03-29 14:36:55 UTC (rev 35879)
@@ -1528,18 +1528,13 @@
 			if(ui_is_but_unit(but)) {
 				ui_get_but_string_unit(but, str, maxlen, value, 0);
 			}
-			else if(but->a2) { /* amount of digits defined */
-				if(but->a2==1) BLI_snprintf(str, maxlen, "%.1f", value);
-				else if(but->a2==2) BLI_snprintf(str, maxlen, "%.2f", value);
-				else if(but->a2==3) BLI_snprintf(str, maxlen, "%.3f", value);
-				else if(but->a2==4) BLI_snprintf(str, maxlen, "%.4f", value);
-				else if(but->a2==5) BLI_snprintf(str, maxlen, "%.5f", value);
-				else if(but->a2==6) BLI_snprintf(str, maxlen, "%.6f", value);
-				else if(but->a2==7) BLI_snprintf(str, maxlen, "%.7f", value);
-				else BLI_snprintf(str, maxlen, "%.4f", value);
+			else {
+				int prec= (int)but->a2;
+				if(prec==0) prec= 3;
+				else CLAMP(prec, 1, 7);
+
+				BLI_snprintf(str, maxlen, "%.*f", prec, value);
 			}
-			else
-				BLI_snprintf(str, maxlen, "%.3f", value);
 		}
 		else
 			BLI_snprintf(str, maxlen, "%d", (int)value);
@@ -1997,19 +1992,12 @@
 				ui_get_but_string_unit(but, new_str, sizeof(new_str), value, TRUE);
 				BLI_snprintf(but->drawstr, sizeof(but->drawstr), "%s%s", but->str, new_str);
 			}
-			else if(but->a2) { /* amount of digits defined */
-				if(but->a2==1) sprintf(but->drawstr, "%s%.1f", but->str, value);
-				else if(but->a2==2) sprintf(but->drawstr, "%s%.2f", but->str, value);
-				else if(but->a2==3) sprintf(but->drawstr, "%s%.3f", but->str, value);
-				else if(but->a2==4) sprintf(but->drawstr, "%s%.4f", but->str, value);
-				else if(but->a2==5) sprintf(but->drawstr, "%s%.5f", but->str, value);
-				else if(but->a2==6) sprintf(but->drawstr, "%s%.6f", but->str, value);
-				else if(but->a2==7) sprintf(but->drawstr, "%s%.7f", but->str, value);
-				else sprintf(but->drawstr, "%s%.4f", but->str, value);
-			}
 			else {
-				if(but->hardmax<10.001f) sprintf(but->drawstr, "%s%.3f", but->str, value);
-				else sprintf(but->drawstr, "%s%.2f", but->str, value);
+				int prec= (int)but->a2;
+				if(prec==0) prec= (but->hardmax < 10.001f) ? 3 : 2;
+				else CLAMP(prec, 1, 7);
+
+				BLI_snprintf(but->drawstr, sizeof(but->drawstr), "%s%.*f", but->str, prec, value);
 			}
 		}
 		else {
@@ -2026,22 +2014,16 @@
 
 	case LABEL:
 		if(ui_is_but_float(but)) {
+			int prec= (int)but->a2;
 			value= ui_get_but_val(but);
-			if(but->a2) { /* amount of digits defined */
-				if(but->a2==1) sprintf(but->drawstr, "%s%.1f", but->str, value);
-				else if(but->a2==2) sprintf(but->drawstr, "%s%.2f", but->str, value);
-				else if(but->a2==3) sprintf(but->drawstr, "%s%.3f", but->str, value);
-				else if(but->a2==4) sprintf(but->drawstr, "%s%.4f", but->str, value);
-				else if(but->a2==5) sprintf(but->drawstr, "%s%.5f", but->str, value);
-				else if(but->a2==6) sprintf(but->drawstr, "%s%.6f", but->str, value);
-				else if(but->a2==7) sprintf(but->drawstr, "%s%.7f", but->str, value);
-				else sprintf(but->drawstr, "%s%.4f", but->str, value);
-			}
-			else {
-				sprintf(but->drawstr, "%s%.2f", but->str, value);
-			}
+			if(prec==0) prec= 3;
+			else CLAMP(prec, 1, 7);
+
+			BLI_snprintf(but->drawstr, sizeof(but->drawstr), "%s%.*f", but->str, prec, value);
 		}
-		else strncpy(but->drawstr, but->str, UI_MAX_DRAW_STR);
+		else {
+			strncpy(but->drawstr, but->str, UI_MAX_DRAW_STR);
+		}
 		
 		break;
 




More information about the Bf-blender-cvs mailing list