about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2022-09-05 12:39:28 -0700
committerKartik K. Agaram <vc@akkartik.com>2022-09-05 12:39:28 -0700
commitfdb35ce12bd8b2e30522ada07ec756a626d01a09 (patch)
tree08f3cdcd4a87503b5ab06eef6d361ccd70822805
parent5ab541f160132d49697a44dea9e418ae10bd6533 (diff)
downloadview.love-fdb35ce12bd8b2e30522ada07ec756a626d01a09.tar.gz
bugfix: save modified files in save directory
scenario: open app from .love file, press ctrl+e

Before this change the source file showed up empty.
-rw-r--r--app.lua28
1 files changed, 26 insertions, 2 deletions
diff --git a/app.lua b/app.lua
index 2135fb0..69507ec 100644
--- a/app.lua
+++ b/app.lua
@@ -383,8 +383,32 @@ function App.disable_tests()
   App.newText = love.graphics.newText
   App.screen.draw = love.graphics.draw
   App.width = function(text) return text:getWidth() end
-  App.open_for_reading = function(filename) return io.open(filename, 'r') end
-  App.open_for_writing = function(filename) return io.open(filename, 'w') end
+  if Current_app == nil or Current_app == 'run' then
+    App.open_for_reading = function(filename) return io.open(filename, 'r') end
+    App.open_for_writing = function(filename) return io.open(filename, 'w') end
+  elseif Current_app == 'source' then
+    -- HACK: source editor requires a couple of different foundational definitions
+    App.open_for_reading =
+        function(filename)
+          local result = love.filesystem.newFile(filename)
+          local ok, err = result:open('r')
+          if ok then
+            return result
+          else
+            return ok, err
+          end
+        end
+    App.open_for_writing =
+        function(filename)
+          local result = love.filesystem.newFile(filename)
+          local ok, err = result:open('w')
+          if ok then
+            return result
+          else
+            return ok, err
+          end
+        end
+  end
   App.getTime = love.timer.getTime
   App.getClipboardText = love.system.getClipboardText
   App.setClipboardText = love.system.setClipboardText