Browse Source

in 'lua_number2strx', use the call to 'l_sprintf' to add exponent
to result directly

Roberto Ierusalimschy 10 years ago
parent
commit
5273477cb9
1 changed files with 3 additions and 4 deletions
  1. 3 4
      lstrlib.c

+ 3 - 4
lstrlib.c

@@ -1,5 +1,5 @@
 /*
-** $Id: lstrlib.c,v 1.230 2015/06/18 14:26:05 roberto Exp roberto $
+** $Id: lstrlib.c,v 1.231 2015/06/24 18:25:10 roberto Exp roberto $
 ** Standard library for string operations and pattern-matching
 ** See Copyright Notice in lua.h
 */
@@ -834,9 +834,8 @@ static int num2straux (char *buff, int sz, lua_Number x) {
   if (x != x || x == HUGE_VAL || x == -HUGE_VAL)  /* inf or NaN? */
     return l_sprintf(buff, sz, LUA_NUMBER_FMT, x);  /* equal to '%g' */
   else if (x == 0) {  /* can be -0... */
-    l_sprintf(buff, sz, LUA_NUMBER_FMT, x);  /* create "0" or "-0" */
-    strcat(buff, "x0p+0");  /* add exponent to that */
-    return strlen(buff);
+    /* create "0" or "-0" followed by exponent */
+    return l_sprintf(buff, sz, LUA_NUMBER_FMT "x0p+0", x);
   }
   else {
     int e;