Index: main.c --- main.c.orig 2009-03-30 21:45:52 +0200 +++ main.c 2009-04-12 18:34:20 +0200 @@ -57,6 +57,7 @@ extern int missing_cap; extern int know_dumb; +extern int no_init; extern int quit_if_one_screen; extern int pr_type; @@ -158,6 +159,8 @@ quit(QUIT_OK); } + if (less_is_more) + no_init = TRUE; if (less_is_more && get_quit_at_eof()) quit_if_one_screen = TRUE; @@ -171,7 +174,7 @@ } editproto = lgetenv("LESSEDIT"); if (editproto == NULL || *editproto == '\0') - editproto = "%E ?lm+%lm. %f"; + editproto = "%E ?lm+%lm. '%f'"; #endif /* ============================================================================= The following patch changes the order in which "less" tries to find workable terminal libraries. By default it prefers curses and especially ncurses. That is fine in general, because ncurses is superior in features and stability to mostly all terminal libraries. Unfortunately, ncurses _always_ renders on a new blank and second screen and so cannot be used for "ls -l | less -E -r" or similar commands on an xterm where the input to display is less than a terminal height (because in this case the screen will flicker once and then you're back at your shell prompt without seeing the contents). On the other hand, less does not need such a sophisticated terminal library, so allow it to prefer termlib or termcap before the curses variants. As a side-effect we can remove the ncurses dependency from the package, too. -- rse Index: configure.ac --- configure.ac.orig 2008-05-29 18:47:11 +0200 +++ configure.ac 2009-04-12 18:34:20 +0200 @@ -53,10 +53,10 @@ if test $curses_broken = 0; then -# -- Try tinfo. +# -- Try termcap. if test "x$TERMLIBS" = x; then - if test $have_tinfo = yes; then - TERMLIBS="-ltinfo" + if test $have_termcap = yes; then + TERMLIBS="-ltermcap" SAVE_LIBS=$LIBS LIBS="$LIBS $TERMLIBS" AC_TRY_LINK(, [tgetent(0,0); tgetflag(0); tgetnum(0); tgetstr(0,0);], @@ -66,10 +66,10 @@ fi fi -# -- Try xcurses. +# -- Try termlib. if test "x$TERMLIBS" = x; then - if test $have_xcurses = yes; then - TERMLIBS="-lxcurses" + if test $have_termlib = yes; then + TERMLIBS="-lcurses -ltermlib" SAVE_LIBS=$LIBS LIBS="$LIBS $TERMLIBS" AC_TRY_LINK(, [tgetent(0,0); tgetflag(0); tgetnum(0); tgetstr(0,0);], @@ -79,10 +79,10 @@ fi fi -# -- Try ncursesw. +# -- Try tinfo. if test "x$TERMLIBS" = x; then - if test $have_ncursesw = yes; then - TERMLIBS="-lncursesw" + if test $have_tinfo = yes; then + TERMLIBS="-ltinfo" SAVE_LIBS=$LIBS LIBS="$LIBS $TERMLIBS" AC_TRY_LINK(, [tgetent(0,0); tgetflag(0); tgetnum(0); tgetstr(0,0);], @@ -92,10 +92,10 @@ fi fi -# -- Try ncurses. +# -- Try ncursesw. if test "x$TERMLIBS" = x; then - if test $have_ncurses = yes; then - TERMLIBS="-lncurses" + if test $have_ncursesw = yes; then + TERMLIBS="-lncursesw" SAVE_LIBS=$LIBS LIBS="$LIBS $TERMLIBS" AC_TRY_LINK(, [tgetent(0,0); tgetflag(0); tgetnum(0); tgetstr(0,0);], @@ -105,10 +105,10 @@ fi fi -# -- Try curses. +# -- Try ncurses. if test "x$TERMLIBS" = x; then - if test $have_curses = yes; then - TERMLIBS="-lcurses" + if test $have_ncurses = yes; then + TERMLIBS="-lncurses" SAVE_LIBS=$LIBS LIBS="$LIBS $TERMLIBS" AC_TRY_LINK(, [tgetent(0,0); tgetflag(0); tgetnum(0); tgetstr(0,0);], @@ -132,12 +132,11 @@ fi fi fi -fi -# -- Try termcap. +# -- Try curses. if test "x$TERMLIBS" = x; then - if test $have_termcap = yes; then - TERMLIBS="-ltermcap" + if test $have_curses = yes; then + TERMLIBS="-lcurses" SAVE_LIBS=$LIBS LIBS="$LIBS $TERMLIBS" AC_TRY_LINK(, [tgetent(0,0); tgetflag(0); tgetnum(0); tgetstr(0,0);], @@ -147,10 +146,10 @@ fi fi -# -- Try termlib. +# -- Try xcurses. if test "x$TERMLIBS" = x; then - if test $have_termlib = yes; then - TERMLIBS="-lcurses -ltermlib" + if test $have_xcurses = yes; then + TERMLIBS="-lxcurses" SAVE_LIBS=$LIBS LIBS="$LIBS $TERMLIBS" AC_TRY_LINK(, [tgetent(0,0); tgetflag(0); tgetnum(0); tgetstr(0,0);], @@ -160,6 +159,8 @@ fi fi +fi + if test "x$TERMLIBS" = x; then AC_MSG_RESULT(Cannot find terminal libraries - configure failed) exit 1 Index: configure --- configure.orig 2009-03-09 07:54:40 +0100 +++ configure 2009-04-12 18:34:20 +0200 @@ -4466,10 +4466,10 @@ if test $curses_broken = 0; then -# -- Try tinfo. +# -- Try termcap. if test "x$TERMLIBS" = x; then - if test $have_tinfo = yes; then - TERMLIBS="-ltinfo" + if test $have_termcap = yes; then + TERMLIBS="-ltermcap" SAVE_LIBS=$LIBS LIBS="$LIBS $TERMLIBS" cat >conftest.$ac_ext <<_ACEOF @@ -4524,10 +4524,10 @@ fi fi -# -- Try xcurses. +# -- Try termlib. if test "x$TERMLIBS" = x; then - if test $have_xcurses = yes; then - TERMLIBS="-lxcurses" + if test $have_termlib = yes; then + TERMLIBS="-lcurses -ltermlib" SAVE_LIBS=$LIBS LIBS="$LIBS $TERMLIBS" cat >conftest.$ac_ext <<_ACEOF @@ -4582,10 +4582,10 @@ fi fi -# -- Try ncursesw. +# -- Try tinfo. if test "x$TERMLIBS" = x; then - if test $have_ncursesw = yes; then - TERMLIBS="-lncursesw" + if test $have_tinfo = yes; then + TERMLIBS="-ltinfo" SAVE_LIBS=$LIBS LIBS="$LIBS $TERMLIBS" cat >conftest.$ac_ext <<_ACEOF @@ -4640,10 +4640,10 @@ fi fi -# -- Try ncurses. +# -- Try ncursesw. if test "x$TERMLIBS" = x; then - if test $have_ncurses = yes; then - TERMLIBS="-lncurses" + if test $have_ncursesw = yes; then + TERMLIBS="-lncursesw" SAVE_LIBS=$LIBS LIBS="$LIBS $TERMLIBS" cat >conftest.$ac_ext <<_ACEOF @@ -4698,10 +4698,10 @@ fi fi -# -- Try curses. +# -- Try ncurses. if test "x$TERMLIBS" = x; then - if test $have_curses = yes; then - TERMLIBS="-lcurses" + if test $have_ncurses = yes; then + TERMLIBS="-lncurses" SAVE_LIBS=$LIBS LIBS="$LIBS $TERMLIBS" cat >conftest.$ac_ext <<_ACEOF @@ -4815,12 +4815,11 @@ fi fi fi -fi -# -- Try termcap. +# -- Try curses. if test "x$TERMLIBS" = x; then - if test $have_termcap = yes; then - TERMLIBS="-ltermcap" + if test $have_curses = yes; then + TERMLIBS="-lcurses" SAVE_LIBS=$LIBS LIBS="$LIBS $TERMLIBS" cat >conftest.$ac_ext <<_ACEOF @@ -4875,10 +4874,10 @@ fi fi -# -- Try termlib. +# -- Try xcurses. if test "x$TERMLIBS" = x; then - if test $have_termlib = yes; then - TERMLIBS="-lcurses -ltermlib" + if test $have_xcurses = yes; then + TERMLIBS="-lxcurses" SAVE_LIBS=$LIBS LIBS="$LIBS $TERMLIBS" cat >conftest.$ac_ext <<_ACEOF @@ -4933,6 +4932,8 @@ fi fi +fi + if test "x$TERMLIBS" = x; then { $as_echo "$as_me:$LINENO: result: Cannot find terminal libraries - configure failed" >&5 $as_echo "Cannot find terminal libraries - configure failed" >&6; }