Selection now handles empty lines less counter-intuitively.
Now, when you are selecting a region, you will get all empty lines that happen to be in it, including trailing ones. Last line terminator is omitted as it previously was, though. Signed-off-by: Christoph Lohmann <20h@r-36.net>master
parent
da182612b7
commit
e5ff746430
7
st.c
7
st.c
|
@ -752,7 +752,7 @@ bpress(XEvent *e) {
|
||||||
void
|
void
|
||||||
selcopy(void) {
|
selcopy(void) {
|
||||||
char *str, *ptr;
|
char *str, *ptr;
|
||||||
int x, y, bufsize, isselected = 0, size;
|
int x, y, bufsize, size;
|
||||||
Glyph *gp, *last;
|
Glyph *gp, *last;
|
||||||
|
|
||||||
if(sel.bx == -1) {
|
if(sel.bx == -1) {
|
||||||
|
@ -763,7 +763,6 @@ selcopy(void) {
|
||||||
|
|
||||||
/* append every set & selected glyph to the selection */
|
/* append every set & selected glyph to the selection */
|
||||||
for(y = sel.b.y; y < sel.e.y + 1; y++) {
|
for(y = sel.b.y; y < sel.e.y + 1; y++) {
|
||||||
isselected = 0;
|
|
||||||
gp = &term.line[y][0];
|
gp = &term.line[y][0];
|
||||||
last = gp + term.col;
|
last = gp + term.col;
|
||||||
|
|
||||||
|
@ -774,8 +773,6 @@ selcopy(void) {
|
||||||
for(x = 0; gp <= last; x++, ++gp) {
|
for(x = 0; gp <= last; x++, ++gp) {
|
||||||
if(!selected(x, y)) {
|
if(!selected(x, y)) {
|
||||||
continue;
|
continue;
|
||||||
} else {
|
|
||||||
isselected = 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
size = utf8size(gp->c);
|
size = utf8size(gp->c);
|
||||||
|
@ -792,7 +789,7 @@ selcopy(void) {
|
||||||
* st.
|
* st.
|
||||||
* FIXME: Fix the computer world.
|
* FIXME: Fix the computer world.
|
||||||
*/
|
*/
|
||||||
if(isselected && y < sel.e.y)
|
if(y < sel.e.y)
|
||||||
*ptr++ = '\n';
|
*ptr++ = '\n';
|
||||||
}
|
}
|
||||||
*ptr = 0;
|
*ptr = 0;
|
||||||
|
|
Reference in New Issue