summaryrefslogtreecommitdiffstats
path: root/japanese/kterm
diff options
context:
space:
mode:
authorshige <shige@FreeBSD.org>2002-11-15 16:24:37 +0000
committershige <shige@FreeBSD.org>2002-11-15 16:24:37 +0000
commite02e8fe7bc867b65d839ee10f6bd301adf3a5ede (patch)
tree2b121ed17190cb139d1492789cc4ef0371af83d6 /japanese/kterm
parentfa709aabd5e89a9d3aa584ad665cd0c41d3407b0 (diff)
downloadFreeBSD-ports-e02e8fe7bc867b65d839ee10f6bd301adf3a5ede.zip
FreeBSD-ports-e02e8fe7bc867b65d839ee10f6bd301adf3a5ede.tar.gz
Support termcap "ec"(erase_chars).
This fixed scroll-and-wipe-screen problem, for example, using /usr/bin/vi(4.x-RELEASE). # There is "ec" directive in "kterm" termcap. # But, kterm-6.2.0_4 or former does not support "ec"(erase_chars). PORTREVISION bumped. Pointed by: KFB03633@nifty.ne.jp
Diffstat (limited to 'japanese/kterm')
-rw-r--r--japanese/kterm/files/patch-ad65
-rw-r--r--japanese/kterm/files/patch-ae11
-rw-r--r--japanese/kterm/files/patch-af7
3 files changed, 83 insertions, 0 deletions
diff --git a/japanese/kterm/files/patch-ad b/japanese/kterm/files/patch-ad
new file mode 100644
index 0000000..3f81b4f
--- /dev/null
+++ b/japanese/kterm/files/patch-ad
@@ -0,0 +1,65 @@
+--- util.c.orig Wed Nov 13 23:56:22 2002
++++ util.c Wed Nov 13 23:53:41 2002
+@@ -36,6 +36,7 @@
+
+ #include <stdio.h>
+
++static void ClearInLine(TScreen *screen, int row, int col, int len);
+ static void horizontal_copy_area();
+ static void vertical_copy_area();
+
+@@ -706,6 +707,54 @@
+ /*
+ * Clear last part of cursor's line, inclusive.
+ */
++ClearRightN (screen, n)
++register TScreen *screen;
++register int n;
++{
++ int i;
++ int len = (screen->max_col - screen->cur_col + 1);
++
++ if (n < 0) /* the remainder of the line */
++ n = screen->max_col + 1;
++ if (n == 0) /* default for 'ECH' */
++ n = 1;
++
++ if (len > n)
++ len = n;
++
++ ClearInLine(screen, screen->cur_row, screen->cur_col, len);
++}
++
++/*
++ * Clear the given row, for the given range of columns.
++ */
++static void
++ClearInLine(TScreen *screen, int row, int col, int len)
++{
++ if (col + len >= screen->max_col + 1) {
++ len = screen->max_col + 1 - col;
++ }
++
++ if (screen->cursor_state)
++ HideCursor();
++
++ screen->do_wrap = 0;
++
++ if (row - screen->topline <= screen->max_row) {
++ if (!AddToRefresh(screen)) {
++ if (screen->scroll_amt)
++ FlushScroll(screen);
++ XClearArea(screen->display,
++ VWindow(screen),
++ CursorX (screen, col),
++ CursorY (screen, row),
++ len * FontWidth(screen),
++ FontHeight(screen),
++ FALSE);
++ }
++ }
++}
++
+ ClearRight (screen)
+ register TScreen *screen;
+ {
diff --git a/japanese/kterm/files/patch-ae b/japanese/kterm/files/patch-ae
new file mode 100644
index 0000000..6eb856d
--- /dev/null
+++ b/japanese/kterm/files/patch-ae
@@ -0,0 +1,11 @@
+--- VTPrsTbl.c.orig Wed Nov 13 23:56:22 2002
++++ VTPrsTbl.c Wed Nov 13 01:10:07 2002
+@@ -490,7 +490,7 @@
+ CASE_GROUND_STATE,
+ CASE_GROUND_STATE,
+ /* X Y Z [ */
+-CASE_GROUND_STATE,
++CASE_ECH,
+ CASE_GROUND_STATE,
+ CASE_GROUND_STATE,
+ CASE_GROUND_STATE,
diff --git a/japanese/kterm/files/patch-af b/japanese/kterm/files/patch-af
new file mode 100644
index 0000000..643bedf
--- /dev/null
+++ b/japanese/kterm/files/patch-af
@@ -0,0 +1,7 @@
+--- VTparse.h.orig Wed Nov 13 23:56:22 2002
++++ VTparse.h Wed Nov 13 01:07:07 2002
+@@ -118,3 +118,4 @@
+ #define CASE_SCS_STATE 77
+ #define CASE_GSET_VERSION_STATE 78
+ #define CASE_GSET_VERSION 79
++#define CASE_ECH 80
OpenPOWER on IntegriCloud