aboutsummaryrefslogtreecommitdiff
path: root/st.c.rej
diff options
context:
space:
mode:
authorMarcel Screm <marcel@marcelscrem.com>2025-12-28 12:20:32 +0100
committerMarcel Screm <marcel@marcelscrem.com>2025-12-28 12:20:32 +0100
commit9b35a7d9c3e05d78819421f376f08505edec38d2 (patch)
tree5ff2480538817ef6cde9bd18d317fb734ccdcf56 /st.c.rej
parent034c96dec581a3a870a6883303dabe2f0bad704f (diff)
added scrollback patch
Diffstat (limited to 'st.c.rej')
-rw-r--r--st.c.rej35
1 files changed, 35 insertions, 0 deletions
diff --git a/st.c.rej b/st.c.rej
new file mode 100644
index 0000000..72ef8d1
--- /dev/null
+++ b/st.c.rej
@@ -0,0 +1,35 @@
+--- st.c
++++ st.c
+@@ -1087,14 +1087,14 @@ tswapscreen(void)
+ void
+ kscrollup(const Arg *a)
+ {
+- int n = a->i;
++ float n = a->f;
+
+ if (IS_SET(MODE_ALTSCREEN))
+ return;
+
+- if (n < 0) n = (-n) * term.row;
++ if (n < 0) n = MAX((-n) * term.row, 1);
+ if (n > TSCREEN.size - term.row - TSCREEN.off) n = TSCREEN.size - term.row - TSCREEN.off;
+- while (!TLINE(-n)) --n;
++ while (!TLINE((int)-n)) --n;
+ TSCREEN.off += n;
+ selscroll(0, n);
+ tfulldirt();
+@@ -1104,12 +1104,12 @@ void
+ kscrolldown(const Arg *a)
+ {
+
+- int n = a->i;
++ float n = a->f;
+
+ if (IS_SET(MODE_ALTSCREEN))
+ return;
+
+- if (n < 0) n = (-n) * term.row;
++ if (n < 0) n = MAX((-n) * term.row, 1);
+ if (n > TSCREEN.off) n = TSCREEN.off;
+ TSCREEN.off -= n;
+ selscroll(0, -n);