about summary refs log tree commit diff stats
path: root/source_file.lua
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2023-05-30 00:00:43 -0700
committerKartik K. Agaram <vc@akkartik.com>2023-05-30 00:02:09 -0700
commitda21512440d0fea412ad43c3d0d340bba586a700 (patch)
treeb9454aff751cc5fad5a7cb6421abc140cb1b9002 /source_file.lua
parenteb55e18e1dc6f45cdd26b815467f0bd2bf801787 (diff)
downloadlines.love-da21512440d0fea412ad43c3d0d340bba586a700.tar.gz
bugfix: drawings in source editor
Broken since 2022-09 X-(

Scenario:
* switch to source editor
* draw a line
* wait 3 seconds

Before this commit the app would crash and then fail to restart until
you deleted the created .lua file from save dir.

This is not the first time I've confused Lua's files and LÖVE's
droppedFile objects. Just never rely on multiple args in file:write().
Diffstat (limited to 'source_file.lua')
-rw-r--r--source_file.lua15
1 files changed, 10 insertions, 5 deletions
diff --git a/source_file.lua b/source_file.lua
index 3adab1f..3eaf6c3 100644
--- a/source_file.lua
+++ b/source_file.lua
@@ -93,21 +93,26 @@ function store_drawing(outfile, drawing)
   outfile:write('```lines\n')
   for _,shape in ipairs(drawing.shapes) do
     if shape.mode == 'freehand' then
-      outfile:write(json.encode(shape), '\n')
+      outfile:write(json.encode(shape))
+      outfile:write('\n')
     elseif shape.mode == 'line' or shape.mode == 'manhattan' then
       local line = json.encode({mode=shape.mode, p1=drawing.points[shape.p1], p2=drawing.points[shape.p2]})
-      outfile:write(line, '\n')
+      outfile:write(line)
+      outfile:write('\n')
     elseif shape.mode == 'polygon' or shape.mode == 'rectangle' or shape.mode == 'square' then
       local obj = {mode=shape.mode, vertices={}}
       for _,p in ipairs(shape.vertices) do
         table.insert(obj.vertices, drawing.points[p])
       end
       local line = json.encode(obj)
-      outfile:write(line, '\n')
+      outfile:write(line)
+      outfile:write('\n')
     elseif shape.mode == 'circle' then
-      outfile:write(json.encode({mode=shape.mode, center=drawing.points[shape.center], radius=shape.radius}), '\n')
+      outfile:write(json.encode({mode=shape.mode, center=drawing.points[shape.center], radius=shape.radius}))
+      outfile:write('\n')
     elseif shape.mode == 'arc' then
-      outfile:write(json.encode({mode=shape.mode, center=drawing.points[shape.center], radius=shape.radius, start_angle=shape.start_angle, end_angle=shape.end_angle}), '\n')
+      outfile:write(json.encode({mode=shape.mode, center=drawing.points[shape.center], radius=shape.radius, start_angle=shape.start_angle, end_angle=shape.end_angle}))
+      outfile:write('\n')
     elseif shape.mode == 'deleted' then
       -- ignore
     else