start uppercasing globals

[?]
May 18, 2022, 2:27 AM
MGOQ5XAVFTWZPBG2O5ZTGSEKU6BRJKQZLDV6CM4737VD2FAEB5JQC

Dependencies

  • [2] M36DBSDE bit more polish to help screen
  • [3] BJ5X5O4A let's prevent the text cursor from ever getting on a drawing
  • [4] Z4KNS42N to open a file without a terminal, drag it on!
  • [5] VVXVV2D2 change data model; text can now have metadata
  • [6] V5TP27FP ctrl-+ and ctrl-- to adjust font size
  • [7] PWHZPJJM always show current filename in window title
  • [8] 6F6DF5T3 .
  • [9] QU7NHFOV show cursor
  • [10] XJ5J7LDI start imposing some organization
  • [11] SNDZOK6Q slightly less strange now that we have the same two ways to move points as any other operation
  • [12] JS6JSYOT online contextual help
  • [13] YKRF5V3Z starting to load/save
  • [14] KCIM5UTV revert: back to freehand
  • [15] QW5KQQTD fix a comment
  • [16] HDCVGN6G save each line's y coordinate, whether it's a drawing or not
  • [17] IHG5RXP5 allow text to be typed while mouse hovers over drawing
  • [18] W4UVZETR 2 regressions:
  • [19] ZOOY3ME4 new mode: circle arc
  • [20] 3XD6M3CF refactor
  • [21] JCSLDGAH beginnings of support for multiple shapes
  • [22] EFMLTMZG bugfix: restrict strokes to the drawing they started in
  • [23] U76D4P36 fix a typo
  • [24] MNWHXPBL more lightweight; select just the stroke at the mouse
  • [25] QCQHLMST always have a filename
  • [26] IFGAJAF7 add a level of indirection to vertices of shapes
  • [27] 3D5RFWHV stop handling drawings in cursor_pos computations
  • [28] XX7G2FFJ intermingle freehand line drawings with text
  • [29] 2INHXC3K position cursor by clicking on text
  • [30] OTIBCAUJ love2d scaffold
  • [31] EDY3RQUL gracefully handle a non-existent filename at the commandline
  • [32] JVRL5TWL store device-independent coordinates inside drawings
  • [33] OFA3PRBS autosave on keystrokes
  • [34] ZUOL7X6V move
  • [35] UTF73CBL reorg
  • [36] TRCAEE2A clip drawings inside the border
  • [37] G77XIN7M selecting a stroke
  • [38] 6PUNJS5B backspace
  • [39] HWPK4SMP new mode: manhattan
  • [40] FMQ74DP3 new mode: circle
  • [41] WDWXNW7V slightly strange way to move points
  • [42] H7OEU6WP experimental approach to combining keyboard and mouse while drawing
  • [43] 4NDYV4WD fix 2 bugs in line selection
  • [44] ZD63LJ2T bugfix: keep the click to create a new drawing from creating a new shape in the drawing
  • [45] GCUARQ2G bugfix: clipping in line and manhattan mode
  • [46] 5T2E3PDV couple of bugfixes to file-handling
  • [47] NL5J7Z5H new mode: polygon
  • [48] FBDRL6LH delete points or shapes
  • [49] IYW7X3WL left/right cursor movement, deleting characters
  • [50] 3CS5KKCI up/down cursor movement
  • [51] 6LJZN727 handle chords
  • [52] RJGZD4IN binary search to most natural up/down with proportional fonts
  • [53] TNTYISW6 rename
  • [54] TEIKBO2T don't try to append text to drawings

Change contents

  • replacement in main.lua at line 32
    [4.1237][4.190:223]()
    lines = {{mode='text', data=''}}
    [4.1237]
    [4.14]
    Lines = {{mode='text', data=''}}
  • replacement in main.lua at line 39
    [4.148][4.224:264]()
    cursor_pos = #lines[cursor_line].data+1
    [4.148]
    [4.1238]
    cursor_pos = #Lines[cursor_line].data+1
  • replacement in main.lua at line 74
    [4.163][4.25:60](),[4.60][3.365:398]()
    lines = load_from_disk(filename)
    for i,line in ipairs(lines) do
    [4.163]
    [3.398]
    Lines = load_from_disk(filename)
    for i,line in ipairs(Lines) do
  • replacement in main.lua at line 86
    [4.88][4.88:119]()
    lines = load_from_file(file)
    [4.88]
    [4.1]
    Lines = load_from_file(file)
  • replacement in main.lua at line 88
    [4.16][3.467:500]()
    for i,line in ipairs(lines) do
    [4.16]
    [3.500]
    for i,line in ipairs(Lines) do
  • replacement in main.lua at line 102
    [4.58][4.3:36]()
    for i,line in ipairs(lines) do
    [4.58]
    [4.14]
    for i,line in ipairs(Lines) do
  • replacement in main.lua at line 109
    [4.500][4.318:428]()
    table.insert(lines, i, {mode='drawing', y=y, h=256/2, points={}, shapes={}, pending={}})
    [4.500]
    [3.569]
    table.insert(Lines, i, {mode='drawing', y=y, h=256/2, points={}, shapes={}, pending={}})
  • replacement in main.lua at line 180
    [4.109][4.3:29](),[4.203][4.3:29](),[4.1391][4.3:29](),[4.29][4.696:780]()
    if lines.current then
    if lines.current.mode == 'drawing' then
    local drawing = lines.current
    [4.109]
    [4.2]
    if Lines.current then
    if Lines.current.mode == 'drawing' then
    local drawing = Lines.current
  • replacement in main.lua at line 196
    [4.61][4.61:95]()
    local drawing = lines.current
    [4.61]
    [4.95]
    local drawing = Lines.current
  • replacement in main.lua at line 209
    [4.2][4.143:176]()
    for i,line in ipairs(lines) do
    [4.2]
    [4.176]
    for i,line in ipairs(Lines) do
  • replacement in main.lua at line 232
    [4.967][4.967:999]()
    lines.current = drawing
    [4.967]
    [4.999]
    Lines.current = drawing
  • replacement in main.lua at line 242
    [4.301][4.129:157](),[4.157][4.1650:1739](),[4.1650][4.1650:1739]()
    elseif lines.current then
    if lines.current.pending then
    if lines.current.pending.mode == 'freehand' then
    [4.301]
    [4.1739]
    elseif Lines.current then
    if Lines.current.pending then
    if Lines.current.pending.mode == 'freehand' then
  • replacement in main.lua at line 246
    [4.1800][4.70:136](),[4.136][4.1800:1855](),[4.1800][4.1800:1855](),[4.1855][4.137:440]()
    table.insert(lines.current.shapes, lines.current.pending)
    elseif lines.current.pending.mode == 'line' then
    local mx,my = coord(x-16), coord(y-lines.current.y)
    if mx >= 0 and mx < 256 and my >= 0 and my < lines.current.h then
    local j = insert_point(lines.current.points, mx,my)
    lines.current.pending.p2 = j
    table.insert(lines.current.shapes, lines.current.pending)
    [4.1800]
    [4.440]
    table.insert(Lines.current.shapes, Lines.current.pending)
    elseif Lines.current.pending.mode == 'line' then
    local mx,my = coord(x-16), coord(y-Lines.current.y)
    if mx >= 0 and mx < 256 and my >= 0 and my < Lines.current.h then
    local j = insert_point(Lines.current.points, mx,my)
    Lines.current.pending.p2 = j
    table.insert(Lines.current.shapes, Lines.current.pending)
  • replacement in main.lua at line 254
    [4.452][4.3:189](),[4.630][4.3:189](),[4.189][4.453:527]()
    elseif lines.current.pending.mode == 'manhattan' then
    local p1 = lines.current.points[lines.current.pending.p1]
    local mx,my = coord(x-16), coord(y-lines.current.y)
    if mx >= 0 and mx < 256 and my >= 0 and my < lines.current.h then
    [4.452]
    [4.527]
    elseif Lines.current.pending.mode == 'manhattan' then
    local p1 = Lines.current.points[Lines.current.pending.p1]
    local mx,my = coord(x-16), coord(y-Lines.current.y)
    if mx >= 0 and mx < 256 and my >= 0 and my < Lines.current.h then
  • replacement in main.lua at line 259
    [4.583][4.583:691]()
    local j = insert_point(lines.current.points, mx, p1.y)
    lines.current.pending.p2 = j
    [4.583]
    [4.691]
    local j = insert_point(Lines.current.points, mx, p1.y)
    Lines.current.pending.p2 = j
  • replacement in main.lua at line 262
    [4.706][4.706:814]()
    local j = insert_point(lines.current.points, p1.x, my)
    lines.current.pending.p2 = j
    [4.706]
    [4.814]
    local j = insert_point(Lines.current.points, p1.x, my)
    Lines.current.pending.p2 = j
  • replacement in main.lua at line 265
    [4.828][4.828:1044]()
    local p2 = lines.current.points[lines.current.pending.p2]
    love.mouse.setPosition(16+pixels(p2.x), lines.current.y+pixels(p2.y))
    table.insert(lines.current.shapes, lines.current.pending)
    [4.828]
    [4.464]
    local p2 = Lines.current.points[Lines.current.pending.p2]
    love.mouse.setPosition(16+pixels(p2.x), Lines.current.y+pixels(p2.y))
    table.insert(Lines.current.shapes, Lines.current.pending)
  • replacement in main.lua at line 269
    [4.476][4.3:325]()
    elseif lines.current.pending.mode == 'polygon' then
    local mx,my = coord(x-16), coord(y-lines.current.y)
    if mx >= 0 and mx < 256 and my >= 0 and my < lines.current.h then
    local j = insert_point(lines.current.points, mx,my)
    table.insert(lines.current.shapes, lines.current.pending)
    [4.476]
    [4.325]
    elseif Lines.current.pending.mode == 'polygon' then
    local mx,my = coord(x-16), coord(y-Lines.current.y)
    if mx >= 0 and mx < 256 and my >= 0 and my < Lines.current.h then
    local j = insert_point(Lines.current.points, mx,my)
    table.insert(Lines.current.shapes, Lines.current.pending)
  • replacement in main.lua at line 275
    [4.337][4.337:403](),[4.403][4.3:415]()
    table.insert(lines.current.shapes, lines.current.pending)
    elseif lines.current.pending.mode == 'circle' then
    local mx,my = coord(x-16), coord(y-lines.current.y)
    if mx >= 0 and mx < 256 and my >= 0 and my < lines.current.h then
    local center = lines.current.points[lines.current.pending.center]
    lines.current.pending.radius = math.dist(center.x,center.y, mx,my)
    table.insert(lines.current.shapes, lines.current.pending)
    [4.337]
    [4.415]
    table.insert(Lines.current.shapes, Lines.current.pending)
    elseif Lines.current.pending.mode == 'circle' then
    local mx,my = coord(x-16), coord(y-Lines.current.y)
    if mx >= 0 and mx < 256 and my >= 0 and my < Lines.current.h then
    local center = Lines.current.points[Lines.current.pending.center]
    Lines.current.pending.radius = math.dist(center.x,center.y, mx,my)
    table.insert(Lines.current.shapes, Lines.current.pending)
  • replacement in main.lua at line 283
    [4.427][4.3:454]()
    elseif lines.current.pending.mode == 'arc' then
    local mx,my = coord(x-16), coord(y-lines.current.y)
    if mx >= 0 and mx < 256 and my >= 0 and my < lines.current.h then
    local center = lines.current.points[lines.current.pending.center]
    lines.current.pending.end_angle = angle_with_hint(center.x,center.y, mx,my, lines.current.pending.end_angle)
    table.insert(lines.current.shapes, lines.current.pending)
    [4.427]
    [4.454]
    elseif Lines.current.pending.mode == 'arc' then
    local mx,my = coord(x-16), coord(y-Lines.current.y)
    if mx >= 0 and mx < 256 and my >= 0 and my < Lines.current.h then
    local center = Lines.current.points[Lines.current.pending.center]
    Lines.current.pending.end_angle = angle_with_hint(center.x,center.y, mx,my, Lines.current.pending.end_angle)
    table.insert(Lines.current.shapes, Lines.current.pending)
  • replacement in main.lua at line 291
    [4.2036][4.2036:2095]()
    lines.current.pending = {}
    lines.current = nil
    [4.1972]
    [4.2095]
    Lines.current.pending = {}
    Lines.current = nil
  • replacement in main.lua at line 296
    [4.21][4.21:55]()
    save_to_disk(lines, filename)
    [4.21]
    [4.55]
    save_to_disk(Lines, filename)
  • replacement in main.lua at line 509
    [4.41][4.820:878]()
    if lines[cursor_line].mode == 'drawing' then return end
    [4.47]
    [4.490]
    if Lines[cursor_line].mode == 'drawing' then return end
  • replacement in main.lua at line 512
    [4.534][4.879:947]()
    byteoffset = utf8.offset(lines[cursor_line].data, cursor_pos-1)
    [4.534]
    [4.597]
    byteoffset = utf8.offset(Lines[cursor_line].data, cursor_pos-1)
  • replacement in main.lua at line 516
    [4.629][4.948:1081]()
    lines[cursor_line].data = string.sub(lines[cursor_line].data, 1, byteoffset)..t..string.sub(lines[cursor_line].data, byteoffset+1)
    [4.629]
    [4.747]
    Lines[cursor_line].data = string.sub(Lines[cursor_line].data, 1, byteoffset)..t..string.sub(Lines[cursor_line].data, byteoffset+1)
  • replacement in main.lua at line 519
    [4.81][4.81:115]()
    save_to_disk(lines, filename)
    [4.81]
    [4.115]
    save_to_disk(Lines, filename)
  • replacement in main.lua at line 527
    [4.224][4.1082:1145]()
    table.insert(lines, cursor_line+1, {mode='text', data=''})
    [4.224]
    [4.465]
    table.insert(Lines, cursor_line+1, {mode='text', data=''})
  • replacement in main.lua at line 532
    [3.719][3.719:867]()
    local byte_start = utf8.offset(lines[cursor_line].data, cursor_pos-1)
    local byte_end = utf8.offset(lines[cursor_line].data, cursor_pos)
    [3.719]
    [3.867]
    local byte_start = utf8.offset(Lines[cursor_line].data, cursor_pos-1)
    local byte_end = utf8.offset(Lines[cursor_line].data, cursor_pos)
  • replacement in main.lua at line 536
    [3.917][3.917:1053]()
    lines[cursor_line].data = string.sub(lines[cursor_line].data, 1, byte_start-1)..string.sub(lines[cursor_line].data, byte_end)
    [3.917]
    [3.1053]
    Lines[cursor_line].data = string.sub(Lines[cursor_line].data, 1, byte_start-1)..string.sub(Lines[cursor_line].data, byte_end)
  • replacement in main.lua at line 538
    [3.1066][3.1066:1155]()
    lines[cursor_line].data = string.sub(lines[cursor_line].data, 1, byte_start-1)
    [3.1066]
    [3.1155]
    Lines[cursor_line].data = string.sub(Lines[cursor_line].data, 1, byte_start-1)
  • replacement in main.lua at line 543
    [3.1243][3.1243:1339]()
    if lines[cursor_line-1].mode == 'drawing' then
    table.remove(lines, cursor_line-1)
    [3.1243]
    [4.1377]
    if Lines[cursor_line-1].mode == 'drawing' then
    table.remove(Lines, cursor_line-1)
  • replacement in main.lua at line 546
    [4.1388][3.1340:1549]()
    -- join lines
    cursor_pos = utf8.len(lines[cursor_line-1].data)+1
    lines[cursor_line-1].data = lines[cursor_line-1].data..lines[cursor_line].data
    table.remove(lines, cursor_line)
    [4.1388]
    [4.1411]
    -- join Lines
    cursor_pos = utf8.len(Lines[cursor_line-1].data)+1
    Lines[cursor_line-1].data = Lines[cursor_line-1].data..Lines[cursor_line].data
    table.remove(Lines, cursor_line)
  • replacement in main.lua at line 558
    [4.1430][4.2096:2147]()
    if cursor_pos <= #lines[cursor_line].data then
    [4.1430]
    [4.1476]
    if cursor_pos <= #Lines[cursor_line].data then
  • replacement in main.lua at line 564
    [4.237][4.2148:2192]()
    cursor_pos = #lines[cursor_line].data+1
    [4.237]
    [4.26]
    cursor_pos = #Lines[cursor_line].data+1
  • replacement in main.lua at line 566
    [4.58][4.58:257]()
    if cursor_pos <= #lines[cursor_line].data then
    local byte_start = utf8.offset(lines[cursor_line].data, cursor_pos)
    local byte_end = utf8.offset(lines[cursor_line].data, cursor_pos+1)
    [4.58]
    [4.257]
    if cursor_pos <= #Lines[cursor_line].data then
    local byte_start = utf8.offset(Lines[cursor_line].data, cursor_pos)
    local byte_end = utf8.offset(Lines[cursor_line].data, cursor_pos+1)
  • replacement in main.lua at line 571
    [4.307][4.307:443]()
    lines[cursor_line].data = string.sub(lines[cursor_line].data, 1, byte_start-1)..string.sub(lines[cursor_line].data, byte_end)
    [4.307]
    [4.443]
    Lines[cursor_line].data = string.sub(Lines[cursor_line].data, 1, byte_start-1)..string.sub(Lines[cursor_line].data, byte_end)
  • replacement in main.lua at line 573
    [4.456][4.456:545]()
    lines[cursor_line].data = string.sub(lines[cursor_line].data, 1, byte_start-1)
    [4.456]
    [4.545]
    Lines[cursor_line].data = string.sub(Lines[cursor_line].data, 1, byte_start-1)
  • replacement in main.lua at line 580
    [4.553][3.1550:1596]()
    assert(lines[cursor_line].mode == 'text')
    [4.553]
    [3.1596]
    assert(Lines[cursor_line].mode == 'text')
  • replacement in main.lua at line 584
    [3.1711][3.1711:1835]()
    if lines[new_cursor_line].mode == 'text' then
    local old_x = cursor_x(lines[new_cursor_line].data, cursor_pos)
    [3.1711]
    [3.1835]
    if Lines[new_cursor_line].mode == 'text' then
    local old_x = cursor_x(Lines[new_cursor_line].data, cursor_pos)
  • replacement in main.lua at line 587
    [3.1873][4.153:237](),[4.153][4.153:237]()
    cursor_pos = nearest_cursor_pos(lines[cursor_line].data, old_x, cursor_pos)
    [3.1873]
    [3.1874]
    cursor_pos = nearest_cursor_pos(Lines[cursor_line].data, old_x, cursor_pos)
  • replacement in main.lua at line 592
    [4.746][3.1889:1935]()
    assert(lines[cursor_line].mode == 'text')
    [4.746]
    [3.1935]
    assert(Lines[cursor_line].mode == 'text')
  • replacement in main.lua at line 594
    [3.1975][3.1975:2013]()
    while new_cursor_line < #lines do
    [3.1975]
    [3.2013]
    while new_cursor_line < #Lines do
  • replacement in main.lua at line 596
    [3.2055][3.2055:2179]()
    if lines[new_cursor_line].mode == 'text' then
    local old_x = cursor_x(lines[new_cursor_line].data, cursor_pos)
    [3.2055]
    [3.2179]
    if Lines[new_cursor_line].mode == 'text' then
    local old_x = cursor_x(Lines[new_cursor_line].data, cursor_pos)
  • replacement in main.lua at line 599
    [3.2217][4.447:531](),[4.447][4.447:531]()
    cursor_pos = nearest_cursor_pos(lines[cursor_line].data, old_x, cursor_pos)
    [3.2217]
    [3.2218]
    cursor_pos = nearest_cursor_pos(Lines[cursor_line].data, old_x, cursor_pos)
  • replacement in main.lua at line 709
    [4.379][4.379:409]()
    lines.current = drawing
    [4.379]
    [4.409]
    Lines.current = drawing
  • replacement in main.lua at line 717
    [4.660][4.1034:1064](),[4.1034][4.1034:1064]()
    lines.current = drawing
    [4.660]
    [4.547]
    Lines.current = drawing
  • replacement in main.lua at line 748
    [4.478][2.43:78]()
    for _,line in ipairs(lines) do
    [4.478]
    [2.78]
    for _,line in ipairs(Lines) do
  • replacement in main.lua at line 798
    [4.882][4.882:918]()
    for _,drawing in ipairs(lines) do
    [4.882]
    [4.3056]
    for _,drawing in ipairs(Lines) do
  • replacement in main.lua at line 809
    [4.163][4.163:199]()
    for _,drawing in ipairs(lines) do
    [4.163]
    [4.3095]
    for _,drawing in ipairs(Lines) do
  • replacement in main.lua at line 826
    [4.1161][4.1161:1197]()
    for _,drawing in ipairs(lines) do
    [4.1161]
    [4.3134]
    for _,drawing in ipairs(Lines) do
  • replacement in main.lua at line 843
    [4.1561][4.1561:1597]()
    for _,drawing in ipairs(lines) do
    [4.1561]
    [4.3173]
    for _,drawing in ipairs(Lines) do