less: allow use of last column of terminal
When read_lines tests whether a character will fit on the current line it checks the *next* character but in case of overflow doesn't display the *current* one. This results in the last column of the terminal never being used. The test in re_wrap (used when the terminal width changes or line numbers are enabled/disabled) is different: it does allow the use of the final column. function old new delta read_lines 764 770 +6 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/0 up/down: 6/0) Total: 6 bytes Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
d542d183e1
commit
1ecb996fd2
@ -512,16 +512,6 @@ static void read_lines(void)
|
|||||||
*--p = '\0';
|
*--p = '\0';
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
{
|
|
||||||
size_t new_last_line_pos = last_line_pos + 1;
|
|
||||||
if (c == '\t') {
|
|
||||||
new_last_line_pos += 7;
|
|
||||||
new_last_line_pos &= (~7);
|
|
||||||
}
|
|
||||||
if ((int)new_last_line_pos >= w)
|
|
||||||
break;
|
|
||||||
last_line_pos = new_last_line_pos;
|
|
||||||
}
|
|
||||||
/* ok, we will eat this char */
|
/* ok, we will eat this char */
|
||||||
readpos++;
|
readpos++;
|
||||||
if (c == '\n') {
|
if (c == '\n') {
|
||||||
@ -533,6 +523,16 @@ static void read_lines(void)
|
|||||||
if (c == '\0') c = '\n';
|
if (c == '\0') c = '\n';
|
||||||
*p++ = c;
|
*p++ = c;
|
||||||
*p = '\0';
|
*p = '\0';
|
||||||
|
{
|
||||||
|
size_t new_last_line_pos = last_line_pos + 1;
|
||||||
|
if (c == '\t') {
|
||||||
|
new_last_line_pos += 7;
|
||||||
|
new_last_line_pos &= (~7);
|
||||||
|
}
|
||||||
|
if ((int)new_last_line_pos >= w)
|
||||||
|
break;
|
||||||
|
last_line_pos = new_last_line_pos;
|
||||||
|
}
|
||||||
} /* end of "read chars until we have a line" loop */
|
} /* end of "read chars until we have a line" loop */
|
||||||
#if 0
|
#if 0
|
||||||
//BUG: also triggers on this:
|
//BUG: also triggers on this:
|
||||||
|
Loading…
Reference in New Issue
Block a user