mirror of
https://github.com/LukeSmithxyz/st.git
synced 2024-11-21 23:05:59 +01:00
Expand the last line with '\n' in case of overselection.
Thanks Alexander Rezinsky <alexrez@gmail.com>!
This commit is contained in:
parent
634c247fa7
commit
0c2b513d01
1 changed files with 16 additions and 1 deletions
17
st.c
17
st.c
|
@ -900,7 +900,7 @@ bpress(XEvent *e) {
|
||||||
void
|
void
|
||||||
selcopy(void) {
|
selcopy(void) {
|
||||||
char *str, *ptr;
|
char *str, *ptr;
|
||||||
int x, y, bufsize, size;
|
int x, y, bufsize, size, i, ex;
|
||||||
Glyph *gp, *last;
|
Glyph *gp, *last;
|
||||||
|
|
||||||
if(sel.bx == -1) {
|
if(sel.bx == -1) {
|
||||||
|
@ -938,6 +938,21 @@ selcopy(void) {
|
||||||
*/
|
*/
|
||||||
if(y < sel.e.y && !((gp-1)->mode & ATTR_WRAP))
|
if(y < sel.e.y && !((gp-1)->mode & ATTR_WRAP))
|
||||||
*ptr++ = '\n';
|
*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;
|
*ptr = 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue