]> git.cameronkatri.com Git - mandoc.git/blobdiff - man_term.c
Backed-out warning messages (lots).
[mandoc.git] / man_term.c
index e272b09e701503c0baa15c27ce0d5a3cb7e3ecda..0f6b4c03113379836951ee63b698c878d1fc7b1b 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: man_term.c,v 1.61 2010/05/10 08:27:09 kristaps Exp $ */
+/*     $Id: man_term.c,v 1.67 2010/05/15 20:51:40 kristaps Exp $ */
 /*
  * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
  *
@@ -146,7 +146,6 @@ static      const struct termact termacts[MAN_MAX] = {
        { pre_ign, NULL, MAN_NOTEXT }, /* dei */
        { pre_ign, NULL, MAN_NOTEXT }, /* am */
        { pre_ign, NULL, MAN_NOTEXT }, /* ami */
-       { pre_ign, NULL, MAN_NOTEXT }, /* ig */
        { NULL, NULL, 0 }, /* . */
 };
 
@@ -163,7 +162,7 @@ terminal_man(void *arg, const struct man *man)
        p = (struct termp *)arg;
 
        p->overstep = 0;
-       p->maxrmargin = 65;
+       p->maxrmargin = p->defrmargin;
 
        if (NULL == p->symtab)
                switch (p->enc) {
@@ -484,7 +483,6 @@ pre_IP(DECL_ARGS)
                break;
        case (MAN_HEAD):
                p->flags |= TERMP_NOBREAK;
-               p->flags |= TERMP_TWOSPACE;
                break;
        case (MAN_BLOCK):
                print_bvspace(p, n);
@@ -545,7 +543,6 @@ post_IP(DECL_ARGS)
        case (MAN_HEAD):
                term_flushln(p);
                p->flags &= ~TERMP_NOBREAK;
-               p->flags &= ~TERMP_TWOSPACE;
                p->rmargin = p->maxrmargin;
                break;
        case (MAN_BODY):
@@ -803,6 +800,7 @@ post_RS(DECL_ARGS)
 static void
 print_man_node(DECL_ARGS)
 {
+       size_t           rm, rmax;
        int              c;
 
        c = 1;
@@ -819,10 +817,13 @@ print_man_node(DECL_ARGS)
                /* FIXME: this means that macro lines are munged!  */
 
                if (MANT_LITERAL & mt->fl) {
+                       rm = p->rmargin;
+                       rmax = p->maxrmargin;
                        p->rmargin = p->maxrmargin = TERM_MAXMARGIN;
                        p->flags |= TERMP_NOSPACE;
                        term_flushln(p);
-                       p->rmargin = p->maxrmargin = 65;
+                       p->rmargin = rm;
+                       p->maxrmargin = rmax;
                }
                break;
        default:
@@ -842,6 +843,9 @@ print_man_node(DECL_ARGS)
                if ( ! (MAN_NOTEXT & termacts[n->tok].flags))
                        term_fontrepl(p, TERMFONT_NONE);
        }
+
+       if (MAN_EOS & n->flags)
+               p->flags |= TERMP_SENTENCE;
 }
 
 
@@ -893,13 +897,13 @@ print_man_head(struct termp *p, const struct man_meta *m)
        char            buf[BUFSIZ], title[BUFSIZ];
        size_t          buflen, titlen;
 
-       p->rmargin = p->maxrmargin;
+       /*
+        * Note that old groff would spit out some spaces before the
+        * header.  We discontinue this strange behaviour, but at one
+        * point we did so here.
+        */
 
-#ifdef __OpenBSD__
-       term_vspace(p);
-       term_vspace(p);
-       term_vspace(p);
-#endif
+       p->rmargin = p->maxrmargin;
 
        p->offset = 0;
        buf[0] = title[0] = '\0';
@@ -908,7 +912,7 @@ print_man_head(struct termp *p, const struct man_meta *m)
                strlcpy(buf, m->vol, BUFSIZ);
        buflen = strlen(buf);
 
-       snprintf(title, BUFSIZ, "%s(%d)", m->title, m->msec);
+       snprintf(title, BUFSIZ, "%s(%s)", m->title, m->msec);
        titlen = strlen(title);
 
        p->offset = 0;
@@ -941,12 +945,12 @@ print_man_head(struct termp *p, const struct man_meta *m)
        p->offset = 0;
        p->flags &= ~TERMP_NOSPACE;
 
-#ifdef __OpenBSD__
-       term_vspace(p);
-       term_vspace(p);
-#else
+       /* 
+        * Groff likes to have some leading spaces before content.  Well
+        * that's fine by me.
+        */
+
        term_vspace(p);
        term_vspace(p);
        term_vspace(p);
-#endif
 }