On Sun, Oct 26, 2025 at 06:10:50AM -0400, Thomas Dickey wrote:
> On Sun, Oct 26, 2025 at 05:55:53AM -0400, Thomas Dickey wrote:
> > On Sun, Oct 26, 2025 at 04:53:38AM -0400, Thomas Dickey wrote:
> > > On Sat, Oct 25, 2025 at 08:53:02PM -0500, G. Branden Robinson wrote:
> > > > At 2025-10-26T00:43:19+0000, Thomas Dickey wrote:
> > > > >       + correct a recent change to curs_termino.3x, along with 
> > > > > formatting
> > > > >         fixes for manpages.
> > > > 
> > > > This change regresses formatting on DWB 3.3, Plan 9, and Solaris 10
> > > > troffs, causing some synopsis lines to overset (overrun the right
> > > > margin).  That's because those formatters use a line length of 65n in
> > > > nroff mode, not 78-80n as Heirloom Doctools troff and groff (for their
> > > > man(7) packages), and mandoc(1) do.
> > > 
> > > so... can we set the line-length for those in a directive?
> > 
> > For instance, would
> >     .if n .ll 70
> > 
> > work with those older versions, or would (putting it before .TH for 
> > instance)
> > be ignored?
> 
> I see with groff that works after the .TH line, but is ignored with Solaris 
> 10.
> Also, comparisons don't appear to work, e.g,
>       .if n .l > 70

Revisiting
        .if n .ll 70

I see that the .SH, .PP, etc., commands reset the line length in Solaris 10.
Without modifying, I see this:
-------------------------------------------------------------------------------
Library calls                                     curs_insstr(3X)



NAME
     insstr, winsstr,  mvinsstr,  mvinsnstr,  insnstr,  winsnstr,
     mvwinsstr, mvwinsnstr - insert a string in a curses window

SYNOPSIS
     #include <curses.h>

     int insstr(const char * str);
     int winsstr(WINDOW * win, const char * str);
     int mvinsstr(int y, int x, const char * str);
     int mvwinsstr(WINDOW * win, int y, int x, const char * str);

     int insnstr(const char * str, int n);
     int winsnstr(WINDOW * win, const char * str, int n);
     int mvinsnstr(int y, int x, const char * str, int n);
     int mvwinsnstr(WINDOW * win, int y, int x, const char * str, int n);

DESCRIPTION
     winsstr inserts a string str before  the  character  at  the
     cursor  in  window  win as if by calling winsch(3X) for each
     char in str.  No line wrapping is performed.  Characters  to
     the  right  of  the  cursor  are shifted right; those at the
     right edge of the window may be lost.  winsstr stops insert-
     ing  if  it would have to wrap to the next line to write the
     next char in str.   The  cursor  position  does  not  change
     (after  moving  to  (y, x), if specified).  insnstr does the
     same, but inserts at most n characters, or as many as possi-
     ble  (up  to  the  end  of  the  line)  if  n  is  negative.
     ncurses(3X) describes the variants of these functions.
-------------------------------------------------------------------------------

which admittedly is odd to look at, but since we're not often using
terminals which have only 65 columns, is arguably okay.

Solaris 10 nroff can't handle terminfo.5 anyway...

-- 
Thomas E. Dickey <[email protected]>
https://invisible-island.net

Attachment: signature.asc
Description: PGP signature

Reply via email to