Browse Source

Expand the last line with '\n' in case of overselection.

Thanks Alexander Rezinsky <alexrez@gmail.com>!
master
Christoph Lohmann 12 years ago
parent
commit
0c2b513d01
1 changed files with 16 additions and 1 deletions
  1. +16
    -1
      st.c

+ 16
- 1
st.c View File

@ -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…
Cancel
Save