]> git.cameronkatri.com Git - mandoc.git/blobdiff - tbl_term.c
Note version 1.11.4 bits. Here we go!
[mandoc.git] / tbl_term.c
index b93cae3ebf455c5d722addd6eef8b8ca89d122a2..1e567c690e610a9ab72f2a225bbb3c66bbd76dd7 100644 (file)
@@ -1,6 +1,7 @@
-/*     $Id: tbl_term.c,v 1.17 2011/01/10 14:56:06 kristaps Exp $ */
+/*     $Id: tbl_term.c,v 1.19 2011/01/25 12:07:30 schwarze Exp $ */
 /*
- * Copyright (c) 2009 Kristaps Dzonsons <kristaps@kth.se>
+ * Copyright (c) 2009, 2011 Kristaps Dzonsons <kristaps@kth.se>
+ * Copyright (c) 2011 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
@@ -197,6 +198,8 @@ tbl_hrule(struct termp *tp, const struct tbl_span *sp)
                width = tp->tbl.cols[hp->ident].width;
                switch (hp->pos) {
                case (TBL_HEAD_DATA):
+                       if (hp->next)
+                               width += 2;
                        tbl_char(tp, c, width);
                        break;
                case (TBL_HEAD_DVERT):
@@ -305,6 +308,9 @@ tbl_data(struct termp *tp, const struct tbl *tbl,
        case (TBL_CELL_NUMBER):
                tbl_number(tp, tbl, dp, col);
                break;
+       case (TBL_CELL_DOWN):
+               tbl_char(tp, ASCII_NBRSP, col->width);
+               break;
        default:
                abort();
                /* NOTREACHED */
@@ -368,11 +374,11 @@ tbl_literal(struct termp *tp, const struct tbl_dat *dp,
                padr = col->width - term_strlen(tp, dp->string) - ssz;
                break;
        case (TBL_CELL_CENTRE):
-               padl = col->width - term_strlen(tp, dp->string);
-               if (padl % 2)
-                       padr++;
-               padl /= 2;
-               padr += padl;
+               padr = col->width - term_strlen(tp, dp->string);
+               if (3 > padr)
+                       break;
+               padl = (padr - 1) / 2;
+               padr -= padl;
                break;
        case (TBL_CELL_RIGHT):
                padl = col->width - term_strlen(tp, dp->string);
@@ -384,7 +390,7 @@ tbl_literal(struct termp *tp, const struct tbl_dat *dp,
 
        tbl_char(tp, ASCII_NBRSP, padl);
        term_word(tp, dp->string);
-       tbl_char(tp, ASCII_NBRSP, padr);
+       tbl_char(tp, ASCII_NBRSP, padr + 2);
 }
 
 static void