]> git.cameronkatri.com Git - mandoc.git/commitdiff
Make dp->string always consist of a value.
authorKristaps Dzonsons <kristaps@bsd.lv>
Mon, 10 Jan 2011 14:56:06 +0000 (14:56 +0000)
committerKristaps Dzonsons <kristaps@bsd.lv>
Mon, 10 Jan 2011 14:56:06 +0000 (14:56 +0000)
tbl_data.c
tbl_term.c

index c7bca6499d03cf3d0cbcb106614489597f4841f1..e30f1959d9a0d25f4f009d775c72a0e6be27172f 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: tbl_data.c,v 1.16 2011/01/10 14:40:30 kristaps Exp $ */
+/*     $Id: tbl_data.c,v 1.17 2011/01/10 14:56:06 kristaps Exp $ */
 /*
  * Copyright (c) 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
  *
@@ -140,7 +140,6 @@ tbl_cdata(struct tbl_node *tbl, int ln, const char *p)
        pos = 0;
 
        dat = tbl->last_span->last;
-       dat->pos = TBL_DATA_DATA;
 
        if (p[pos] == 'T' && p[pos + 1] == '}') {
                pos += 2;
@@ -156,6 +155,8 @@ tbl_cdata(struct tbl_node *tbl, int ln, const char *p)
                /* Fallthrough: T} is part of a word. */
        }
 
+       dat->pos = TBL_DATA_DATA;
+
        if (dat->string) {
                sz = strlen(p) + strlen(dat->string) + 2;
                dat->string = mandoc_realloc(dat->string, sz);
index 23a48de91755818da620cadb564a9b0d9d6e8586..b93cae3ebf455c5d722addd6eef8b8ca89d122a2 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: tbl_term.c,v 1.16 2011/01/10 14:40:30 kristaps Exp $ */
+/*     $Id: tbl_term.c,v 1.17 2011/01/10 14:56:06 kristaps Exp $ */
 /*
  * Copyright (c) 2009 Kristaps Dzonsons <kristaps@kth.se>
  *
@@ -355,36 +355,35 @@ tbl_literal(struct termp *tp, const struct tbl_dat *dp,
                const struct roffcol *col)
 {
        size_t           padl, padr, ssz;
-       const char      *str;
 
        padl = padr = 0;
 
-       str = dp->string ? dp->string : "";
+       assert(dp->string);
 
        ssz = term_len(tp, 1);
 
        switch (dp->layout->pos) {
        case (TBL_CELL_LONG):
                padl = ssz;
-               padr = col->width - term_strlen(tp, str) - ssz;
+               padr = col->width - term_strlen(tp, dp->string) - ssz;
                break;
        case (TBL_CELL_CENTRE):
-               padl = col->width - term_strlen(tp, str);
+               padl = col->width - term_strlen(tp, dp->string);
                if (padl % 2)
                        padr++;
                padl /= 2;
                padr += padl;
                break;
        case (TBL_CELL_RIGHT):
-               padl = col->width - term_strlen(tp, str);
+               padl = col->width - term_strlen(tp, dp->string);
                break;
        default:
-               padr = col->width - term_strlen(tp, str);
+               padr = col->width - term_strlen(tp, dp->string);
                break;
        }
 
        tbl_char(tp, ASCII_NBRSP, padl);
-       term_word(tp, str);
+       term_word(tp, dp->string);
        tbl_char(tp, ASCII_NBRSP, padr);
 }
 
@@ -395,7 +394,6 @@ tbl_number(struct termp *tp, const struct tbl *tbl,
 {
        char            *cp;
        char             buf[2];
-       const char      *str;
        size_t           sz, psz, ssz, d, padl;
        int              i;
 
@@ -404,19 +402,19 @@ tbl_number(struct termp *tp, const struct tbl *tbl,
         * and the maximum decimal; right-pad by the remaining amount.
         */
 
-       str = dp->string ? dp->string : "";
+       assert(dp->string);
 
-       sz = term_strlen(tp, str);
+       sz = term_strlen(tp, dp->string);
 
        buf[0] = tbl->decimal;
        buf[1] = '\0';
 
        psz = term_strlen(tp, buf);
 
-       if (NULL != (cp = strrchr(str, tbl->decimal))) {
+       if (NULL != (cp = strrchr(dp->string, tbl->decimal))) {
                buf[1] = '\0';
-               for (ssz = 0, i = 0; cp != &str[i]; i++) {
-                       buf[0] = str[i];
+               for (ssz = 0, i = 0; cp != &dp->string[i]; i++) {
+                       buf[0] = dp->string[i];
                        ssz += term_strlen(tp, buf);
                }
                d = ssz + psz;
@@ -429,7 +427,7 @@ tbl_number(struct termp *tp, const struct tbl *tbl,
        padl = col->decimal - d;
 
        tbl_char(tp, ASCII_NBRSP, padl);
-       term_word(tp, str);
+       term_word(tp, dp->string);
        tbl_char(tp, ASCII_NBRSP, col->width - sz - padl);
 }