bugfix: save previous file when dropping a new one on

This commit is contained in:
Kartik K. Agaram 2022-06-29 17:58:58 -07:00
parent bfbe73e0ef
commit d009390cc4
2 changed files with 35 additions and 0 deletions

View File

@ -190,6 +190,11 @@ function initialize_font_settings(font_height)
end
function App.filedropped(file)
-- first make sure to save edits on any existing file
if Next_save then
save_to_disk(Lines, Filename)
end
-- clear the slate for the new file
App.initialize_globals() -- in particular, forget all undo history
Filename = file:getFilename()
file:open('r')

View File

@ -37,6 +37,36 @@ function test_drop_file()
check_eq(Lines[3].data, 'ghi', 'F - test_drop_file/lines:3')
end
function test_drop_file_saves_previous()
io.write('\ntest_drop_file_saves_previous')
App.screen.init{width=Margin_left+300, height=300}
-- initially editing a file called foo that hasn't been saved to filesystem yet
Lines = load_array{'abc', 'def'}
Filename = 'foo'
schedule_save()
-- now drag a new file bar from the filesystem
App.filesystem['bar'] = 'abc\ndef\nghi\n'
local fake_dropped_file = {
opened = false,
getFilename = function(self)
return 'bar'
end,
open = function(self)
self.opened = true
end,
lines = function(self)
assert(self.opened)
return App.filesystem['bar']:gmatch('[^\n]+')
end,
close = function(self)
self.opened = false
end,
}
App.filedropped(fake_dropped_file)
-- filesystem now contains a file called foo
check_eq(App.filesystem['foo'], 'abc\ndef\n', 'F - test_drop_file_saves_previous')
end
function test_adjust_line_width()
io.write('\ntest_adjust_line_width')
Filename = 'foo'