[hackers] [st] Expand the last line with '

From: <git_AT_suckless.org>
Date: Sat, 04 May 2013 19:03:17 +0200

' in case of overselection. || Christoph Lohmann
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0

commit 0c2b513d01697aea20bb4a2a144b55e72c625e86
Author: Christoph Lohmann <20h_AT_r-36.net>
Date: Sat May 4 19:00:32 2013 +0200

    Expand the last line with '
' in case of overselection.
    
    Thanks Alexander Rezinsky <alexrez_AT_gmail.com>!

diff --git a/st.c b/st.c
index e2e6c57..0f47d6d 100644
--- a/st.c
+++ b/st.c
_AT_@ -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) {
_AT_@ -938,6 +938,21 @@ selcopy(void) {
                          */
                         if(y < sel.e.y && !((gp-1)->mode & ATTR_WRAP))
                                 *ptr++ = '
';
+
+ /*
+ * If the last selected line expands in the selection
+ * after the visible text '
' 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++ = '
';
+ }
                 }
                 *ptr = 0;
         }
Received on Sat May 04 2013 - 19:03:17 CEST

This archive was generated by hypermail 2.3.0 : Sat May 04 2013 - 19:12:08 CEST