diff options
Diffstat (limited to 'japanese/kterm/files/patch-util.c')
-rw-r--r-- | japanese/kterm/files/patch-util.c | 65 |
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; + { |