Expand the last line with '\n' in case of overselection.
Thanks Alexander Rezinsky <alexrez@gmail.com>!master
parent
634c247fa7
commit
0c2b513d01
17
st.c
17
st.c
|
@ -900,7 +900,7 @@ bpress(XEvent *e) {
|
|||
void
|
||||
selcopy(void) {
|
||||
char *str, *ptr;
|
||||
int x, y, bufsize, size;
|
||||
int x, y, bufsize, size, i, ex;
|
||||
Glyph *gp, *last;
|
||||
|
||||
if(sel.bx == -1) {
|
||||
|
@ -938,6 +938,21 @@ selcopy(void) {
|
|||
*/
|
||||
if(y < sel.e.y && !((gp-1)->mode & ATTR_WRAP))
|
||||
*ptr++ = '\n';
|
||||
|
||||
/*
|
||||
* If the last selected line expands in the selection
|
||||
* after the visible text '\n' is appended.
|
||||
*/
|
||||
if(y == sel.e.y) {
|
||||
i = term.col;
|
||||
while(--i > 0 && term.line[y][i].c[0] == ' ')
|
||||
/* nothing */;
|
||||
ex = sel.e.x;
|
||||
if(sel.b.y == sel.e.y && sel.e.x < sel.b.x)
|
||||
ex = sel.b.x;
|
||||
if(i < ex)
|
||||
*ptr++ = '\n';
|
||||
}
|
||||
}
|
||||
*ptr = 0;
|
||||
}
|
||||
|
|
Reference in New Issue