URI: 
       Removing wrapping newlines from selection - st - simple terminal
  HTML git clone https://git.parazyd.org/st
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 98a1085d0e7c3d84e19185ba666c4b0c725cd974
   DIR parent 51466e019a67e9319e6c5a7fa4205842ca860b71
  HTML Author: Ben Hendrickson <ben@1m7.com>
       Date:   Fri, 22 Aug 2014 09:25:04 -0700
       
       Removing wrapping newlines from selection
       
       When getting selected text, lines that were wrapped because of length
       ought not include the wrapping newline in the selection.
       
       This comes up, for example, when copying a bash command that is long
       enough to wrap from the console and pasting it back into the console.
       The extra newline breaks it.
       
       Similiarly, changes behavior when trimming whitespace from the end of a
       physical line to only do so if the line does not wrap. Otherwise we are
       trimming whitespace from the middle of a logical line, which may change
       its meaning.
       
       Signed-off-by: Roberto E. Vargas Caballero <k0ga@shike2.com>
       
       Diffstat:
         M st.c                                |       7 +++++--
       
       1 file changed, 5 insertions(+), 2 deletions(-)
       ---
   DIR diff --git a/st.c b/st.c
       @@ -662,7 +662,10 @@ y2row(int y) {
        static int tlinelen(int y) {
                int i = term.col;
        
       -        while (i > 0 && term.line[y][i - 1].c[0] == ' ')
       +        if(term.line[y][i - 1].mode & ATTR_WRAP)
       +                return i;
       +
       +        while(i > 0 && term.line[y][i - 1].c[0] == ' ')
                        --i;
        
                return i;
       @@ -959,7 +962,7 @@ getsel(void) {
                         * st.
                         * FIXME: Fix the computer world.
                         */
       -                if(sel.ne.y > y || lastx >= linelen)
       +                if((y < sel.ne.y || lastx >= linelen) && !(last->mode & ATTR_WRAP))
                                *ptr++ = '\n';
                }
                *ptr = 0;