From 67ca9c35f50bf108afa86ae74e8315053082052d Mon Sep 17 00:00:00 2001 From: Markismus Date: Mon, 11 Jan 2021 14:32:10 +0100 Subject: [PATCH] Prevent sdcv from interpreting search term starting with dash as an option (#7134) --- frontend/apps/reader/modules/readerdictionary.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/frontend/apps/reader/modules/readerdictionary.lua b/frontend/apps/reader/modules/readerdictionary.lua index fa107de14..9519ced4a 100644 --- a/frontend/apps/reader/modules/readerdictionary.lua +++ b/frontend/apps/reader/modules/readerdictionary.lua @@ -746,7 +746,7 @@ function ReaderDictionary:startSdcv(word, dict_names, fuzzy_search) break -- don't do any more lookup on additional dict_dirs end - local args = {"./sdcv", "--utf8-input", "--utf8-output", "--json-output", "--non-interactive", "--data-dir", dict_dir, word} + local args = {"./sdcv", "--utf8-input", "--utf8-output", "--json-output", "--non-interactive", "--data-dir", dict_dir} if not fuzzy_search then table.insert(args, "--exact-search") end @@ -756,6 +756,8 @@ function ReaderDictionary:startSdcv(word, dict_names, fuzzy_search) table.insert(args, opt) end end + table.insert(args, "--") -- prevent word starting with a "-" to be interpreted as a sdcv option + table.insert(args, word) local cmd = util.shell_escape(args) -- cmd = "sleep 7 ; " .. cmd -- uncomment to simulate long lookup time