X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=st.c;h=b2e5e2228ae46706a963cbe831b1cc9d400dfbb2;hb=88a8f85a8a6de56d23510cf6e7810d90478085a5;hp=c408ca95af00ea71e2e2cad2ccabb6f977716c34;hpb=111199cf226b33f12e6ee3e66e50fbe5c3566e33;p=st.git diff --git a/st.c b/st.c index c408ca9..b2e5e22 100644 --- a/st.c +++ b/st.c @@ -596,14 +596,17 @@ selcopy(void) { /* append every set & selected glyph to the selection */ for(y = 0; y < term.row; y++) { for(x = 0; x < term.col; x++) { - is_selected = selected(x, y); - if((term.line[y][x].state & GLYPH_SET) && is_selected) { - int size = utf8size(term.line[y][x].c); - memcpy(ptr, term.line[y][x].c, size); - ptr += size; - } + int size; + char *p; + Glyph *gp = &term.line[y][x]; + + if(!(is_selected = selected(x, y))) + continue; + p = (gp->state & GLYPH_SET) ? gp->c : " "; + size = utf8size(p); + memcpy(ptr, p, size); + ptr += size; } - /* \n at the end of every selected line except for the last one */ if(is_selected && y < sel.e.y) *ptr++ = '\n';