--- rxvt-unicode/src/screen.C 2011/01/05 22:29:50 1.360 +++ rxvt-unicode/src/screen.C 2011/01/08 10:15:36 1.362 @@ -2774,7 +2774,7 @@ goto bailout; // realloc should be compatible to XFree, here, and elsewhere, too - ct.value = (unsigned char *)realloc (ct.value, ct.nitems + ct2.nitems + 1); + ct.value = (unsigned char *)rxvt_realloc (ct.value, ct.nitems + ct2.nitems + 1); memcpy (ct.value + ct.nitems, ct2.value, ct2.nitems + 1); ct.nitems += ct2.nitems; @@ -2833,7 +2833,7 @@ while (incr_buf_fill + ct.nitems > incr_buf_size) { incr_buf_size = incr_buf_size ? incr_buf_size * 2 : 128*1024; - incr_buf = (char *)realloc (incr_buf, incr_buf_size); + incr_buf = (char *)rxvt_realloc (incr_buf, incr_buf_size); } memcpy (incr_buf + incr_buf_fill, ct.value, ct.nitems); @@ -3093,14 +3093,12 @@ } else #endif - if (!ROW(row).is_longer () && row != selection.end.row + if (!ROW(row).is_longer () + && (row != selection.end.row || end_col != selection.end.col) && (row != selection.beg.row || selection.beg.col < ncol)) new_selection_text[ofs++] = C0_LF; } - if (end_col != selection.end.col) - new_selection_text[ofs++] = C0_LF; - new_selection_text[ofs] = 0; if (ofs == 0)