diff options
author | mitchell <70453897+orbitalquark@users.noreply.github.com> | 2020-12-15 14:44:21 -0500 |
---|---|---|
committer | mitchell <70453897+orbitalquark@users.noreply.github.com> | 2020-12-15 14:44:21 -0500 |
commit | b3a3739eab13a076625ec5aaee7a8130f0c7a4c0 (patch) | |
tree | 7de4e814de3de5dd125d16324ff3082d4f3d4d94 | |
parent | 0ad6994a85c6dcd0db14af0224dab2675f3fc8c3 (diff) |
Do not show deleted files in recent file list.
-rw-r--r-- | core/file_io.lua | 12 | ||||
-rw-r--r-- | test/test.lua | 4 |
2 files changed, 13 insertions, 3 deletions
diff --git a/core/file_io.lua b/core/file_io.lua index 24c04926..3ba57fff 100644 --- a/core/file_io.lua +++ b/core/file_io.lua @@ -311,9 +311,15 @@ end) -- @see recent_files -- @name open_recent_file function io.open_recent_file() - local utf8_list = {} - for i = 1, #io.recent_files do - utf8_list[#utf8_list + 1] = io.recent_files[i]:iconv('UTF-8', _CHARSET) + local utf8_list, i = {}, 1 + while i <= #io.recent_files do + local filename = io.recent_files[i] + if lfs.attributes(filename) then + utf8_list[#utf8_list + 1] = io.recent_files[i]:iconv('UTF-8', _CHARSET) + i = i + 1 + else + table.remove(io.recent_files, i) + end end local button, i = ui.dialogs.filteredlist{ title = _L['Open File'], columns = _L['Filename'], items = utf8_list diff --git a/test/test.lua b/test/test.lua index 7463bfea..37f525b2 100644 --- a/test/test.lua +++ b/test/test.lua @@ -503,6 +503,10 @@ function test_file_io_open_recent_interactive() local filename = _HOME .. '/test/file_io/utf8' io.open_file(filename) buffer:close() + local tmpfile = os.tmpname() + io.open_file(tmpfile) + buffer:close() + os.remove(tmpfile) io.open_recent_file() assert_equal(buffer.filename, filename) buffer:close() |