do not allow cursor movements for non-valid cursors
This commit is contained in:
parent
7e518cd27a
commit
6e5489c88e
@ -124,6 +124,8 @@ PieceTable::Cursor::Cursor(PieceTable * pt) : iterator(pt)
|
|||||||
|
|
||||||
bool PieceTable::Cursor::go_start_of_line()
|
bool PieceTable::Cursor::go_start_of_line()
|
||||||
{
|
{
|
||||||
|
if (!iterator.valid())
|
||||||
|
return false;
|
||||||
bool rv = false;
|
bool rv = false;
|
||||||
while (iterator.valid() &&
|
while (iterator.valid() &&
|
||||||
(!iterator.piece->prev->eol()) &&
|
(!iterator.piece->prev->eol()) &&
|
||||||
@ -141,6 +143,8 @@ bool PieceTable::Cursor::go_start_of_line()
|
|||||||
|
|
||||||
bool PieceTable::Cursor::go_end_of_line()
|
bool PieceTable::Cursor::go_end_of_line()
|
||||||
{
|
{
|
||||||
|
if (!iterator.valid())
|
||||||
|
return false;
|
||||||
bool rv = false;
|
bool rv = false;
|
||||||
while (iterator.valid() &&
|
while (iterator.valid() &&
|
||||||
(!iterator.piece->eol()) &&
|
(!iterator.piece->eol()) &&
|
||||||
@ -159,6 +163,8 @@ bool PieceTable::Cursor::go_end_of_line()
|
|||||||
|
|
||||||
bool PieceTable::Cursor::go_up(int n, uint32_t desired_column)
|
bool PieceTable::Cursor::go_up(int n, uint32_t desired_column)
|
||||||
{
|
{
|
||||||
|
if (!iterator.valid())
|
||||||
|
return false;
|
||||||
Piece * p = prev_line();
|
Piece * p = prev_line();
|
||||||
if (p == nullptr)
|
if (p == nullptr)
|
||||||
{
|
{
|
||||||
@ -174,6 +180,8 @@ bool PieceTable::Cursor::go_up(int n, uint32_t desired_column)
|
|||||||
|
|
||||||
bool PieceTable::Cursor::go_down(int n, uint32_t desired_column)
|
bool PieceTable::Cursor::go_down(int n, uint32_t desired_column)
|
||||||
{
|
{
|
||||||
|
if (!iterator.valid())
|
||||||
|
return false;
|
||||||
Piece * p = next_line();
|
Piece * p = next_line();
|
||||||
if (p == nullptr)
|
if (p == nullptr)
|
||||||
{
|
{
|
||||||
@ -189,6 +197,8 @@ bool PieceTable::Cursor::go_down(int n, uint32_t desired_column)
|
|||||||
|
|
||||||
bool PieceTable::Cursor::go_left(int n)
|
bool PieceTable::Cursor::go_left(int n)
|
||||||
{
|
{
|
||||||
|
if (!iterator.valid())
|
||||||
|
return false;
|
||||||
if (is_start_of_line())
|
if (is_start_of_line())
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -209,6 +219,8 @@ bool PieceTable::Cursor::go_left(int n)
|
|||||||
|
|
||||||
bool PieceTable::Cursor::go_right(int n)
|
bool PieceTable::Cursor::go_right(int n)
|
||||||
{
|
{
|
||||||
|
if (!iterator.valid())
|
||||||
|
return false;
|
||||||
if (is_end_of_line())
|
if (is_end_of_line())
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user