diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/ext/pm/file_browser.lua | 8 | ||||
-rw-r--r-- | core/file_io.lua | 11 |
2 files changed, 13 insertions, 6 deletions
diff --git a/core/ext/pm/file_browser.lua b/core/ext/pm/file_browser.lua index 9acf9bec..f48c1346 100644 --- a/core/ext/pm/file_browser.lua +++ b/core/ext/pm/file_browser.lua @@ -12,7 +12,9 @@ end function get_contents_for(full_path) local dirpath = table.concat(full_path, '/') - local out = io.popen('ls -1p "'..dirpath..'"'):read('*all') + local p = io.popen('ls -1p "'..dirpath..'"') + local out = p:read('*all') + p:close() if #out == 0 then error('No such directory: '..dirpath) return {} @@ -49,7 +51,9 @@ function perform_menu_action(menu_item, selected_item) textadept.pm.entry_text = filepath textadept.pm.activate() elseif menu_item == 'File Details' then - local out = io.popen('ls -dhl "'..filepath..'"'):read('*all') + local p = io.popen('ls -dhl "'..filepath..'"') + local out = p:read('*all') + p:close() local perms, num_dirs, owner, group, size, mod_date = out:match('^(%S+) (%S+) (%S+) (%S+) (%S+) (%S+ %S)') out = 'File details for:\n'..filepath..'\n'.. diff --git a/core/file_io.lua b/core/file_io.lua index 8adf8af8..29d7d535 100644 --- a/core/file_io.lua +++ b/core/file_io.lua @@ -46,8 +46,9 @@ end function open(filenames) if not filenames then local directory = '--filename="'..(buffer.filename or '')..'"' - filenames = io.popen('zenity --file-selection --multiple '.. - directory):read('*all') + local p = io.popen('zenity --file-selection --multiple '..directory) + filenames = p:read('*all') + p:close() end for filename in filenames:gmatch('[^|\n]+') do open_helper(filename) end end @@ -100,8 +101,10 @@ function save_as(buffer, filename) textadept.check_focused_buffer(buffer) if not filename then local directory = '--filename="'..(buffer.filename or '')..'"' - filename = io.popen('zenity --file-selection --save '.. - directory..' --confirm-overwrite'):read('*all') + local p = io.popen('zenity --file-selection --save '..directory.. + ' --confirm-overwrite') + filename = p:read('*all') + p:close() end if #filename > 0 then buffer.filename = filename:sub(1, -2) -- chomp |