summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmil Renner Berthing <esmil@mailme.dk>2013-02-05 22:01:34 +0100
committerEmil Renner Berthing <esmil@mailme.dk>2013-02-06 08:46:27 +0100
commit0b0c4006ace26c3d26a666cb012c25e844ed380c (patch)
treec580210581a44a521ab541d6f6297c0812887002
parent1074e609707f2143450c7101075137249e979ca9 (diff)
downloadlem-0b0c4006ace26c3d26a666cb012c25e844ed380c.tar.gz
lem-0b0c4006ace26c3d26a666cb012c25e844ed380c.tar.xz
lem-0b0c4006ace26c3d26a666cb012c25e844ed380c.zip
io: fix empty string skipping code
-rw-r--r--lem/io/file.c4
-rw-r--r--lem/io/stream.c4
2 files changed, 4 insertions, 4 deletions
diff --git a/lem/io/file.c b/lem/io/file.c
index e3289a1..c9f675a 100644
--- a/lem/io/file.c
+++ b/lem/io/file.c
@@ -258,7 +258,7 @@ file_write(lua_State *T)
idx = 1;
do {
str = luaL_checklstring(T, ++idx, &len);
- } while (len == 0 && idx <= top);
+ } while (len == 0 && idx < top);
for (i = idx+1; i <= top; i++)
(void)luaL_checkstring(T, i);
@@ -267,7 +267,7 @@ file_write(lua_State *T)
return io_closed(T);
if (f->a.T != NULL)
return io_busy(T);
- if (idx > top) {
+ if (len == 0) {
lua_pushboolean(T, 1);
return 1;
}
diff --git a/lem/io/stream.c b/lem/io/stream.c
index cfbc1ed..efa2781 100644
--- a/lem/io/stream.c
+++ b/lem/io/stream.c
@@ -275,7 +275,7 @@ stream_write(lua_State *T)
idx = 1;
do {
out = luaL_checklstring(T, ++idx, &out_len);
- } while (out_len == 0 && idx <= top);
+ } while (out_len == 0 && idx < top);
for (i = idx+1; i <= top; i++)
(void)luaL_checkstring(T, i);
@@ -284,7 +284,7 @@ stream_write(lua_State *T)
return io_closed(T);
if (s->w.data != NULL)
return io_busy(T);
- if (idx > top) {
+ if (out_len == 0) {
lua_pushboolean(T, 1);
return 1;
}