MCPcopy Create free account
hub / github.com/EmmyLua/EmmyLuaDebugger / multiline

Function multiline

third-party/lua-5.5.0/src/lua.c:617–631  ·  view source on GitHub ↗

** Read multiple lines until a complete Lua statement or an error not ** for an incomplete statement. Start with first line already read in ** the stack. */

Source from the content-addressed store, hash-verified

615** the stack.
616*/
617static int multiline (lua_State *L) {
618 size_t len;
619 const char *line = lua_tolstring(L, 1, &len); /* get first line */
620 checklocal(line);
621 for (;;) { /* repeat until gets a complete statement */
622 int status = luaL_loadbuffer(L, line, len, "=stdin"); /* try it */
623 if (!incomplete(L, status) || !pushline(L, 0))
624 return status; /* should not or cannot try to add continuation line */
625 lua_remove(L, -2); /* remove error message (from incomplete line) */
626 lua_pushliteral(L, "\n"); /* add newline... */
627 lua_insert(L, -2); /* ...between the two lines */
628 lua_concat(L, 3); /* join them */
629 line = lua_tolstring(L, 1, &len); /* get what is has */
630 }
631}
632
633
634/*

Callers 1

loadlineFunction · 0.70

Calls 8

checklocalFunction · 0.85
luaL_loadbufferFunction · 0.85
lua_tolstringFunction · 0.70
incompleteFunction · 0.70
pushlineFunction · 0.70
lua_concatFunction · 0.70
lua_removeFunction · 0.50
lua_insertFunction · 0.50

Tested by

no test coverage detected