diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2016-08-22 13:52:37 +0100 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2016-08-22 13:54:22 +0100 |
| commit | 56a7c6e594d9ff0d048d3bdf5513d5322bba0fb3 (patch) | |
| tree | 4e73485d5d874f55a81260205b7344dea900b99e /src | |
| parent | 0de4fc75d036c2d1db430079cc6f7b87a9492ed4 (diff) | |
Rework buggy number selection function
Fixes #765
Fixes #766
Diffstat (limited to 'src')
| -rw-r--r-- | src/selectors.cc | 9 |
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()} |
