XFree86 3.1.2Ei - xterm patch #26 - T.Dickey
 
Here's a patch to fix a problem with xterm's cut/paste and another to modify
the appearance of the highlighting while selecting.  (The changes are
independent, so you can see if the change to screen.c is desirable).
 
--------------------------------------------------------------------------------
  screen.c |   11 +++++++++++
 util.c   |   11 ++++++++++-
 2 files changed, 21 insertions, 1 deletion
--------------------------------------------------------------------------------
 Index: screen.c
--- xterm-25+/screen.c  Sun Aug 11 22:46:01 1996
 +++ xterm-26/screen.c   Tue Aug 20 11:24:01 1996
 @@ -500,6 +500,17 @@
                                maxcol - screen->endHCol + 1, force);
                   maxcol = screen->endHCol - 1;
               }
+
+              /*
 +               * If we're highlighting because the user is doing cut/paste,
 +               * trim the trailing blanks from the highlighted region so we're
 +               * showing the actual extent of the text that'll be cut.
 +               */
 +              if (maxcol >= screen->max_col
 +               && screen->send_mouse_pos != 3)
 +                  while (maxcol > 0 && !(attrs[maxcol] & CHARDRAWN))
 +                       maxcol--;
 +
               /* remaining piece should be hilited */
               hilite = True;
           }
Index: util.c
--- xterm-25+/util.c    Sun Aug 11 22:46:01 1996
 +++ xterm-26/util.c     Tue Aug 20 11:25:08 1996
 @@ -625,7 +625,16 @@
         int len;
 {
        int rc = 1;
-       int flags = CHARDRAWN | TERM_COLOR_FLAGS;
 +       int flags = TERM_COLOR_FLAGS;
 +
+       /*
+        * If we're not clearing to the end of the line, we won't count this as
 +        * "drawn" characters.  We'll only do cut/paste on "drawn" characters,
 +        * so this has the effect of suppressing trailing blanks from a
 +        * selection.
 +        */
+       if (col + len + 1 < screen->max_col)
 +               flags |= CHARDRAWN;
  
        /* If we've marked protected text on the screen, we'll have to
         * check each time we do an erase.