# HG changeset patch # User Kim Alvefur # Date 1689002345 -7200 # Node ID c48ae06e24d6d2070abd2a852662af27c0045f4b # Parent 87487056bccb06894de85adb407578834acc4dc1 util.datamanager: Fix indexing first item if not at the very start If the first item does not start at position 0 then the index function produces a phantom first entry covering position zero until where the real first item starts. When using the index, this would make it either appear as the first item was missing or cause an off-by-one issue with remaining items. diff -r 87487056bccb -r c48ae06e24d6 util/datamanager.lua --- a/util/datamanager.lua Wed Jul 12 10:24:28 2023 +0200 +++ b/util/datamanager.lua Mon Jul 10 17:19:05 2023 +0200 @@ -329,7 +329,7 @@ return fh, err, errno; end local prev_pos = 0; -- position before reading - local last_item_start = 0; + local last_item_start = nil; if items and items[1] then local last_item = items[#items]; @@ -340,7 +340,7 @@ for line in fh:lines() do if line:sub(1, 4) == "item" then - if prev_pos ~= 0 then + if prev_pos ~= 0 and last_item_start then t_insert(items, { start = last_item_start; length = prev_pos - last_item_start }); end last_item_start = prev_pos