diff --git a/anagrams.tlv b/anagrams.tlv index 14f3d21..a314eb8 100644 --- a/anagrams.tlv +++ b/anagrams.tlv @@ -23,7 +23,7 @@ >-- index characters using [] >getmetatable('').__index = function(str,i) > if type(i) == 'number' then - > return string.sub(str,i,i) + > return str:sub(i,i) > else > return string[i] > end @@ -32,11 +32,11 @@ >-- ranges using (), selected bytes using {} >getmetatable('').__call = function(str,i,j) > if type(i)~='table' then - > return string.sub(str,i,j) + > return str:sub(i,j) > else > local t={} > for k,v in ipairs(i) do - > t[k]=string.sub(str,v,v) + > t[k]=str:sub(v,v) > end > return table.concat(t) > end @@ -186,7 +186,7 @@ count_letters: >function count_letters(s) > local result = {} - > for i=1,string.len(s) do + > for i=1,s:len() do > local c = s[i] > if result[c] == nil then > result[c] = 1 @@ -309,8 +309,8 @@ >Mon Feb 21 18:06:20 2022 take_out: >function take_out(s, i) - > if i < 1 then return string.sub(s, 1) end - > return string.sub(s, 1, i-1) .. string.sub(s, i+1) + > if i < 1 then return s:sub(1) end + > return s:sub(1, i-1) .. s:sub(i+1) >end > >function test_take_out() @@ -342,7 +342,7 @@ >Sat Mar 5 15:24:00 2022 count_anagrams: >function count_anagrams(s) - > local result = factorial(string.len(s)) + > local result = factorial(s:len()) > local letter_counts = count_letters(s) > for k, v in pairs(letter_counts) do > result = result / factorial(v) diff --git a/commander.tlv b/commander.tlv index 6b80304..e6854fc 100644 --- a/commander.tlv +++ b/commander.tlv @@ -23,7 +23,7 @@ >-- index characters using [] >getmetatable('').__index = function(str,i) > if type(i) == 'number' then - > return string.sub(str,i,i) + > return str:sub(i,i) > else > return string[i] > end @@ -32,13 +32,13 @@ >-- ranges using (), selected bytes using {} >getmetatable('').__call = function(str,i,j) > if type(i)~='table' then - > return string.sub(str,i,j) + > return str:sub(i,j) > else > local t={} > for k,v in ipairs(i) do - > t[k]=string.sub(str,v,v) + > t[k]=str:sub(v,v) > end - > return table.concat(t) + > return t:concat() > end >end > diff --git a/gemini.tlv b/gemini.tlv index 3a163f0..5600b3d 100644 --- a/gemini.tlv +++ b/gemini.tlv @@ -23,7 +23,7 @@ >-- index characters using [] >getmetatable('').__index = function(str,i) > if type(i) == 'number' then - > return string.sub(str,i,i) + > return str:sub(i,i) > else > return string[i] > end @@ -32,11 +32,11 @@ >-- ranges using (), selected bytes using {} >getmetatable('').__call = function(str,i,j) > if type(i)~='table' then - > return string.sub(str,i,j) + > return str:sub(i,j) > else > local t={} > for k,v in ipairs(i) do - > t[k]=string.sub(str,v,v) + > t[k]=str:sub(v,v) > end > return table.concat(t) > end @@ -158,14 +158,14 @@ render_line: >function render_line(window, y, line) > window:mvaddstr(y, 0, '') - > for i=1,string.len(line) do + > for i=1,line:len() do > window:addstr(line[i]) > end >end - __teliva_timestamp: original render_link: >function render_link(window, y, line) - > local rendered_line = string.gsub(line, '=>%s*%S*%s*', '') + > local rendered_line = line:gsub('=>%s*%S*%s*', '') > if trim(rendered_line) == '' then > rendered_line = line > end @@ -189,7 +189,7 @@ > y = y+2 >--? dbg(window, state.highlight_index) > for i, line in pairs(state.lines) do - > if not state.source and string.find(line, '=> ') == 1 then + > if not state.source and line:find('=> ') == 1 then > if state.highlight_index == 0 or i == state.highlight_index then > -- highlighted link > state.highlight_index = i -- TODO: ugly state update while rendering, just for first render after gemini_get @@ -276,7 +276,7 @@ - __teliva_timestamp: original is_link: >function is_link(line) - > return string.find(line, '=>%s*%S*%s*') == 1 + > return line:find('=>%s*%S*%s*') == 1 >end - __teliva_timestamp: original next_link: @@ -384,11 +384,11 @@ > local s, status = tcp:receive() > if s == nil then break end > if s == '' then break end - > local header, value = string.match(s, '(.-): (.*)') + > local header, value = s:match('(.-): (.*)') > if header == nil then > print(s) > else - > headers[string.lower(header)] = value + > headers[header:lower()] = value > print(header, value) > end > end @@ -398,7 +398,7 @@ > local s, status = tcp:receive(bytes_remaining) > if s == nil then break end > body = body .. s - > bytes_remaining = bytes_remaining - string.len(s) + > bytes_remaining = bytes_remaining - s:len() > if bytes_remaining <= 0 then break end > end > return body @@ -436,7 +436,7 @@ > if line == nil then break end > table.insert(state.lines, line) > end - > elseif string.sub(type, 1, 5) == 'text/' then + > elseif type:sub(1, 5) == 'text/' then > while true do > local line, err = conn:receive() > if line == nil then break end @@ -450,7 +450,7 @@ >-- https://tildegit.org/solderpunk/gemini-demo-2 >-- returns an array of lines, containing either the body or just an error >function gemini_get(url) - > if string.find(url, "://") == nil then + > if url:find("://") == nil then > url = "gemini://" .. url > end > local parsed_url = socket.url.parse(url) @@ -480,7 +480,7 @@ > table.insert(state.lines, err) > return > end - > local status, meta = string.match(line, "(%S+) (%S+)") + > local status, meta = line:match("(%S+) (%S+)") > if status[1] == '2' then > parse_gemini_body(conn, meta) > state.url = url diff --git a/life.tlv b/life.tlv index 22293ea..eb9662f 100644 --- a/life.tlv +++ b/life.tlv @@ -23,7 +23,7 @@ >-- index characters using [] >getmetatable('').__index = function(str,i) > if type(i) == 'number' then - > return string.sub(str,i,i) + > return str:sub(i,i) > else > return string[i] > end @@ -32,11 +32,11 @@ >-- ranges using (), selected bytes using {} >getmetatable('').__call = function(str,i,j) > if type(i)~='table' then - > return string.sub(str,i,j) + > return str:sub(i,j) > else > local t={} > for k,v in ipairs(i) do - > t[k]=string.sub(str,v,v) + > t[k]=str:sub(v,v) > end > return table.concat(t) > end @@ -202,7 +202,7 @@ count_letters: >function count_letters(s) > local result = {} - > for i=1,string.len(s) do + > for i=1,s:len() do > local c = s[i] > if result[c] == nil then > result[c] = 1 @@ -255,7 +255,7 @@ > end > end > h.addstr = function(self, s) - > for i=1,string.len(s) do + > for i=1,s:len() do > self:addch(s[i]) > end > end @@ -275,7 +275,7 @@ kbd: >function kbd(keys) > local result = {} - > for i=1,string.len(keys) do + > for i=1,keys:len() do > table.insert(result, keys[i]) > end > return result @@ -298,7 +298,7 @@ check_screen: >function check_screen(window, contents, message) > local x, y = 1, 1 - > for i=1,string.len(contents) do + > for i=1,contents:len() do > check_eq(contents[i], window.scr[y][x], message..'/'..y..','..x) > x = x+1 > if x > window.scr.w then @@ -438,7 +438,7 @@ - __teliva_timestamp: original state: >function state(line, col) - > if line < 1 or line > table.getn(grid) or col < 1 or col > table.getn(grid[1]) then + > if line < 1 or line > #grid or col < 1 or col > #grid[1] then > return 0 > end > return grid[line][col] @@ -454,9 +454,9 @@ step: >function step() > local new_grid = {} - > for line=1,table.getn(grid) do + > for line=1,#grid do > new_grid[line] = {} - > for col=1,table.getn(grid[1]) do + > for col=1,#grid[1] do > local n = num_live_neighbors(line, col) > if n == 3 then > new_grid[line][col] = 1 diff --git a/lisp.tlv b/lisp.tlv index 92d23f8..1165cc6 100644 --- a/lisp.tlv +++ b/lisp.tlv @@ -23,7 +23,7 @@ >-- index characters using [] >getmetatable('').__index = function(str,i) > if type(i) == 'number' then - > return string.sub(str,i,i) + > return str:sub(i,i) > else > return string[i] > end @@ -32,11 +32,11 @@ >-- ranges using (), selected bytes using {} >getmetatable('').__call = function(str,i,j) > if type(i)~='table' then - > return string.sub(str,i,j) + > return str:sub(i,j) > else > local t={} > for k,v in ipairs(i) do - > t[k]=string.sub(str,v,v) + > t[k]=str:sub(v,v) > end > return table.concat(t) > end diff --git a/src/file.lua b/src/file.lua index bbf9445..cd71f50 100644 --- a/src/file.lua +++ b/src/file.lua @@ -56,9 +56,9 @@ function character_splitting_task(chanin, chanout) while true do local line = chanin:recv() if line == nil then break end - local linesz = string.len(line) + local linesz = line:len() for i=1,linesz do - chanout:send(string.sub(line, i, i)) + chanout:send(line:sub(i, i)) end end chanout:send(nil) -- end of file diff --git a/template.tlv b/template.tlv index aa78955..ba92fbf 100644 --- a/template.tlv +++ b/template.tlv @@ -23,7 +23,7 @@ >-- index characters using [] >getmetatable('').__index = function(str,i) > if type(i) == 'number' then - > return string.sub(str,i,i) + > return str:sub(i,i) > else > return string[i] > end @@ -32,11 +32,11 @@ >-- ranges using (), selected bytes using {} >getmetatable('').__call = function(str,i,j) > if type(i)~='table' then - > return string.sub(str,i,j) + > return str:sub(i,j) > else > local t={} > for k,v in ipairs(i) do - > t[k]=string.sub(str,v,v) + > t[k]=str:sub(v,v) > end > return table.concat(t) > end @@ -201,7 +201,7 @@ count_letters: >function count_letters(s) > local result = {} - > for i=1,string.len(s) do + > for i=1,s:len() do > local c = s[i] > if result[c] == nil then > result[c] = 1 @@ -257,7 +257,7 @@ > end > end > h.addstr = function(self, s) - > for i=1,string.len(s) do + > for i=1,s:len() do > self:addch(s[i]) > end > end @@ -277,7 +277,7 @@ kbd: >function kbd(keys) > local result = {} - > for i=1,string.len(keys) do + > for i=1,keys:len() do > table.insert(result, keys[i]) > end > return result @@ -299,7 +299,7 @@ check_screen: >function check_screen(window, contents, message) > local x, y = 1, 1 - > for i=1,string.len(contents) do + > for i=1,contents:len() do > check_eq(contents[i], window.scr[y][x], message..'/'..y..','..x) > x = x+1 > if x > window.scr.w then diff --git a/toot-toot.tlv b/toot-toot.tlv index 66b0d9e..3b88688 100644 --- a/toot-toot.tlv +++ b/toot-toot.tlv @@ -23,7 +23,7 @@ >-- index characters using [] >getmetatable('').__index = function(str,i) > if type(i) == 'number' then - > return string.sub(str,i,i) + > return str:sub(i,i) > else > return string[i] > end @@ -32,11 +32,11 @@ >-- ranges using (), selected bytes using {} >getmetatable('').__call = function(str,i,j) > if type(i)~='table' then - > return string.sub(str,i,j) + > return str:sub(i,j) > else > local t={} > for k,v in ipairs(i) do - > t[k]=string.sub(str,v,v) + > t[k]=str:sub(v,v) > end > return table.concat(t) > end @@ -235,7 +235,7 @@ > pos = render_text(window, toot, pos, cursor) > print('') > window:attron(curses.A_BOLD) - > window:addstr(string.len(toot)) + > window:addstr(toot:len()) > window:attroff(curses.A_BOLD) > end > window:refresh() @@ -244,7 +244,7 @@ render_delimiter: >function render_delimiter(window, s, pos, cursor) > local newpos = pos - > for i=1,string.len(s) do + > for i=1,s:len() do > if newpos == cursor and i ~= 1 then > if s[i] == '\n' then > -- newline at cursor = render extra space in reverse video before jumping to new line @@ -290,7 +290,7 @@ >function render_text(window, s, pos, cursor) > local newpos = pos >--? dbg(window, '--') - > for i=1,string.len(s) do + > for i=1,s:len() do >--? dbg(window, tostring(newpos)..' '..tostring(string.byte(s[i]))) > if newpos == cursor then >--? dbg(window, 'cursor: '..tostring(cursor)) diff --git a/zet.tlv b/zet.tlv index 0977572..ce10cff 100644 --- a/zet.tlv +++ b/zet.tlv @@ -23,7 +23,7 @@ >-- index characters using [] >getmetatable('').__index = function(str,i) > if type(i) == 'number' then - > return string.sub(str,i,i) + > return str:sub(i,i) > else > return string[i] > end @@ -32,11 +32,11 @@ >-- ranges using (), selected bytes using {} >getmetatable('').__call = function(str,i,j) > if type(i)~='table' then - > return string.sub(str,i,j) + > return str:sub(i,j) > else > local t={} > for k,v in ipairs(i) do - > t[k]=string.sub(str,v,v) + > t[k]=str:sub(v,v) > end > return table.concat(t) > end @@ -201,7 +201,7 @@ count_letters: >function count_letters(s) > local result = {} - > for i=1,string.len(s) do + > for i=1,s:len() do > local c = s[i] > if result[c] == nil then > result[c] = 1 @@ -259,7 +259,7 @@ > end > end > h.addstr = function(self, s) - > for i=1,string.len(s) do + > for i=1,s:len() do > self:addch(s[i]) > end > end @@ -279,7 +279,7 @@ kbd: >function kbd(keys) > local result = {} - > for i=1,string.len(keys) do + > for i=1,keys:len() do > table.insert(result, keys[i]) > end > return result @@ -301,7 +301,7 @@ check_screen: >function check_screen(window, contents, message) > local x, y = 1, 1 - > for i=1,string.len(contents) do + > for i=1,contents:len() do > check_eq(contents[i], window.scr[y][x], message..'/'..y..','..x) > x = x+1 > if x > window.scr.w then @@ -595,7 +595,7 @@ > end > local y, x = top, left + 1 -- left padding; TODO: indent > window:mvaddstr(y, x, '') - > for i=1,string.len(s) do + > for i=1,s:len() do > -- render character > if i == cursor then > if s[i] == '\n' then @@ -635,7 +635,7 @@ > end > end > end - > if cursor > string.len(s) then + > if cursor > s:len() then > window:attron(curses.A_REVERSE) > window:addch(' ') > window:attroff(curses.A_REVERSE) @@ -676,7 +676,7 @@ - __teliva_timestamp: original cursor_down: >function cursor_down(s, old_idx, width) - > local max = string.len(s) + > local max = s:len() > local i = 1 > -- compute oldcol, the screen column of old_idx > local oldcol = 0 @@ -767,7 +767,7 @@ >initial commit: show/edit zettels cursor_up: >function cursor_up(s, old_idx, width) - > local max = string.len(s) + > local max = s:len() > local i = 1 > -- compute oldcol, the screen column of old_idx > local oldcol = 0 @@ -969,7 +969,7 @@ > end > local y, x = top, left + 1 -- left padding; TODO: indent > window:mvaddstr(y, x, '') - > for i=1,string.len(s) do + > for i=1,s:len() do > if i == cursor then > cursor_y = y > cursor_x = x @@ -1010,7 +1010,7 @@ > local bottom = top + view_settings.height > local left = (render_state.curr_w - 1) * (view_settings.width + view_settings.hmargin) > local right = left + view_settings.width - > local cursor = string.len(zettels[current_zettel_id].data)+1 + > local cursor = zettels[current_zettel_id].data:len()+1 > local quit = false > curses.curs_set(1) > while not quit do @@ -2482,7 +2482,7 @@ > end > local y, x = top, left + 1 -- left padding; TODO: indent > window:mvaddstr(y, x, '') - > for i=1,string.len(s) do + > for i=1,s:len() do > if i == cursor then > cursor_y = y > cursor_x = x @@ -2744,12 +2744,12 @@ > {'^l', 'line>>'}, > {'^k', 'del to line>>'}, > } - > local old_data = string.sub(zettels[current_zettel_id].data, 1) + > local old_data = zettels[current_zettel_id].data:sub(1) > local top = (render_state.curr_h - 1) * (view_settings.height + view_settings.vmargin) > local bottom = top + view_settings.height > local left = (render_state.curr_w - 1) * (view_settings.width + view_settings.hmargin) > local right = left + view_settings.width - > local cursor = string.len(zettels[current_zettel_id].data)+1 + > local cursor = zettels[current_zettel_id].data:len()+1 > local quit = false > curses.curs_set(1) > while not quit do @@ -2791,7 +2791,7 @@ > cursor = cursor-1 > end > elseif key == 12 then -- ctrl-l - > local max = string.len(prose) + > local max = prose:len() > while cursor <= max and prose[cursor] ~= '\n' do > cursor = cursor+1 > end @@ -2799,7 +2799,7 @@ > elseif key == 2 then -- ctrl-b > -- delete > elseif key == 11 then -- ctrl-k - > while cursor <= string.len(prose) and prose[cursor] ~= '\n' do + > while cursor <= prose:len() and prose[cursor] ~= '\n' do > prose = prose:remove(cursor) > end > -- exit @@ -2848,33 +2848,33 @@ > end > elseif key == 12 then -- ctrl-l > -- to end of line - > local max = string.len(prose) + > local max = prose:len() > while cursor <= max and prose[cursor] ~= '\n' do > cursor = cursor+1 > end > elseif key == 6 then -- ctrl-f > -- to next word - > local max = string.len(prose) - > while cursor <= max and string.match(prose[cursor], '%w') do + > local max = prose:len() + > while cursor <= max and prose[cursor]:match('%w') do > cursor = cursor+1 > end - > while cursor <= max and string.match(prose[cursor], '%W') do + > while cursor <= max and prose[cursor]:match('%W') do > cursor = cursor+1 > end > elseif key == 2 then -- ctrl-b > -- to previous word - > if cursor > string.len(prose) then - > cursor = string.len(prose) + > if cursor > prose:len() then + > cursor = prose:len() > end - > while cursor > 1 and string.match(prose[cursor], '%W') do + > while cursor > 1 and prose[cursor]:match('%W') do > cursor = cursor-1 > end - > while cursor > 1 and string.match(prose[cursor], '%w') do + > while cursor > 1 and prose[cursor]:match('%w') do > cursor = cursor-1 > end > -- delete > elseif key == 11 then -- ctrl-k - > while cursor <= string.len(prose) and prose[cursor] ~= '\n' do + > while cursor <= prose:len() and prose[cursor] ~= '\n' do > prose = prose:remove(cursor) > end > -- exit @@ -2906,7 +2906,7 @@ > end > local y, x = top, left + 1 -- left padding; TODO: indent > window:mvaddstr(y, x, '') - > for i=1,string.len(s) do + > for i=1,s:len() do > if i == cursor then > cursor_y = y > cursor_x = x