| store visible lines to buffer before clearing the screen when pressing ctrl-l |
| |
| patch by rlblaster |
| https://bbs.archlinux.org/viewtopic.php?id=129302 |
| |
| --- a/src/command.C |
| +++ b/src/command.C |
| @@ -2932,6 +2932,17 @@ |
| |
| case CSI_CUP: /* 8.3.21: (1,1) CURSOR POSITION */ |
| case CSI_HVP: /* 8.3.64: (1,1) CHARACTER AND LINE POSITION */ |
| + if (nargs == 1 && current_screen == 0) |
| + { |
| + // This is usually followed with clear screen so add some extra |
| + // lines to avoid deleting the lines already on screen. If we are |
| + // already at the top, add an extra screen height of lines. |
| + int extra_lines = nrow-1; |
| + if (screen.cur.row == 0) |
| + extra_lines += nrow; |
| + for (int i = 0; i < extra_lines; ++i) |
| + scr_add_lines (L"\r\n", 2); |
| + } |
| scr_gotorc (arg[0] - 1, nargs < 2 ? 0 : (arg[1] - 1), 0); |
| break; |
| |