diff --git a/src/script.c b/src/script.c index 76b5933..13d20da 100644 --- a/src/script.c +++ b/src/script.c @@ -60,14 +60,32 @@ static char script_init[] = " local str = ''\n" " while true do\n" " local c = tio.read(1, timeout)\n" -" if c then\n" -" str = str .. c\n" -" if string.match(str, pattern) then\n" -" return string.match(str, pattern)\n" -" end\n" -" else\n" +" if c == nil then\n" " return nil, str\n" " end\n" +" str = str .. c\n" +" if string.match(str, pattern) then\n" +" return string.match(str, pattern), str\n" +" end\n" +" end\n" +"end\n" +"tio.expects = function(patterns, timeout)\n" +" local str = ''\n" +" if type(patterns) ~= 'table' then\n" +" patterns = { patterns }\n" +" end\n" +" while true do\n" +" local c = tio.read(1, timeout)\n" +" if c == nil then\n" +" return nil, nil, str\n" +" end\n" +" str = str .. c\n" +" for idx, pat in ipairs(patterns) do\n" +" local captured = { string.match(str, pat) }\n" +" if #captured > 0 then\n" +" return idx, captured, str\n" +" end\n" +" end\n" " end\n" "end\n" "tio.alwaysecho = true\n"