summaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua')
-rw-r--r--lua/clever_f/repeat_resolver.lua21
1 files changed, 13 insertions, 8 deletions
diff --git a/lua/clever_f/repeat_resolver.lua b/lua/clever_f/repeat_resolver.lua
index 32734cb..5363dea 100644
--- a/lua/clever_f/repeat_resolver.lua
+++ b/lua/clever_f/repeat_resolver.lua
@@ -242,14 +242,19 @@ function M.explicit_target(stored_target)
return stored_target
end
-function M.build_same_direction_request(stored_descriptor, stored_target)
- if stored_descriptor == nil then
+local function build_explicit_request(descriptor, stored_target)
+ if descriptor == nil then
return domain.ExplicitRepeatRequest.neutral()
end
- return domain.ExplicitRepeatRequest.new(
- stored_descriptor,
- M.explicit_target(stored_target)
- )
+ local target = M.explicit_target(stored_target)
+ if target.first_code == 0x80 then
+ return domain.ExplicitRepeatRequest.neutral()
+ end
+ return domain.ExplicitRepeatRequest.new(descriptor, target)
+end
+
+function M.build_same_direction_request(stored_descriptor, stored_target)
+ return build_explicit_request(stored_descriptor, stored_target)
end
M.explicit_same_direction = M.build_same_direction_request
@@ -270,9 +275,9 @@ function M.build_opposite_direction_request(stored_descriptor, stored_target)
if stored_descriptor == nil then
return domain.ExplicitRepeatRequest.neutral()
end
- return domain.ExplicitRepeatRequest.new(
+ return build_explicit_request(
domain.Descriptor.swap(stored_descriptor),
- M.explicit_target(stored_target)
+ stored_target
)
end