25 lines
937 B
Diff
25 lines
937 B
Diff
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;
|
|
|