Lua fix failure to read lines longer than LUAL_BUFFERSIZE

Readline didn't handle lines longer than LUAL_BUFFERSIZE it now
reads these in chunks.

Change-Id: Iffe12447e5441ff6b479ce3de1d36df64c276183
diff --git a/apps/plugins/lua/liolib.c b/apps/plugins/lua/liolib.c
index 6744efe..fb67654 100644
--- a/apps/plugins/lua/liolib.c
+++ b/apps/plugins/lua/liolib.c
@@ -269,22 +269,19 @@
   luaL_buffinit(L, &b);
   for (;;) {
     size_t l;
-    off_t r;
     char *p = luaL_prepbuffer(&b);
-    r = rb->read_line(*f, p, LUAL_BUFFERSIZE);
+    off_t r = rb->read_line(*f, p, LUAL_BUFFERSIZE); /* does not include `eol' */
+    if (r <= 0) {  /* eof? */
+      luaL_pushresult(&b);  /* close buffer */
+      return (lua_objlen(L, -1) > 0);  /* check whether read something */
+    }
     l = strlen(p);
+    luaL_addsize(&b, l);
+    if(r >= LUAL_BUFFERSIZE - 1)
+      continue; /* more to read */
 
-    if (l == 0 || p[l-1] != '\n')
-      luaL_addsize(&b, l);
-    else {
-      luaL_addsize(&b, l - 1);  /* do not include `eol' */
-      luaL_pushresult(&b);  /* close buffer */
-      return 1;  /* read at least an `eol' */
-    }
-    if (r < LUAL_BUFFERSIZE) {  /* eof? */
-      luaL_pushresult(&b);  /* close buffer */
-      return (r > 0);  /* check whether read something */
-    }
+    luaL_pushresult(&b);  /* close buffer */
+    return 1;  /* we read at least 1 character */
   }
 }