On 21/07/13(Sun) 10:32, Ted Unangst wrote: > One machine I use has terminals that happen to be very nicely sized at > 75 columns wide. Day to day, this is almost perfect, except when trying > to view a man page, because just a little too much text goes on each > line. > > I think mandoc should adjust its default output width based on the > terminal size. At least in the case where the terminal is narrow. This > diff doesn't change anything if you have wider than 80 column terminals.
I'm also using mandoc in a terminal with less than 80 columns and would really like to have this feature. So you've my ok fwiw. > =================================================================== > RCS file: /cvs/src/usr.bin/mandoc/term_ascii.c,v > retrieving revision 1.10 > diff -u -p -r1.10 term_ascii.c > --- term_ascii.c 1 Jun 2013 14:27:13 -0000 1.10 > +++ term_ascii.c 21 Jul 2013 14:24:58 -0000 > @@ -15,8 +15,10 @@ > * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. > */ > #include <sys/types.h> > +#include <sys/ioctl.h> > > #include <assert.h> > +#include <fcntl.h> > #include <locale.h> > #include <stdint.h> > #include <stdio.h> > @@ -50,11 +52,21 @@ ascii_init(enum termenc enc, char *outop > const char *toks[4]; > char *v; > struct termp *p; > + struct winsize ws; > + int tfd; > > p = mandoc_calloc(1, sizeof(struct termp)); > > p->tabwidth = 5; > p->defrmargin = 78; > + if ((tfd = open("/dev/tty", O_RDWR, 0)) != -1) { > + if (ioctl(tfd, TIOCGWINSZ, &ws) != -1) { > + if (ws.ws_col < 80) > + p->defrmargin = ws.ws_col - 2; > + } > + close(tfd); > + } > + > > p->begin = ascii_begin; > p->end = ascii_end; >