diff options
author | shige <shige@FreeBSD.org> | 2002-11-15 16:24:37 +0000 |
---|---|---|
committer | shige <shige@FreeBSD.org> | 2002-11-15 16:24:37 +0000 |
commit | e02e8fe7bc867b65d839ee10f6bd301adf3a5ede (patch) | |
tree | 2b121ed17190cb139d1492789cc4ef0371af83d6 /japanese/kterm | |
parent | fa709aabd5e89a9d3aa584ad665cd0c41d3407b0 (diff) | |
download | FreeBSD-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-ad | 65 | ||||
-rw-r--r-- | japanese/kterm/files/patch-ae | 11 | ||||
-rw-r--r-- | japanese/kterm/files/patch-af | 7 |
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 |