"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "src/screen.C" between
rxvt-unicode-9.26.tar.bz2 and rxvt-unicode-9.29.tar.bz2

About: rxvt-unicode is a clone of the terminal emulator rxvt.

screen.C  (rxvt-unicode-9.26.tar.bz2):screen.C  (rxvt-unicode-9.29.tar.bz2)
skipping to change at line 112 skipping to change at line 112
if (!l.valid ()) if (!l.valid ())
{ {
l.alloc (); l.alloc ();
col = 0; col = 0;
width = ncol; width = ncol;
} }
l.touch (); l.touch ();
efs &= ~RS_baseattrMask; // remove italic etc. fontstyles efs &= ~RS_baseattrMask; // remove italic etc. fontstyles
efs = SET_FONT (efs, FONTSET (efs)->find_font (' ')); efs = SET_FONT (efs, FONTSET (efs)->find_space_font ());
text_t *et = l.t + col; text_t *et = l.t + col;
rend_t *er = l.r + col; rend_t *er = l.r + col;
while (width--) while (width--)
{ {
*et++ = ' '; *et++ = ' ';
*er++ = efs; *er++ = efs;
} }
} }
skipping to change at line 144 skipping to change at line 144
// nuke a single wide character at the given column // nuke a single wide character at the given column
void void
rxvt_term::scr_kill_char (line_t &l, int col) const noexcept rxvt_term::scr_kill_char (line_t &l, int col) const noexcept
{ {
// find begin // find begin
while (col > 0 && l.t[col] == NOCHAR) while (col > 0 && l.t[col] == NOCHAR)
col--; col--;
rend_t rend = l.r[col] & ~RS_baseattrMask; rend_t rend = l.r[col] & ~RS_baseattrMask;
rend = SET_FONT (rend, FONTSET (rend)->find_font (' ')); rend = SET_FONT (rend, FONTSET (rend)->find_space_font ());
l.touch (); l.touch ();
// found start, nuke // found start, nuke
do { do {
l.t[col] = ' '; l.t[col] = ' ';
l.r[col] = rend; l.r[col] = rend;
col++; col++;
} while (col < ncol && l.t[col] == NOCHAR); } while (col < ncol && l.t[col] == NOCHAR);
} }
skipping to change at line 309 skipping to change at line 309
memcpy (drawn_buf [row].t, prev_drawn_buf [row].t, sizeof (text_t) * c ommon_col); memcpy (drawn_buf [row].t, prev_drawn_buf [row].t, sizeof (text_t) * c ommon_col);
memcpy (drawn_buf [row].r, prev_drawn_buf [row].r, sizeof (rend_t) * c ommon_col); memcpy (drawn_buf [row].r, prev_drawn_buf [row].r, sizeof (rend_t) * c ommon_col);
copy_line (swap_buf [row], prev_swap_buf [row]); copy_line (swap_buf [row], prev_swap_buf [row]);
} }
int p = MOD (term_start + prev_nrow, prev_total_rows); // previous row int p = MOD (term_start + prev_nrow, prev_total_rows); // previous row
int pend = MOD (term_start + top_row , prev_total_rows); int pend = MOD (term_start + top_row , prev_total_rows);
int q = total_rows; // rewrapped row int q = total_rows; // rewrapped row
if (top_row) if ((rewrap_always || top_row) && !rewrap_never)
{ {
// Re-wrap lines. This is rather ugly, possibly because I am too dumb // Re-wrap lines. This is rather ugly, possibly because I am too dumb
// to come up with a lean and mean algorithm. // to come up with a lean and mean algorithm.
// TODO: maybe optimise when width didn't change // TODO: maybe optimise when width didn't change
row_col_t ocur = screen.cur; row_col_t ocur = screen.cur;
ocur.row = MOD (term_start + ocur.row, prev_total_rows); ocur.row = MOD (term_start + ocur.row, prev_total_rows);
do do
{ {
skipping to change at line 2715 skipping to change at line 2715
* Paste a selection direct to the command fd * Paste a selection direct to the command fd
*/ */
void void
rxvt_term::tt_paste (char *data, unsigned int len) noexcept rxvt_term::tt_paste (char *data, unsigned int len) noexcept
{ {
/* convert normal newline chars into common keyboard Return key sequence */ /* convert normal newline chars into common keyboard Return key sequence */
for (unsigned int i = 0; i < len; i++) for (unsigned int i = 0; i < len; i++)
if (data[i] == C0_LF) if (data[i] == C0_LF)
data[i] = C0_CR; data[i] = C0_CR;
if (priv_modes & PrivMode_BracketPaste) #if ENABLE_FRILLS
if ((priv_modes & PrivMode_BracketPaste) && !option (Opt_disablePasteBrackets)
)
tt_printf ("\x1b[200~"); tt_printf ("\x1b[200~");
#endif
tt_write (data, len); tt_write (data, len);
if (priv_modes & PrivMode_BracketPaste) #if ENABLE_FRILLS
if ((priv_modes & PrivMode_BracketPaste) && !option (Opt_disablePasteBrackets)
)
tt_printf ("\x1b[201~"); tt_printf ("\x1b[201~");
#endif
} }
void void
rxvt_term::paste (char *data, unsigned int len) noexcept rxvt_term::paste (char *data, unsigned int len) noexcept
{ {
if (HOOK_INVOKE ((this, HOOK_TT_PASTE, DT_STR_LEN, data, len, DT_END))) if (HOOK_INVOKE ((this, HOOK_TT_PASTE, DT_STR_LEN, data, len, DT_END)))
return; return;
tt_paste (data, len); tt_paste (data, len);
} }
skipping to change at line 2851 skipping to change at line 2855
t = ROW(row).t + col; t = ROW(row).t + col;
for (; col < end_col; col++) for (; col < end_col; col++)
{ {
if (*t == NOCHAR) if (*t == NOCHAR)
t++; t++;
#if ENABLE_COMBINING #if ENABLE_COMBINING
else if (IS_COMPOSE (*t)) else if (IS_COMPOSE (*t))
{ {
int len = rxvt_composite.expand (*t, 0); int len = rxvt_composite.expand (*t);
extra -= (len - 1); extra -= (len - 1);
if (extra < 0) if (extra < 0)
{ {
extra += size; extra += size;
size += size; size += size;
new_selection_text = (wchar_t *)rxvt_realloc (new_selection_te xt, (size + 4) * sizeof (wchar_t)); new_selection_text = (wchar_t *)rxvt_realloc (new_selection_te xt, (size + 4) * sizeof (wchar_t));
} }
 End of changes. 8 change blocks. 
6 lines changed or deleted 12 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)