From 2b5bc5d1a81579a76c13e638de2592e2c39c73f0 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Wed, 16 Nov 1994 15:39:16 -0200 Subject: new module for memory allocation --- iolib.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) (limited to 'iolib.c') diff --git a/iolib.c b/iolib.c index fbb9081e..2cfb8af7 100644 --- a/iolib.c +++ b/iolib.c @@ -3,18 +3,16 @@ ** Input/output library to LUA */ -char *rcs_iolib="$Id: iolib.c,v 1.14 1994/10/19 17:02:20 celes Exp roberto $"; +char *rcs_iolib="$Id: iolib.c,v 1.15 1994/11/13 14:54:18 roberto Exp roberto $"; -#include -#include #include #include -#include #include -#ifdef __GNUC__ -#include -#endif +#include +#include +#include +#include "mem.h" #include "lua.h" #include "lualib.h" @@ -215,7 +213,6 @@ static void io_read (void) } else { - char *ptr; double d; ungetc (c, in); if (fscanf (in, "%s", s) != 1) @@ -223,8 +220,7 @@ static void io_read (void) lua_pushnil (); return; } - d = strtod (s, &ptr); - if (!(*ptr)) + if (sscanf(s, "%lf %*c", &d) == 1) { lua_pushnumber (d); return; @@ -327,20 +323,20 @@ static void io_readuntil (void) else d = *lua_getstring(lo); - s = calloc(n+1, sizeof(char)); + s = newvector(n+1, char); while((c = fgetc(in)) != EOF && c != d) { if (m==n) { n *= 2; - s = realloc(s, (n+1)*sizeof(char)); + s = growvector(s, n+1, char); } s[m++] = c; } if (c != EOF) ungetc(c,in); s[m] = 0; lua_pushstring(s); - free(s); + luaI_free(s); } -- cgit v1.2.3-55-g6feb