summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2016-08-22 13:52:37 +0100
committerMaxime Coste <frrrwww@gmail.com>2016-08-22 13:54:22 +0100
commit56a7c6e594d9ff0d048d3bdf5513d5322bba0fb3 (patch)
tree4e73485d5d874f55a81260205b7344dea900b99e /src
parent0de4fc75d036c2d1db430079cc6f7b87a9492ed4 (diff)
Rework buggy number selection function
Fixes #765 Fixes #766
Diffstat (limited to 'src')
-rw-r--r--src/selectors.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/selectors.cc b/src/selectors.cc
index d4725c5e..24319037 100644
--- a/src/selectors.cc
+++ b/src/selectors.cc
@@ -247,6 +247,10 @@ Selection select_number(const Buffer& buffer, const Selection& selection, Object
BufferIterator first = buffer.iterator_at(selection.cursor());
BufferIterator last = first;
+
+ if (not is_number(*first) and *first != '-')
+ return selection;
+
if (flags & ObjectFlags::ToBegin)
{
skip_while_reverse(first, buffer.begin(), is_number);
@@ -257,8 +261,11 @@ Selection select_number(const Buffer& buffer, const Selection& selection, Object
if (flags & ObjectFlags::ToEnd)
{
+ if (*last == '-')
+ ++last;
skip_while(last, buffer.end(), is_number);
- --last;
+ if (last != buffer.begin())
+ --last;
}
return (flags & ObjectFlags::ToEnd) ? Selection{first.coord(), last.coord()}