diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2022-06-29 17:58:58 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2022-06-29 17:58:58 -0700 |
commit | d009390cc4fa891d8c6399e12bb83567606156e2 (patch) | |
tree | 6a199e5cc448b1056209d6d5a76290d2a2c025a1 | |
parent | bfbe73e0efd2f80d5a2402ced3a93d6748319fbd (diff) | |
download | lines.love-d009390cc4fa891d8c6399e12bb83567606156e2.tar.gz |
bugfix: save previous file when dropping a new one on
-rw-r--r-- | main.lua | 5 | ||||
-rw-r--r-- | main_tests.lua | 30 |
2 files changed, 35 insertions, 0 deletions
diff --git a/main.lua b/main.lua index 63c0e8d..b63c7fc 100644 --- a/main.lua +++ b/main.lua @@ -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') diff --git a/main_tests.lua b/main_tests.lua index 495630f..a86c825 100644 --- a/main_tests.lua +++ b/main_tests.lua @@ -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' |