From a215d05db87a76b4a089fc30423b8de2742a012e Mon Sep 17 00:00:00 2001 From: Norman Feske Date: Mon, 19 Mar 2012 17:09:54 +0100 Subject: [PATCH] Support for tab characters in terminal --- gems/src/server/terminal/main.cc | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/gems/src/server/terminal/main.cc b/gems/src/server/terminal/main.cc index 025cbc50f1..4edcad1ba0 100644 --- a/gems/src/server/terminal/main.cc +++ b/gems/src/server/terminal/main.cc @@ -300,8 +300,9 @@ class Char_cell_array_character_screen : public Terminal::Character_screen Cursor_visibility _cursor_visibility; int _region_start; int _region_end; + int _tab_size; - enum { DEFAULT_COLOR_INDEX = 4 }; + enum { DEFAULT_COLOR_INDEX = 4, DEFAULT_TAB_SIZE = 8 }; struct Cursor_guard { @@ -343,7 +344,8 @@ class Char_cell_array_character_screen : public Terminal::Character_screen _highlight(false), _cursor_visibility(CURSOR_VISIBLE), _region_start(0), - _region_end(_boundary.height - 1) + _region_end(_boundary.height - 1), + _tab_size(DEFAULT_TAB_SIZE) { } @@ -404,6 +406,13 @@ class Char_cell_array_character_screen : public Terminal::Character_screen break; } + case 9: /* tab */ + { + Cursor_guard guard(*this); + _cursor_pos.x += _tab_size - (_cursor_pos.x % _tab_size); + break; + } + default: break; }