]> git.cameronkatri.com Git - mandoc.git/blobdiff - tbl_term.c
If no output device was allocated because no file wanted to produce output,
[mandoc.git] / tbl_term.c
index d30bd59087e42bc53497f004ab0d4039dc164498..eceaa4b60f4ad74434978ea72ad8e775697db262 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: tbl_term.c,v 1.36 2015/01/30 04:11:50 schwarze Exp $ */
+/*     $Id: tbl_term.c,v 1.43 2015/10/12 00:08:16 schwarze Exp $ */
 /*
  * Copyright (c) 2009, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2011, 2012, 2014, 2015 Ingo Schwarze <schwarze@openbsd.org>
 /*
  * Copyright (c) 2009, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2011, 2012, 2014, 2015 Ingo Schwarze <schwarze@openbsd.org>
@@ -47,14 +47,14 @@ static size_t
 term_tbl_strlen(const char *p, void *arg)
 {
 
 term_tbl_strlen(const char *p, void *arg)
 {
 
-       return(term_strlen((const struct termp *)arg, p));
+       return term_strlen((const struct termp *)arg, p);
 }
 
 static size_t
 term_tbl_len(size_t sz, void *arg)
 {
 
 }
 
 static size_t
 term_tbl_len(size_t sz, void *arg)
 {
 
-       return(term_len((const struct termp *)arg, sz));
+       return term_len((const struct termp *)arg, sz);
 }
 
 void
 }
 
 void
@@ -81,9 +81,7 @@ term_tbl(struct termp *tp, const struct tbl_span *sp)
         * calculate the table widths and decimal positions.
         */
 
         * calculate the table widths and decimal positions.
         */
 
-       if (sp->flags & TBL_SPAN_FIRST) {
-               term_flushln(tp);
-
+       if (tp->tbl.cols == NULL) {
                tp->tbl.len = term_tbl_len;
                tp->tbl.slen = term_tbl_strlen;
                tp->tbl.arg = tp;
                tp->tbl.len = term_tbl_len;
                tp->tbl.slen = term_tbl_strlen;
                tp->tbl.arg = tp;
@@ -189,7 +187,7 @@ term_tbl(struct termp *tp, const struct tbl_span *sp)
         * existing table configuration and set it to NULL.
         */
 
         * existing table configuration and set it to NULL.
         */
 
-       if (sp->flags & TBL_SPAN_LAST) {
+       if (sp->next == NULL) {
                if (sp->opts->opts & (TBL_OPT_DBOX | TBL_OPT_BOX)) {
                        tbl_hrule(tp, sp, 1);
                        tp->skipvsp = 1;
                if (sp->opts->opts & (TBL_OPT_DBOX | TBL_OPT_BOX)) {
                        tbl_hrule(tp, sp, 1);
                        tp->skipvsp = 1;
@@ -268,12 +266,10 @@ tbl_data(struct termp *tp, const struct tbl_opts *opts,
                tbl_char(tp, ASCII_NBRSP, col->width);
                return;
        case TBL_DATA_HORIZ:
                tbl_char(tp, ASCII_NBRSP, col->width);
                return;
        case TBL_DATA_HORIZ:
-               /* FALLTHROUGH */
        case TBL_DATA_NHORIZ:
                tbl_char(tp, '-', col->width);
                return;
        case TBL_DATA_NDHORIZ:
        case TBL_DATA_NHORIZ:
                tbl_char(tp, '-', col->width);
                return;
        case TBL_DATA_NDHORIZ:
-               /* FALLTHROUGH */
        case TBL_DATA_DHORIZ:
                tbl_char(tp, '=', col->width);
                return;
        case TBL_DATA_DHORIZ:
                tbl_char(tp, '=', col->width);
                return;
@@ -289,11 +285,8 @@ tbl_data(struct termp *tp, const struct tbl_opts *opts,
                tbl_char(tp, '=', col->width);
                break;
        case TBL_CELL_LONG:
                tbl_char(tp, '=', col->width);
                break;
        case TBL_CELL_LONG:
-               /* FALLTHROUGH */
        case TBL_CELL_CENTRE:
        case TBL_CELL_CENTRE:
-               /* FALLTHROUGH */
        case TBL_CELL_LEFT:
        case TBL_CELL_LEFT:
-               /* FALLTHROUGH */
        case TBL_CELL_RIGHT:
                tbl_literal(tp, dp, col);
                break;
        case TBL_CELL_RIGHT:
                tbl_literal(tp, dp, col);
                break;
@@ -305,7 +298,6 @@ tbl_data(struct termp *tp, const struct tbl_opts *opts,
                break;
        default:
                abort();
                break;
        default:
                abort();
-               /* NOTREACHED */
        }
 }
 
        }
 }
 
@@ -414,9 +406,9 @@ tbl_number(struct termp *tp, const struct tbl_opts *opts,
 static void
 tbl_word(struct termp *tp, const struct tbl_dat *dp)
 {
 static void
 tbl_word(struct termp *tp, const struct tbl_dat *dp)
 {
-       const void      *prev_font;
+       int              prev_font;
 
 
-       prev_font = term_fontq(tp);
+       prev_font = tp->fonti;
        if (dp->layout->flags & TBL_CELL_BOLD)
                term_fontpush(tp, TERMFONT_BOLD);
        else if (dp->layout->flags & TBL_CELL_ITALIC)
        if (dp->layout->flags & TBL_CELL_BOLD)
                term_fontpush(tp, TERMFONT_BOLD);
        else if (dp->layout->flags & TBL_CELL_ITALIC)