Support scroll up / scroll down (fixes bug w/nano reported by Anders Kaseorg)

This commit is contained in:
Keith Winstein
2011-02-13 00:57:07 -05:00
parent 5a20f61184
commit 2d5304bba1
2 changed files with 17 additions and 2 deletions
+1 -2
View File
@@ -153,14 +153,13 @@ namespace Terminal {
std::deque<Row> rows;
std::vector<wchar_t> window_title;
void scroll( int N );
Row newrow( void ) { return Row( ds.get_width(), ds.get_background_rendition() ); }
public:
Framebuffer( int s_width, int s_height );
DrawState ds;
void scroll( int N );
void move_rows_autoscroll( int rows );
Row *get_row( int row )
+16
View File
@@ -474,3 +474,19 @@ void Dispatcher::OSC_dispatch( Parser::OSC_End *act, Framebuffer *fb )
}
}
}
/* scroll down or terminfo indn */
void CSI_SD( Framebuffer *fb, Dispatcher *dispatch )
{
fb->scroll( dispatch->getparam( 0, 1 ) );
}
static Function func_CSI_SD( CSI, "S", CSI_SD );
/* scroll up or terminfo rin */
void CSI_SU( Framebuffer *fb, Dispatcher *dispatch )
{
fb->scroll( -dispatch->getparam( 0, 1 ) );
}
static Function func_CSI_SU( CSI, "T", CSI_SU );