Re: Strange behavior about pattern matching on manual pages [FIXED]

From: Alan Somers <asomers_at_freebsd.org>
Date: Wed, 6 Dec 2017 15:23:33 -0700
On Wed, Dec 6, 2017 at 3:04 PM, Jamie Landeg-Jones <jamie_at_catflap.org>
wrote:

> by <by_at_meetlost.com> wrote:
>
> > Hi,
> >
> > I encounter a problem when viewing manuals via man(1) command.
> >
> > The case is simple, when I try to search something, I press ‘/’, and
> then input the pattern, If it got something in the page, it will direct me
> into the specified place, and then, I continue with ’n’, and it goes well.
> > But the problem is, after a sequence of ’n’, the screen go to the end of
> the manual pages, and keeping press ’n’, I got annoying “...skipping...”,
> the page is full of skipping and parts of the end of the manual page.
>
> Yes. This has been annoying me too - your email prompted me to finally work
> on a fix for it!
>
> Firstly, it isn't man(1) itself - man(1) uses more(1) as the pager.
> more(1) is in itself actually the program less(1), running in "more
> emulation mode".
>
> And less(1) isn't FreeBSD native code - it's imported into the project
> from http://www.greenwoodsoftware.com/less/
>
> I noticed the very latest version of less(1) has been checked into
> freebsd-current, and the issue still occurs there.
>
> Anyway, the fix is two small patches to less(1), please let me know
> if they work for you, and if you see any bad side-effects in man(1) /
> more(1) and less(1) and I'll then try and get them applied upstream.
>
> The patches have been tested against FreeBSD 11.1-STABLE and 12-CURRENT
>
> cheers! Jamie
>
> --- contrib/less/forwback.c.orig        2017-11-20 08:52:33.978356000 +0000
> +++ contrib/less/forwback.c     2017-12-05 15:53:50.517550000 +0000
> _at__at_ -255,7 +255,7 _at__at_
>                  * start the display after the beginning of the file,
>                  * and it is not appropriate to squish in that case.
>                  */
> -               if ((first_time || less_is_more) &&
> +               if ((first_time) &&
>                     pos == NULL_POSITION && !top_scroll &&
>  #if TAGS
>                     tagoption == NULL &&
> --- contrib/less/main.c.orig    2017-11-20 08:52:33.978356000 +0000
> +++ contrib/less/main.c 2017-12-05 15:53:57.291394000 +0000
> _at__at_ -168,7 +168,10 _at__at_
>         }
>
>         if (less_is_more)
> +       {
>                 no_init = TRUE;
> +               scan_option("--tilde");
> +       }
>
>  #if EDITOR
>         editor = lgetenv("VISUAL");
>
>
How about just setting MANPAGER=less in your environment?
Received on Wed Dec 06 2017 - 21:23:41 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:14 UTC