From a8f5717b566376a08d48f0b348a2008d0a2c32a0 Mon Sep 17 00:00:00 2001 From: TopchetoEU <36534413+TopchetoEU@users.noreply.github.com> Date: Thu, 6 Feb 2025 17:46:02 +0200 Subject: [PATCH] small fixes --- mod/core/coro.lua | 1 - mod/core/string.lua | 32 ++++++++++++++++---------------- mod/fs.lua | 6 +++++- mod/tal/cli.lua | 2 +- 4 files changed, 22 insertions(+), 19 deletions(-) diff --git a/mod/core/coro.lua b/mod/core/coro.lua index 8204ea0..ef50469 100644 --- a/mod/core/coro.lua +++ b/mod/core/coro.lua @@ -3,7 +3,6 @@ -- Written by Cosmin Apreutesei. Public Domain. -- Reworked from the (in)famous coro lib ----@diagnostic disable: duplicate-set-field local old_create = coroutine.create; local old_close = coroutine.close; diff --git a/mod/core/string.lua b/mod/core/string.lua index 47d5a02..58025dc 100644 --- a/mod/core/string.lua +++ b/mod/core/string.lua @@ -50,21 +50,21 @@ return function (glob) --- @param self string function glob.string:quotesh() return "'" .. self - :gsub("*", "\\*") - :gsub("?", "\\?") - :gsub("~", "\\~") - :gsub("$", "\\$") - :gsub("&", "\\&") - :gsub("|", "\\|") - :gsub(";", "\\;") - :gsub("<", "\\<") - :gsub(">", "\\>") - :gsub("(", "\\)") - :gsub("[", "\\]") - :gsub("{", "\\}") - :gsub("%\\", "\\\\") - :gsub("\'", "\\\'") - :gsub("\"", "\\\"") - :gsub("`", "\\`") .. "'"; + :gsub("%*", "\\*") + :gsub("%?", "\\?") + :gsub("%~", "\\~") + :gsub("%$", "\\$") + :gsub("%&", "\\&") + :gsub("%|", "\\|") + :gsub("%;", "\\;") + :gsub("%<", "\\<") + :gsub("%>", "\\>") + :gsub("%(", "\\)") + :gsub("%[", "\\]") + :gsub("%{", "\\}") + :gsub("%%\\", "\\\\") + :gsub("%\'", "\\\'") + :gsub("%\"", "\\\"") + :gsub("%`", "\\`") .. "'"; end end diff --git a/mod/fs.lua b/mod/fs.lua index 4ed0925..6c47f75 100644 --- a/mod/fs.lua +++ b/mod/fs.lua @@ -16,8 +16,12 @@ function exports.pwd() return os.getenv "PWD" or "./"; end +--- @param path string function exports.ls(path) - return os.execute("ls ") + local f = assert(io.popen("ls " .. path:quotesh())); + local res = f:read "*a"; + f:close(); + return res; end return exports; diff --git a/mod/tal/cli.lua b/mod/tal/cli.lua index aa42779..3532d67 100644 --- a/mod/tal/cli.lua +++ b/mod/tal/cli.lua @@ -213,7 +213,7 @@ function exports.main(...) elseif mod and type(mod.main) == "function" then return mod.main(...); end - end, ...); + end, unpack(args)); else return exports.repl(); end