Loading slc/trunk/src/screen.cc +12 −3 Original line number Diff line number Diff line Loading @@ -29,6 +29,12 @@ void Screen::init() { } void Screen::create_windows() { // Check screen size if (LINES < 6 || COLS < 3) { std::cerr << "Screen is too small." << std::endl; exit(ERR_SCREENSZ); } noecho(); clear(); refresh(); Loading Loading @@ -138,7 +144,7 @@ void Screen::run() { cmd_buf_off_ = strlen(cmd_buffer_); cmd_draw(); break; case 10: case KEY_RETURN: // save buffer in history H.add(cmd_buffer_); // send buffer Loading @@ -165,6 +171,9 @@ void Screen::run() { case KEY_RESIZE: create_windows(); break; case KEY_EOF: // save history return; default: if (!isprint(key)) break; if (add_char(key, cmd_buffer_, cmd_buf_off_, CMD_BUFFER_SIZE)) Loading @@ -183,8 +192,8 @@ void Screen::cmd_draw() { wmove(cmd_, 1, 1); // check cur pos is in screen if ((ssize_t) cmd_buf_off_ > (ssize_t) cmd_win_off_ + COLS - 3) cmd_win_off_ = cmd_buf_off_ - COLS - 1; if (cmd_buf_off_ + 1 > (size_t) COLS - 2 + cmd_win_off_) cmd_win_off_ = cmd_buf_off_ + 1 - (COLS - 2) ; else if (cmd_buf_off_ < cmd_win_off_) cmd_win_off_ = cmd_buf_off_; Loading slc/trunk/src/screen.hh +3 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,9 @@ #define CMD_BUFFER_SIZE 512 #define KEY_RETURN 10 #define KEY_EOF 4 class Screen { public: Screen(); Loading slc/trunk/src/slc.hh +1 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ enum { ERR_NET = 4, ERR_PROTO = 5, ERR_AUTH = 6, ERR_SCREENSZ = 7, ERR_NOMEM = 41, ERR_UNKNOWN = 42 }; Loading Loading
slc/trunk/src/screen.cc +12 −3 Original line number Diff line number Diff line Loading @@ -29,6 +29,12 @@ void Screen::init() { } void Screen::create_windows() { // Check screen size if (LINES < 6 || COLS < 3) { std::cerr << "Screen is too small." << std::endl; exit(ERR_SCREENSZ); } noecho(); clear(); refresh(); Loading Loading @@ -138,7 +144,7 @@ void Screen::run() { cmd_buf_off_ = strlen(cmd_buffer_); cmd_draw(); break; case 10: case KEY_RETURN: // save buffer in history H.add(cmd_buffer_); // send buffer Loading @@ -165,6 +171,9 @@ void Screen::run() { case KEY_RESIZE: create_windows(); break; case KEY_EOF: // save history return; default: if (!isprint(key)) break; if (add_char(key, cmd_buffer_, cmd_buf_off_, CMD_BUFFER_SIZE)) Loading @@ -183,8 +192,8 @@ void Screen::cmd_draw() { wmove(cmd_, 1, 1); // check cur pos is in screen if ((ssize_t) cmd_buf_off_ > (ssize_t) cmd_win_off_ + COLS - 3) cmd_win_off_ = cmd_buf_off_ - COLS - 1; if (cmd_buf_off_ + 1 > (size_t) COLS - 2 + cmd_win_off_) cmd_win_off_ = cmd_buf_off_ + 1 - (COLS - 2) ; else if (cmd_buf_off_ < cmd_win_off_) cmd_win_off_ = cmd_buf_off_; Loading
slc/trunk/src/screen.hh +3 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,9 @@ #define CMD_BUFFER_SIZE 512 #define KEY_RETURN 10 #define KEY_EOF 4 class Screen { public: Screen(); Loading
slc/trunk/src/slc.hh +1 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ enum { ERR_NET = 4, ERR_PROTO = 5, ERR_AUTH = 6, ERR_SCREENSZ = 7, ERR_NOMEM = 41, ERR_UNKNOWN = 42 }; Loading