aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>1996-11-07 18:26:19 -0200
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>1996-11-07 18:26:19 -0200
commit2f19e0ba164d38989dea4a3389753ed75858e5a1 (patch)
treee426e5d13343b48eda46ec96bfba4594fec3c657
parentab7fdcbbed7a385b0e65f7c9928c4eef55280add (diff)
downloadlua-2f19e0ba164d38989dea4a3389753ed75858e5a1.tar.gz
lua-2f19e0ba164d38989dea4a3389753ed75858e5a1.tar.bz2
lua-2f19e0ba164d38989dea4a3389753ed75858e5a1.zip
SunOS is not ANSI about the return value of "sprintf".
-rw-r--r--strlib.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/strlib.c b/strlib.c
index 1277bb12..d7b9d73f 100644
--- a/strlib.c
+++ b/strlib.c
@@ -3,7 +3,7 @@
3** String library to LUA 3** String library to LUA
4*/ 4*/
5 5
6char *rcs_strlib="$Id: strlib.c,v 1.30 1996/10/31 17:26:04 roberto Exp roberto $"; 6char *rcs_strlib="$Id: strlib.c,v 1.31 1996/10/31 20:18:05 roberto Exp roberto $";
7 7
8#include <string.h> 8#include <string.h>
9#include <stdio.h> 9#include <stdio.h>
@@ -493,25 +493,24 @@ static void str_format (void)
493 switch (*strfrmt++) { 493 switch (*strfrmt++) {
494 case 'q': 494 case 'q':
495 luaI_addquoted(lua_check_string(arg++, "format")); 495 luaI_addquoted(lua_check_string(arg++, "format"));
496 break; 496 continue;
497 case 's': { 497 case 's': {
498 char *s = lua_check_string(arg++, "format"); 498 char *s = lua_check_string(arg++, "format");
499 buff = openspace(strlen(s)); 499 buff = openspace(strlen(s));
500 lbuffer.size += sprintf(buff, form, s); 500 sprintf(buff, form, s);
501 break; 501 break;
502 } 502 }
503 case 'c': case 'd': case 'i': case 'o': 503 case 'c': case 'd': case 'i': case 'o':
504 case 'u': case 'x': case 'X': 504 case 'u': case 'x': case 'X':
505 lbuffer.size += sprintf(buff, form, 505 sprintf(buff, form, (int)lua_check_number(arg++, "format"));
506 (int)lua_check_number(arg++, "format"));
507 break; 506 break;
508 case 'e': case 'E': case 'f': case 'g': 507 case 'e': case 'E': case 'f': case 'g':
509 lbuffer.size += sprintf(buff, form, 508 sprintf(buff, form, lua_check_number(arg++, "format"));
510 lua_check_number(arg++, "format"));
511 break; 509 break;
512 default: /* also treat cases 'pnLlh' */ 510 default: /* also treat cases 'pnLlh' */
513 lua_error("invalid format option in function `format'"); 511 lua_error("invalid format option in function `format'");
514 } 512 }
513 lbuffer.size += strlen(buff);
515 } 514 }
516 } 515 }
517 lua_pushstring(luaI_addchar(0)); /* push the result */ 516 lua_pushstring(luaI_addchar(0)); /* push the result */