diff --git a/runtime/lua/nvim/zip.lua b/runtime/lua/nvim/zip.lua index eac1e54b62..ed2ccdcfa4 100644 --- a/runtime/lua/nvim/zip.lua +++ b/runtime/lua/nvim/zip.lua @@ -198,8 +198,8 @@ local function extract_with_password(command, source, path, dir) local function wanted() return exited ~= nil - or buffered:find('password: $') ~= nil - or buffered:find('reenter: $') ~= nil + or buffered:find('password: ', 1, true) ~= nil + or buffered:find('reenter: ', 1, true) ~= nil end local reenter = false diff --git a/test/functional/plugin/zip_spec.lua b/test/functional/plugin/zip_spec.lua index a8592b2704..95b760fb05 100644 --- a/test/functional/plugin/zip_spec.lua +++ b/test/functional/plugin/zip_spec.lua @@ -447,14 +447,16 @@ describe('nvim.zip', function() local reported = exec_lua(function(uri) vim.api.nvim_input('no1no2no3') vim.api.nvim_cmd({ cmd = 'edit', args = { uri }, magic = { file = false, bar = false } }, {}) - return vim.wait(1000, function() - return vim.api - .nvim_exec2('messages', { output = true }).output - :find('incorrect password', 1, true) ~= nil + local function messages() + return vim.api.nvim_exec2('messages', { output = true }).output + end + vim.wait(1000, function() + return messages():find('zip: ', 1, true) ~= nil end) + return messages() end, ('zip://%s/secret.txt'):format(archive)) - eq(true, reported) + t.matches('incorrect password', reported) end) describe('extract', function()