Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
Adélie Package Tree
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Model registry
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Nathan Owens
Adélie Package Tree
Commits
78b89d98
Verified
Commit
78b89d98
authored
5 years ago
by
Max Rees
Browse files
Options
Downloads
Patches
Plain Diff
user/xterm: fix regression when using tmux horizontal splits
parent
c442959c
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
user/xterm/APKBUILD
+4
-2
4 additions, 2 deletions
user/xterm/APKBUILD
user/xterm/revert-xterm-347i.patch
+213
-0
213 additions, 0 deletions
user/xterm/revert-xterm-347i.patch
with
217 additions
and
2 deletions
user/xterm/APKBUILD
+
4
−
2
View file @
78b89d98
...
...
@@ -2,7 +2,7 @@
# Maintainer: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com>
pkgname
=
xterm
pkgver
=
348
pkgrel
=
1
pkgrel
=
2
pkgdesc
=
"An X-based terminal emulator"
url
=
"https://invisible-island.net/xterm/"
arch
=
"all"
...
...
@@ -14,6 +14,7 @@ makedepends="libx11-dev libsm-dev libice-dev libxt-dev utmps-dev libxaw-dev
subpackages
=
"
$pkgname
-doc"
source
=
"https://invisible-mirror.net/archives/xterm/xterm-
$pkgver
.tgz
posix-ptmx.patch
revert-xterm-347i.patch
"
build
()
{
...
...
@@ -45,4 +46,5 @@ package() {
}
sha512sums
=
"852896c0aba885bafc80baad899fc56910dce66bf5df6b3fef3f998efc33af9d30b68cfb0c92c7028365ac4944af3d3c198bc0e408ca09e949b993a79c1e6dd9 xterm-348.tgz
e29ef756243faa6f5ced3c74d6879b4fc8f9839501becae49af4f458d0f499bcda40a0eb66dada9cae8bf9789256daf3d1605ac1b5b4301654d8b5ac6eaca81d posix-ptmx.patch"
e29ef756243faa6f5ced3c74d6879b4fc8f9839501becae49af4f458d0f499bcda40a0eb66dada9cae8bf9789256daf3d1605ac1b5b4301654d8b5ac6eaca81d posix-ptmx.patch
e2a632ce02adf43e3936f79ac694b60bee3742b05ee5165a4e834af650db8e90a9135de2c5daa21be0448c02c0be862c7b688d3f1373a23d9b6db15ee67a7c81 revert-xterm-347i.patch"
This diff is collapsed.
Click to expand it.
user/xterm/revert-xterm-347i.patch
0 → 100644
+
213
−
0
View file @
78b89d98
From 97ef79a674a13f806c58dc7d6eeeaa2e31cbca11 Mon Sep 17 00:00:00 2001
From: Max Rees <maxcrees@me.com>
Date: Sun, 18 Aug 2019 21:12:19 -0500
Subject: [PATCH] Revert "snapshot of project "xterm", label xterm-347i"
The changes introduced in xterm-347i cause a regression in tmux's
"horizontal" (read: one pane on the left, and one pane on the right)
splitting behavior, making the graphical output unstable and unreadable.
This reverts commit 7914e2709aa7836bfb61cd21f83880d4b7d44d8d.
---
charproc.c | 43 +++++++++++++++----------------------------
screen.c | 5 +++--
util.c | 3 +--
xterm.h | 16 +++-------------
4 files changed, 22 insertions(+), 45 deletions(-)
diff --git a/charproc.c b/charproc.c
index 5c0536c..3b04842 100644
--- a/charproc.c
+++ b/charproc.c
@@ -1280,7 +1280,7 @@
set_ansi_conformance(TScreen *screen, int level)
* Set scrolling margins. VTxxx terminals require that the top/bottom are
* different, so we have at least two lines in the scrolling region.
*/
-static void
+void
set_tb_margins(TScreen *screen, int top, int bottom)
{
TRACE(("set_tb_margins %d..%d, prior %d..%d\n",
@@ -1297,7 +1297,7 @@
set_tb_margins(TScreen *screen, int top, int bottom)
screen->bot_marg = screen->max_row;
}
-static void
+void
set_lr_margins(TScreen *screen, int left, int right)
{
TRACE(("set_lr_margins %d..%d, prior %d..%d\n",
@@ -1317,26 +1317,13 @@
set_lr_margins(TScreen *screen, int left, int right)
#define reset_tb_margins(screen) set_tb_margins(screen, 0, screen->max_row)
#define reset_lr_margins(screen) set_lr_margins(screen, 0, screen->max_col)
-void
-resetMargins(XtermWidget xw)
+static void
+reset_margins(TScreen *screen)
{
- TScreen *screen = TScreenOf(xw);
-
- UIntClr(xw->flags, LEFT_RIGHT);
reset_tb_margins(screen);
reset_lr_margins(screen);
}
-static void
-resetRendition(XtermWidget xw)
-{
- TScreen *screen = TScreenOf(xw);
- (void) screen;
- ResetItalics(xw);
- UIntClr(xw->flags,
- (SGR_MASK | SGR_MASK2 | INVISIBLE));
-}
-
void
set_max_col(TScreen *screen, int cols)
{
@@ -3225,7 +3212,9 @@
doparsing(XtermWidget xw, unsigned c, struct ParseState *sp)
case DEFAULT:
/* FALLTHRU */
case 0:
- resetRendition(xw);
+ ResetItalics(xw);
+ UIntClr(xw->flags,
+ (SGR_MASK | SGR_MASK2 | INVISIBLE));
if_OPT_ISO_COLORS(screen, {
reset_SGR_Colors(xw);
});
@@ -3706,12 +3695,7 @@
doparsing(XtermWidget xw, unsigned c, struct ParseState *sp)
TRACE(("CASE_DECALN - alignment test\n"));
if (screen->cursor_state)
HideCursor();
- /*
- * DEC STD 070 does not mention left/right margins. Likely the
- * text was for VT100, and not updated for VT420.
- */
- resetRendition(xw);
- resetMargins(xw);
+ reset_margins(screen);
CursorSet(screen, 0, 0, xw->flags);
xtermParseRect(xw, 0, 0, &myRect);
ScrnFillRectangle(xw, &myRect, 'E', 0, False);
@@ -6074,13 +6058,16 @@
dpmodes(XtermWidget xw, BitFunc func)
if (screen->c132) {
if (!(xw->flags & NOCLEAR_COLM))
ClearScreen(xw);
+ CursorSet(screen, 0, 0, xw->flags);
if ((j = IsSM()? 132 : 80) !=
((xw->flags & IN132COLUMNS) ? 132 : 80) ||
j != MaxCols(screen))
RequestResize(xw, -1, j, True);
(*func) (&xw->flags, IN132COLUMNS);
- resetMargins(xw);
- CursorSet(screen, 0, 0, xw->flags);
+ if (xw->flags & IN132COLUMNS) {
+ UIntClr(xw->flags, LEFT_RIGHT);
+ reset_lr_margins(screen);
+ }
}
break;
case srm_DECSCLM: /* (slow scroll) */
@@ -10636,7 +10623,7 @@
VTRealize(Widget w,
set_cur_row(screen, 0);
set_max_col(screen, Width(screen) / screen->fullVwin.f_width - 1);
set_max_row(screen, Height(screen) / screen->fullVwin.f_height - 1);
- resetMargins(xw);
+ reset_margins(screen);
memset(screen->sc, 0, sizeof(screen->sc));
@@ -11951,7 +11938,7 @@
ReallyReset(XtermWidget xw, Bool full, Bool saved)
#endif
/* reset scrolling region */
- resetMargins(xw);
+ reset_margins(screen);
bitclr(&xw->flags, ORIGIN);
diff --git a/screen.c b/screen.c
index 4e8a0bf..2af76bc 100644
--- a/screen.c
+++ b/screen.c
@@ -1,4 +1,4 @@
-/* $XTermId: screen.c,v 1.578 2019/07/19 22:35:41 tom Exp $ */
+/* $XTermId: screen.c,v 1.577 2019/06/30 18:45:09 tom Exp $ */
/*
* Copyright 1999-2018,2019 by Thomas E. Dickey
@@ -2236,7 +2236,8 @@
ScreenResize(XtermWidget xw,
}
/* adjust scrolling region */
- resetMargins(xw);
+ set_tb_margins(screen, 0, screen->max_row);
+ set_lr_margins(screen, 0, screen->max_col);
UIntClr(*flags, ORIGIN);
if (screen->cur_row > screen->max_row)
diff --git a/util.c b/util.c
index 7623efa..7300300 100644
--- a/util.c
+++ b/util.c
@@ -1,4 +1,4 @@
-/* $XTermId: util.c,v 1.803 2019/07/20 00:10:34 tom Exp $ */
+/* $XTermId: util.c,v 1.802 2019/07/19 00:40:41 tom Exp $ */
/*
* Copyright 1999-2018,2019 by Thomas E. Dickey
@@ -3687,7 +3687,6 @@
drawXtermText(XtermWidget xw,
#define NOT_BOLD (attr_flags & ~BOLDATTR(screen))
font = getNormXftFont(xw, attr_flags, &did_ul);
font0 = IS_BOLD ? getNormXftFont(xw, NOT_BOLD, &did_ul) : font;
- (void) font0;
#if OPT_RENDERWIDE
wfont = getWideXftFont(xw, attr_flags);
wfont0 = IS_BOLD ? getWideXftFont(xw, NOT_BOLD) : wfont;
diff --git a/xterm.h b/xterm.h
index 89a4482..fecac7f 100644
--- a/xterm.h
+++ b/xterm.h
@@ -1,4 +1,4 @@
-/* $XTermId: xterm.h,v 1.841 2019/07/19 22:35:06 tom Exp $ */
+/* $XTermId: xterm.h,v 1.839 2019/07/19 00:40:41 tom Exp $ */
/*
* Copyright 1999-2018,2019 by Thomas E. Dickey
@@ -957,11 +957,12 @@
extern void lookupSelectUnit(XtermWidget /* xw */, Cardinal /* item */, String /
extern void releaseCursorGCs(XtermWidget /*xw*/);
extern void releaseWindowGCs(XtermWidget /*xw*/, VTwin * /*win*/);
extern void resetCharsets (TScreen * /* screen */);
-extern void resetMargins (XtermWidget /* xw */);
extern void restoreCharsets (TScreen * /* screen */, DECNRCM_codes * /* source */);
extern void saveCharsets (TScreen * /* screen */, DECNRCM_codes * /* target */);
extern void set_max_col(TScreen * /* screen */, int /* cols */);
extern void set_max_row(TScreen * /* screen */, int /* rows */);
+extern void set_lr_margins (TScreen * /* screen */, int /* left */, int /* right */);
+extern void set_tb_margins (TScreen * /* screen */, int /* top */, int /* bottom */);
extern void unparse_end (XtermWidget /* xw */);
extern void unparseputc (XtermWidget /* xw */, int /* c */);
extern void unparseputc1 (XtermWidget /* xw */, int /* c */);
@@ -1406,17 +1407,6 @@
extern void LineSetFlag(LineData /* ld */, int /* flag */);
#define ScrnIsColInMargins(screen, col) \
((col) >= (screen)->lft_marg && (col) <= (screen)->rgt_marg)
-/*
- * If the vertical scrolling margins are active, they will be something other
- * than the first/last row of the visible screen, as well as being distinct.
- */
-#define IsTopBottomMode(xw) (ScrnTopMargin(xw) < ScrnBottomMargin(xw))
-#define ScrnTopMargin(xw) TScreenOf(xw)->top_marg
-#define ScrnBottomMargin(xw) TScreenOf(xw)->bot_marg
-
-/*
- * Left/right horizontal scrolling margins are only active when DECLRMM is.
- */
#define IsLeftRightMode(xw) ((xw)->flags & LEFT_RIGHT)
#define ScrnLeftMargin(xw) (IsLeftRightMode(xw) \
? TScreenOf(xw)->lft_marg \
--
2.22.1
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment