From e545336c51797884f3490defbdebebf088c28284 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Wed, 2 Nov 2016 21:27:13 -0400 Subject: [PATCH] Add checking versions of iterator movement functions --- src/core/GapBuffer.cc | 30 ++++++++++++++++++++++++++++++ src/core/GapBuffer.h | 2 ++ 2 files changed, 32 insertions(+) diff --git a/src/core/GapBuffer.cc b/src/core/GapBuffer.cc index 6461cbc..cc9d60c 100644 --- a/src/core/GapBuffer.cc +++ b/src/core/GapBuffer.cc @@ -40,6 +40,21 @@ void GapBuffer::Iterator::forward() } } +bool GapBuffer::Iterator::check_forward() +{ + if (valid()) + { + Iterator i2 = *this; + i2.forward(); + if (i2.valid()) + { + m_offset = i2.m_offset; + return true; + } + } + return false; +} + void GapBuffer::Iterator::back() { if (valid()) @@ -56,3 +71,18 @@ void GapBuffer::Iterator::back() } } } + +bool GapBuffer::Iterator::check_back() +{ + if (valid()) + { + Iterator i2 = *this; + i2.back(); + if (i2.valid()) + { + m_offset = i2.m_offset; + return true; + } + } + return false; +} diff --git a/src/core/GapBuffer.h b/src/core/GapBuffer.h index 2c59ced..8589107 100644 --- a/src/core/GapBuffer.h +++ b/src/core/GapBuffer.h @@ -23,7 +23,9 @@ public: return m_offset < m_gap_buffer->size(); } void forward(); + bool check_forward(); void back(); + bool check_back(); uint8_t * address() const { return m_gap_buffer->address(m_offset);