aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usr/xsrc/external/mit/xterm/dist/patch-scroll-bottom49
-rw-r--r--usr/xsrc/external/mit/xterm/dist/patch-scroll-lock-altscreen17
-rw-r--r--usr/xsrc/external/mit/xterm/dist/patch-scroll-lock-scrollkey14
3 files changed, 80 insertions, 0 deletions
diff --git a/usr/xsrc/external/mit/xterm/dist/patch-scroll-bottom b/usr/xsrc/external/mit/xterm/dist/patch-scroll-bottom
new file mode 100644
index 0000000..865bac8
--- /dev/null
+++ b/usr/xsrc/external/mit/xterm/dist/patch-scroll-bottom
@@ -0,0 +1,49 @@
+$NetBSD$
+
+Add scroll-bottom action.
+
+--- charproc.c.orig 2018-03-14 06:04:22.000000000 +0000
++++ charproc.c
+@@ -259,6 +259,7 @@ static XtActionsRec actionsList[] = {
+ { "quit", HandleQuit },
+ { "redraw", HandleRedraw },
+ { "scroll-back", HandleScrollBack },
++ { "scroll-bottom", HandleScrollBottom },
+ { "scroll-forw", HandleScrollForward },
+ { "secure", HandleSecure },
+ { "select-cursor-end", HandleKeyboardSelectEnd },
+
+--- scrollbar.c.orig 2021-07-16 07:44:23.160211555 +0000
++++ scrollbar.c
+@@ -757,6 +757,20 @@ HandleScrollBack(
+ }
+ }
+
++/*ARGSUSED*/
++void
++HandleScrollBottom(
++ Widget xw,
++ XEvent *event GCC_UNUSED,
++ String *params,
++ Cardinal *nparams)
++{
++ XtermWidget xtw;
++
++ if ((xtw = getXtermWidget(xw)) != 0)
++ WindowScroll(xtw, 0, True);
++}
++
+ #if OPT_SCROLL_LOCK
+ #define SCROLL_LOCK_LED 3
+
+
+--- xterm.h.orig 2019-07-11 08:08:47.000000000 +0000
++++ xterm.h
+@@ -1346,6 +1346,7 @@ extern void deleteScrollback (TScreen *
+ /* scrollbar.c */
+ extern void DoResizeScreen (XtermWidget /* xw */);
+ extern void HandleScrollBack PROTO_XT_ACTIONS_ARGS;
++extern void HandleScrollBottom PROTO_XT_ACTIONS_ARGS;
+ extern void HandleScrollForward PROTO_XT_ACTIONS_ARGS;
+ extern void ResizeScrollBar (XtermWidget /* xw */);
+ extern void ScrollBarDrawThumb (Widget /* scrollWidget */);
diff --git a/usr/xsrc/external/mit/xterm/dist/patch-scroll-lock-altscreen b/usr/xsrc/external/mit/xterm/dist/patch-scroll-lock-altscreen
new file mode 100644
index 0000000..2091460
--- /dev/null
+++ b/usr/xsrc/external/mit/xterm/dist/patch-scroll-lock-altscreen
@@ -0,0 +1,17 @@
+$NetBSD$
+
+Disable Scroll Lock-specific behavior in the alternate screen.
+This makes visual programs like vi (that make use of the alternate
+screen) behave normally even if Scroll Lock is active.
+
+--- util.c.orig 2018-03-14 06:04:22.000000000 +0000
++++ util.c
+@@ -570,7 +570,7 @@ xtermScroll(XtermWidget xw, int amount)
+ amount = i;
+
+ #if OPT_SCROLL_LOCK
+- if (screen->allowScrollLock && screen->scroll_lock) {
++ if (screen->allowScrollLock && screen->scroll_lock && !screen->whichBuf) {
+ refreshheight = 0;
+ screen->scroll_amt = 0;
+ screen->refresh_amt = 0;
diff --git a/usr/xsrc/external/mit/xterm/dist/patch-scroll-lock-scrollkey b/usr/xsrc/external/mit/xterm/dist/patch-scroll-lock-scrollkey
new file mode 100644
index 0000000..56c6e1c
--- /dev/null
+++ b/usr/xsrc/external/mit/xterm/dist/patch-scroll-lock-scrollkey
@@ -0,0 +1,14 @@
+$NetBSD$
+
+--- input.c.orig 2021-07-17 15:01:03.290490780 +0000
++++ input.c
+@@ -1376,6 +1376,9 @@ Input(XtermWidget xw,
+ }
+ unparse_end(xw);
+
++ if (screen->scrollkey && kd.keysym != XK_Return)
++ SetScrollLock(screen, False);
++
+ if (key && !TEK4014_ACTIVE(xw))
+ AdjustAfterInput(xw);
+