# st

Unnamed repository; edit this file 'description' to name the repository.

| Log | Files | Refs | README | LICENSE

    commit 0c2b513d01697aea20bb4a2a144b55e72c625e86
    parent 634c247fa76a5f649cdcc51109970e46ddaf5c32
    Author: Christoph Lohmann <20h@r-36.net>
    Date:   Sat,  4 May 2013 19:00:32 +0200

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

    Thanks Alexander Rezinsky <alexrez@gmail.com>!

    Diffstat:
    Mst.c | 17++++++++++++++++-

    1 file changed, 16 insertions(+), 1 deletion(-)
    diff --git a/st.c b/st.c
    @@ -900,7 +900,7 @@ bpress(XEvent *e) {
     void
     selcopy(void) {
     	char *str, *ptr;
    -	int x, y, bufsize, size;
    +	int x, y, bufsize, size, i, ex;
     	Glyph *gp, *last;

     	if(sel.bx == -1) {
    @@ -938,6 +938,21 @@ selcopy(void) {
     			 */
     			if(y < sel.e.y && !((gp-1)->mode & ATTR_WRAP))
     				*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;
     	}