diff options
Diffstat (limited to 'text.lua')
-rw-r--r-- | text.lua | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/text.lua b/text.lua index 7a442e8..97dcf7c 100644 --- a/text.lua +++ b/text.lua @@ -298,20 +298,25 @@ function Text.nearest_cursor_pos(line, x, hint) left = hint end end - while left < right-1 do +--? print('--') + while true do local curr = math.floor((left+right)/2) local currxmin = Text.cursor_x(line, curr) local currxmax = Text.cursor_x(line, curr+1) +--? print(x, left, right, curr, currxmin, currxmax) if currxmin <= x and x < currxmax then return curr end + if left >= right-1 then + return right + end if currxmin > x then right = curr else left = curr end end - return right + assert(false) end function Text.cursor_x(line_data, cursor_pos) |