TERM={xterm-r5,xterm-r6} behaving badly with man(1)
Daniel Eischen
deischen at freebsd.org
Mon Jul 30 03:58:07 UTC 2007
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
@@ -165,7 +165,7 @@
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
More information about the freebsd-current
mailing list