summaryrefslogtreecommitdiff
path: root/japanese/kterm/files/patch-util.c
diff options
context:
space:
mode:
Diffstat (limited to 'japanese/kterm/files/patch-util.c')
-rw-r--r--japanese/kterm/files/patch-util.c65
1 files changed, 65 insertions, 0 deletions
diff --git a/japanese/kterm/files/patch-util.c b/japanese/kterm/files/patch-util.c
new file mode 100644
index 000000000000..3f81b4f7d308
--- /dev/null
+++ b/japanese/kterm/files/patch-util.c
@@ -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;
+ {