aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakase <20792268+takase1121@users.noreply.github.com>2024-06-22 22:52:51 +0800
committerGitHub <noreply@github.com>2024-06-22 10:52:51 -0400
commit45ff787c085adff0db824590476ea7274cbe6114 (patch)
treef228df4f04f576d1b15c5d350a3e84682f1c751d
parentd737011af25e7791b085df4e84edf9bd14ec9ce2 (diff)
downloadlite-xl-plugin-manager-45ff787c085adff0db824590476ea7274cbe6114.tar.gz
lite-xl-plugin-manager-45ff787c085adff0db824590476ea7274cbe6114.zip
windows:fix argument escaping for cmd.exe (#117)
-rw-r--r--src/lpm.lua4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/lpm.lua b/src/lpm.lua
index 98be79c..eb28afb 100644
--- a/src/lpm.lua
+++ b/src/lpm.lua
@@ -1526,6 +1526,10 @@ function Bottle:run(args)
local path = not self.is_system and (self.local_path .. PATHSEP .. "lite-xl" .. EXECUTABLE_EXTENSION) or self.lite_xl:get_binary_path()
if not system.stat(path) then error("cannot find bottle executable " .. path) end
local line = path .. (#args > 0 and " " or "") .. table.concat(common.map(args, function(arg)
+ if PLATFORM == "windows" then
+ -- windows uses " for quotes and needs doubling quotes for escaping them
+ return '"' .. arg:gsub('"+', function(s) return s..s end) .. '"'
+ end
return "'" .. arg:gsub("'", "'\"'\"'"):gsub("\\", "\\\\") .. "'"
end), " ")
if VERBOSE then log.action("Running " .. line) end