diff options
Diffstat (limited to 'lua/clever_f/destination_engine.lua')
| -rw-r--r-- | lua/clever_f/destination_engine.lua | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lua/clever_f/destination_engine.lua b/lua/clever_f/destination_engine.lua index 8a07328..e039851 100644 --- a/lua/clever_f/destination_engine.lua +++ b/lua/clever_f/destination_engine.lua @@ -151,6 +151,7 @@ function DestinationEngine:calculate(view, origin, plan, count, first_move) local request = calculation_inputs(view, origin, plan, count, first_move) local current_origin = request.origin local successful_steps = 0 + local boundary_reached = false while successful_steps < request.count.value do local destination = next_destination( @@ -159,13 +160,17 @@ function DestinationEngine:calculate(view, origin, plan, count, first_move) till_equality_allowed(request, successful_steps) ) if destination == nil then - return domain.SearchOutcome.boundary_before_any(request.origin) + boundary_reached = true + break end current_origin = destination successful_steps = successful_steps + 1 end - return domain.SearchOutcome.complete(current_origin, successful_steps) + if not boundary_reached then + return domain.SearchOutcome.complete(current_origin, successful_steps) + end + return domain.SearchOutcome.boundary_before_any(request.origin) end function M.new() |
