rendered paste bodyIndex: firmware/common/sprintf.c
===================================================================
--- firmware/common/sprintf.c (revision 12823)
+++ firmware/common/sprintf.c (working copy)
@@ -42,7 +42,7 @@
{
char *str;
char tmpbuf[12], pad;
- int ch, width, val, sign;
+ int ch, width, val, sign, precision;
long lval, lsign;
unsigned int uval;
unsigned long ulval;
@@ -65,6 +65,17 @@
width = 10*width + ch - '0';
ch = *fmt++;
}
+
+ precision = 0;
+ if(ch == '.')
+ {
+ ch = *fmt++;
+ while (ch >= '0' && ch <= '9')
+ {
+ precision = 10*precision + ch - '0';
+ ch = *fmt++;
+ }
+ }
str = tmpbuf + sizeof tmpbuf - 1;
switch (ch)
@@ -75,6 +86,8 @@
case 's':
str = va_arg (ap, char*);
+ if(precision > 0)
+ str[precision] = '\0';
break;
case 'd':