When showing more than one formatted manual page, insert horizontal lines
authorschwarze <schwarze@openbsd.org>
Wed, 31 Dec 2014 16:50:54 +0000 (16:50 +0000)
committerschwarze <schwarze@openbsd.org>
Wed, 31 Dec 2014 16:50:54 +0000 (16:50 +0000)
between pages.  Suggested by Theo Buehler <theo at math dot ethz dot ch>.
Even in UTF-8 output mode, do not use fancy line drawing characters such
that you can easily use /^--- to skip to the next manual in your pager.

usr.bin/mandoc/main.c
usr.bin/mandoc/main.h
usr.bin/mandoc/term_ascii.c

index a55cfaf..d6d82c0 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: main.c,v 1.115 2014/12/21 14:49:00 schwarze Exp $ */
+/*     $OpenBSD: main.c,v 1.116 2014/12/31 16:50:54 schwarze Exp $ */
 /*
  * Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010, 2011, 2012, 2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -412,7 +412,9 @@ main(int argc, char *argv[])
 
                if (MANDOCLEVEL_OK != rc && curp.wstop)
                        break;
-               argc--;
+
+               if (--argc && curp.outtype <= OUTT_UTF8)
+                       ascii_sepline(curp.outdata);
        }
 
        if (curp.outfree)
@@ -597,6 +599,8 @@ passthrough(const char *file, int fd, int synopsis_only)
        ssize_t          nw;
        int              print;
 
+       fflush(stdout);
+
        if ((stream = fdopen(fd, "r")) == NULL) {
                close(fd);
                syscall = "fdopen";
index 1ce65e6..04e8b19 100644 (file)
@@ -1,6 +1,7 @@
-/*     $OpenBSD: main.h,v 1.14 2014/12/01 08:05:02 schwarze Exp $ */
+/*     $OpenBSD: main.h,v 1.15 2014/12/31 16:50:54 schwarze Exp $ */
 /*
  * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
+ * Copyright (c) 2014 Ingo Schwarze <schwarze@openbsd.org>
  *
  * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -45,6 +46,7 @@ void           *locale_alloc(const struct mchars *, char *);
 void            *utf8_alloc(const struct mchars *, char *);
 void            *ascii_alloc(const struct mchars *, char *);
 void             ascii_free(void *);
+void             ascii_sepline(void *);
 
 void            *pdf_alloc(const struct mchars *, char *);
 void            *ps_alloc(const struct mchars *, char *);
index 635c2e8..5f4d661 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: term_ascii.c,v 1.28 2014/12/19 17:10:42 schwarze Exp $ */
+/*     $OpenBSD: term_ascii.c,v 1.29 2014/12/31 16:50:54 schwarze Exp $ */
 /*
  * Copyright (c) 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -164,6 +164,20 @@ ascii_setwidth(struct termp *p, int iop, size_t width)
        p->rmargin = p->maxrmargin = p->defrmargin;
 }
 
+void
+ascii_sepline(void *arg)
+{
+       struct termp    *p;
+       size_t           i;
+
+       p = (struct termp *)arg;
+       putchar('\n');
+       for (i = 0; i < p->defrmargin; i++)
+               putchar('-');
+       putchar('\n');
+       putchar('\n');
+}
+
 static size_t
 ascii_width(const struct termp *p, int c)
 {