Created
March 17, 2013 08:32
-
-
Save anonymous/5180682 to your computer and use it in GitHub Desktop.
0001-Revert-Factor-the-code-to-copy-a-line-into-a-method.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From 45722f36932108f2d52c00817175aeeb3aa960ac Mon Sep 17 00:00:00 2001 | |
From: Emmanuel Benisty <benisty.e@gmail.com> | |
Date: Sat, 16 Mar 2013 12:15:11 +0700 | |
Subject: [PATCH] Revert "Factor the code to copy a line into a method." | |
This reverts commit 1266c2219cd346106fb0db2088fdfbe380fcc603. | |
--- | |
src/rxvt.h | 1 - | |
src/screen.C | 31 ++++++++++++++++++------------- | |
2 files changed, 18 insertions(+), 14 deletions(-) | |
diff --git a/src/rxvt.h b/src/rxvt.h | |
index 8a6c895..e2a8640 100644 | |
--- a/src/rxvt.h | |
+++ b/src/rxvt.h | |
@@ -1487,7 +1487,6 @@ struct rxvt_term : zero_initialized, rxvt_vars, rxvt_screen | |
void scr_kill_char (line_t &l, int col) const NOTHROW; | |
void scr_set_char_rend (line_t &l, int col, rend_t rend); | |
int scr_scroll_text (int row1, int row2, int count) NOTHROW; | |
- void copy_line (line_t &dst, line_t &src); | |
void scr_reset (); | |
void scr_release () NOTHROW; | |
void scr_clear (bool really = false) NOTHROW; | |
diff --git a/src/screen.C b/src/screen.C | |
index 2589a08..ff5dcd4 100644 | |
--- a/src/screen.C | |
+++ b/src/screen.C | |
@@ -200,16 +200,6 @@ rxvt_term::scr_alloc () NOTHROW | |
row_buf = swap_buf + nrow; | |
} | |
-void | |
-rxvt_term::copy_line (line_t &dst, line_t &src) | |
-{ | |
- scr_blank_screen_mem (dst, DEFAULT_RSTYLE); | |
- dst.l = min (src.l, ncol); | |
- memcpy (dst.t, src.t, sizeof (text_t) * dst.l); | |
- memcpy (dst.r, src.r, sizeof (rend_t) * dst.l); | |
- dst.f = src.f; | |
-} | |
- | |
void ecb_cold | |
rxvt_term::scr_reset () | |
{ | |
@@ -252,6 +242,8 @@ rxvt_term::scr_reset () | |
line_t *prev_swap_buf = swap_buf; | |
line_t *prev_row_buf = row_buf; | |
+ int common_col = min (prev_ncol, ncol); | |
+ | |
scr_alloc (); | |
if (!prev_row_buf) | |
@@ -295,8 +287,16 @@ rxvt_term::scr_reset () | |
for (int row = min (nrow, prev_nrow); row--; ) | |
{ | |
- copy_line (drawn_buf [row], prev_drawn_buf [row]); | |
- copy_line (swap_buf [row], prev_swap_buf [row]); | |
+ scr_blank_screen_mem (drawn_buf [row], DEFAULT_RSTYLE); | |
+ scr_blank_screen_mem (swap_buf [row], DEFAULT_RSTYLE); | |
+ | |
+ memcpy (drawn_buf [row].t, prev_drawn_buf [row].t, sizeof (text_t) * common_col); | |
+ memcpy (drawn_buf [row].r, prev_drawn_buf [row].r, sizeof (rend_t) * common_col); | |
+ | |
+ memcpy (swap_buf [row].t, prev_swap_buf [row].t, sizeof (text_t) * common_col); | |
+ memcpy (swap_buf [row].r, prev_swap_buf [row].r, sizeof (rend_t) * common_col); | |
+ swap_buf [row].l = min (prev_swap_buf [row].l, ncol); | |
+ swap_buf [row].f = prev_swap_buf [row].f; | |
} | |
int p = MOD (term_start + prev_nrow, prev_total_rows); // previous row | |
@@ -401,7 +401,12 @@ rxvt_term::scr_reset () | |
line_t &src = prev_row_buf [MOD (term_start + row, prev_total_rows)]; | |
line_t &dst = row_buf [row]; | |
- copy_line (dst, src); | |
+ scr_blank_screen_mem (dst, DEFAULT_RSTYLE); | |
+ | |
+ memcpy (dst.t, src.t, sizeof (text_t) * common_col); | |
+ memcpy (dst.r, src.r, sizeof (rend_t) * common_col); | |
+ dst.l = min (src.l, ncol); | |
+ dst.f = src.f; | |
} | |
for (int row = prev_nrow; row < nrow; row++) | |
-- | |
1.8.1.5 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment