On Mon, 09 May 2022 00:37:58 -0700
"Lyndon Nerenberg (VE7TFX/VE6BBM)" <[email protected]> wrote:

> It seems that the -F flag to less is broken. Instead of reverting to
> cat-like behaviour on short files, it prints nothing at all.
> 
>   : lyndon@orthanc:/home/lyndon; cat typescript
> Script started on Mon May  9 00:22:41 2022
>   : lyndon@orthanc:/home/lyndon; seq 10 > numbers
>   : lyndon@orthanc:/home/lyndon; cat numbers
>   1
>   2
>   3
>   4
>   5
>   6
>   7
>   8
>   9
>   10
>   : lyndon@orthanc:/home/lyndon; less -F numbers
>   : lyndon@orthanc:/home/lyndon; ^D
>   
>   Script done on Mon May  9 00:22:58 2022
> 
> OpenBSD orthanc.ca 7.1 GENERIC.MP#465 amd64
> 
> This is with TERM=xterm. If I set TERM=vt100, it works.  This seems
> to relate to some long-standing oddities I've noticed with the
> 'xterm' terminfo definition OpenBSD uses.  In particular, programs
> like man always switch to the alternate screen buffer when displaying
> output, then switch back afterwards.  I find this very annoying so
> I always compile my own terminfo definition for 'xterm', which works
> everyplace else but not on OpenBSD.
> 
> I've tried poking into this a few times, but I just don't have the
> energy to dive into the guts of curses.  Has anyone else run into
> this, and maybe have some suggestions on where to start digging?
> 
> Here's the terminfo definition I use, FWIW:
> 
> # An xterm without the internal screen memory buffer.  This variant
> # does not save/restore the screen when running termcap based
> applications. # This means the man page you were reading doesn't
> disappear from the screen # when you quit the pager.
> xterm|vs100|xterm terminal emulator,
>       am, xenl, km, mir, msgr,
>       cols#80, it#8, lines#65,
>       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
>       bel=^G, cr=^M, csr=\E[%i%p1%d;%p2%dr, tbc=\E[3g,
>       clear=\E[H\E[2J, el1=\E[1K$<3>, el=\E[K, ed=\E[J,
>       cup=\E[%i%p1%d;%p2%dH, cud1=^J, home=\E[H, cub1=^H,
>       cuf1=\E[C, cuu1=\E[A, dch1=\E[P, dl1=\E[M, enacs=\E(B\E)0,
>       smacs=^N, blink=\E[5m, bold=\E[1m, rev=\E[7m, smso=\E[7m,
>       smul=\E[4m, rmacs=^O, sgr0=\E[m, rmso=\E[m, rmul=\E[m,
>       ich1=\E[@, il1=\E[L, ka1=\EOq, ka3=\EOs, kb2=\EOr, kbs=^H,
>       kc1=\EOp, kc3=\EOn, kcud1=\EOB, kent=\EOM, kf0=\E[21~,
>       kf1=\E[11~, kf10=\EOx, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
>       kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
>       kcub1=\EOD, kcuf1=\EOC, kcuu1=\EOA, rmkx=\E[?1l\E>,
>       smkx=\E[?1h\E=, dch=\E[%p1%dP, dl=\E[%p1%dM,
>       cud=\E[%p1%dB, ich=\E[%p1%d@, il=\E[%p1%dL,
>       cub=\E[%p1%dD, cuf=\E[%p1%dC, cuu=\E[%p1%dA,
>       rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H, rs2=@,  
>       rc=\E8, sc=\E7, ind=^J, ri=\EM,
>       
> sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
>       hts=\EH, ht=^I,
> 
> 
> --lyndon
> 

Just replying to confirm this bug appears for me too.
Using tmux under xterm makes $TERM equal to "screen", and when I `less
-F` on a file that can fit on less than one screen just makes xterm
flicker, with no output... but if I do `less -F foo > bar`, then bar
has the contents of foo... so it's still outputting to stdout,
presumably.

If I manually set $TERM to `xterm` I get no output or flickering, but
`less -F foo > bar` exhibits the same behaivour as above.

TERM=vt100 works for me, likewise.

A recently updated machine to OpenBSD 7.1, if it matters.

Reply via email to