+ case KEY_NPAGE:
+ if (end < record_num) {
+ end = (end + (MAX_LINES) - 1 < record_num) ?
+ end + (MAX_LINES) - 1 : record_num;
+ begin = (end - (MAX_LINES) + 1 > 0) ?
+ end - (MAX_LINES) + 1 : 1;
+ _scroll_rows(first, begin, end);
+ }
+ continue;
+
+ case KEY_PPAGE:
+ if (begin > 1) {
+ begin = (begin - (MAX_LINES) + 1 > 0) ?
+ begin - (MAX_LINES) + 1 : 1;
+ end = (begin + (MAX_LINES) - 1 < record_num) ?
+ begin + (MAX_LINES) - 1 : record_num;
+ _scroll_rows(first, begin, end);
+ }
+ continue;
+
+ case KEY_END:
+ if (end < record_num) {
+ begin = (record_num > MAX_LINES) ? record_num + 1 - (MAX_LINES) : 1;
+ end = record_num;
+ _scroll_rows(first, begin, end);
+ }
+ continue;
+
+ case KEY_HOME:
+ if (begin > 1) {
+ begin = 1;
+ end = (record_num > MAX_LINES) ? MAX_LINES : record_num;
+ _scroll_rows(first, begin, end);
+ }
+ continue;
+