Re: TERM={xterm-r5,xterm-r6} behaving badly with man(1)

From: Daniel Eischen <deischen_at_freebsd.org>
Date: Sun, 29 Jul 2007 23:58:05 -0400 (EDT)
On Mon, 30 Jul 2007, Rong-en Fan wrote:
>
> Thomas has explained me in details about what his has. Judge from
> Daniel's original post, I would like to know which libncurses.so that
> xterm is using, and is devel/ncurses or devel/ncurses-devel installed?
>
> The ncurses update was in late Jan and enable widec support in Mar, IIRC.
> Since then, only few non-functional Makefile changes to base's ncurses
> part. BTW, base's less is updated in early Jun, not sure if it's related.

It looks like the less import broke this behavior (inhibiting ti/te
when invoked as more).  See the changes between r1.7 and r1.8 of
contrib/less/screen.c.

$ cvs diff -u -r1.7 -r1.8 screen.c
...

-       /*
-        * This loses for terminals with termcap entries with ti/te strings
-        * that switch to/from an alternate screen, and we're in quit_at_eof
-        * (eg, more(1)).
-        */
-       if (!quit_at_eof && !less_is_more) {
-               sc_init = ltgetstr("ti", &sp);
-               sc_deinit = ltgetstr("te", &sp);
-       }
-
+       sc_init = ltgetstr("ti", &sp);
         if (sc_init == NULL)
                 sc_init = "";

+       sc_deinit= ltgetstr("te", &sp);
         if (sc_deinit == NULL)
                 sc_deinit = "";

This seems to fix it:

Index: main.c
===================================================================
RCS file: /opt/FreeBSD/cvs/src/contrib/less/main.c,v
retrieving revision 1.9
diff -u -r1.9 main.c
--- main.c      23 Jun 2007 15:28:00 -0000      1.9
+++ main.c      30 Jul 2007 02:58:39 -0000
_at__at_ -165,7 +165,7 _at__at_
                 quit(QUIT_OK);
         }

-       if (less_is_more && get_quit_at_eof())
+       if (less_is_more || get_quit_at_eof())
                 no_init = quit_if_one_screen = TRUE;

-- 
DE
Received on Mon Jul 30 2007 - 01:58:07 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:15 UTC