less -r broken with long lines

Fred Gilham gilham at csl.sri.com
Wed Jul 18 14:00:17 UTC 2007


Rui Paulo <rpaulo at fnop.net> wrote:

> Hi,
> There's something about how the new less version handles lines greater
> than the virtual terminal's size.
> 
> Test case on an xterm/rxvt/screen session:
> 
> less -r /etc/syslog.conf  - you won't see the $FreeBSD$ id tag because
> of the long line regarding to /var/log/messages. Try resizing your
> terminal so that this line fits in the right number of columns. You'll
> see the problem disappear.
> 
> less -r /etc/rc.firewall - since there are no long lines in the first
> page, you won't notice the problem
> 
> Everything works fine if less is used without the -r argument or if less
> is run from the console.
> 
> Does this ring any bell to anyone?
> 
> Regards.
> -- 
> Rui Paulo

This is documented behavior.  From the "less" manpage:

       -r or --raw-control-chars
              Causes "raw" control characters to be displayed.  The default is
              to display control characters  using  the  caret  notation;  for
              example, a control-A (octal 001) is displayed as "^A".  Warning:
              when the -r option is used, less cannot keep track of the actual
              appearance  of  the screen (since this depends on how the screen
              responds to each type of control character).  Thus, various dis-
              play  problems may result, such as long lines being split in the
              wrong place.

-- 
Fred Gilham                                  gilham at csl.sri.com
The Net interprets Microsoft products as damage, and routes around them.


More information about the freebsd-current mailing list