On Wed, May 14, 2025 at 02:10:51AM +0200, Vincent Lefevre wrote: > On 2025-05-14 01:59:38 +0200, Vincent Lefevre wrote: > > Package: xterm > > Version: 398-1 > > Severity: normal > > > > When I double-click on a word at the beginning of a line such that > > this word is preceded by spaces, one space is incorrectly included > > in the selection. > > > > For instance, type > > > > printf "%$((COLUMNS+1))syz\n" x > > > > which gives a line full of spaces and the word "xyz" on the next > > physical line. If I double-click on the word "xyz", only "xyz" > > is highlighted as expected, but if I paste the selection with > > the middle-button, I get " xyz", i.e. with a preceding space. > > Note that this is a regression in the latest version. > Version 397-1 did not have this issue. That was from * fix several minor issues reported by Coverity. but in addressing a warning about overflow, I overlooked the special case where lastcol is one past the right margin, in this function: static int Length(TScreen *screen, int row, int scol, int ecol) { CLineData *ld = GET_LINEDATA(screen, row); const int lastcol = LastTextCol(screen, ld, row); if (ecol > lastcol) ecol = lastcol; if (ecol < scol) /* scol is less than lastcol in this instance */ ecol = scol; return (ecol - scol + 1); } I'll amend that to ensure the function returns a positive value... -- Thomas E. Dickey <dickey@invisible-island.net> https://invisible-island.net
Attachment:
signature.asc
Description: PGP signature