summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Lohmann2012-10-28 06:32:54 +0100
committerChristoph Lohmann2012-10-28 06:32:54 +0100
commit35421371ca150b6bd0fd1330e7b30a99029dbce1 (patch)
tree071233f251151c201c8f7182ce4693b6ea14c952
parentee3fbeb6c8c354cf4db226a5b1583c531ea37af4 (diff)
downloadst-35421371ca150b6bd0fd1330e7b30a99029dbce1.tar.gz
st-35421371ca150b6bd0fd1330e7b30a99029dbce1.tar.xz
st-35421371ca150b6bd0fd1330e7b30a99029dbce1.zip
Applying the patch of Rafa Garcia Gallega <rafael.garcia.gallego@gmail.com> to
not emulate the vt100 behaviour of selecting all whitespaces. Thanks!
-rw-r--r--st.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/st.c b/st.c
index e19cefd..3cd7831 100644
--- a/st.c
+++ b/st.c
@@ -678,7 +678,7 @@ bpress(XEvent *e) {
void
selcopy(void) {
- char *str, *ptr, *p;
+ char *str, *ptr;
int x, y, bufsize, is_selected = 0, size;
Glyph *gp;
@@ -693,11 +693,12 @@ selcopy(void) {
for(x = 0; x < term.col; x++) {
gp = &term.line[y][x];
- if(!(is_selected = selected(x, y)))
+ if(!(is_selected = selected(x, y))
+ || !(gp->state & GLYPH_SET)) {
continue;
- p = (gp->state & GLYPH_SET) ? gp->c : " ";
- size = utf8size(p);
- memcpy(ptr, p, size);
+ }
+ size = utf8size(gp->c);
+ memcpy(ptr, gp->c, size);
ptr += size;
}
/* \n at the end of every selected line except for the last one */