summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2011-01-01 22:27:08 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2011-01-01 22:27:08 +0000
commite42168f3c9168eabd49050d6133c5a77f19985c7 (patch)
treec2b557609ab8741e69245a09c9a586c06d5f6eee
parent36060e6f93695c0dc996afbb3c9f53f6a825488b (diff)
downloadmandoc-e42168f3c9168eabd49050d6133c5a77f19985c7.tar.gz
Add a warning if a data cell has no layout. Also make -Ttree show this
with a little star next to the entry (yeah, this is mostly for testing).
-rw-r--r--main.c4
-rw-r--r--mandoc.h5
-rw-r--r--tbl_data.c3
-rw-r--r--tree.c2
4 files changed, 13 insertions, 1 deletions
diff --git a/main.c b/main.c
index bdeeac8e..16e8899e 100644
--- a/main.c
+++ b/main.c
@@ -176,9 +176,13 @@ static const char * const mandocerrs[MANDOCERR_MAX] = {
"bad comment style",
"unknown escape sequence",
"unterminated quoted string",
+
+ /* related to tables */
+ "extra data cells",
"generic error",
+ /* related to tables */
"bad table syntax",
"bad table option",
"bad table layout",
diff --git a/mandoc.h b/mandoc.h
index 911df76e..5eba175d 100644
--- a/mandoc.h
+++ b/mandoc.h
@@ -99,13 +99,18 @@ enum mandocerr {
MANDOCERR_BADESCAPE, /* unknown escape sequence */
MANDOCERR_BADQUOTE, /* unterminated quoted string */
+ /* related to tables */
+ MANDOCERR_TBLEXTRADAT, /* extra data cells */
+
MANDOCERR_ERROR, /* ===== start of errors ===== */
+ /* related to tables */
MANDOCERR_TBL, /* bad table syntax */
MANDOCERR_TBLOPT, /* bad table option */
MANDOCERR_TBLLAYOUT, /* bad table layout */
MANDOCERR_TBLNOLAYOUT, /* no table layout cells specified */
MANDOCERR_TBLNODATA, /* no table data cells specified */
+
MANDOCERR_ROFFLOOP, /* input stack limit exceeded, infinite loop? */
MANDOCERR_BADCHAR, /* skipping bad character */
MANDOCERR_NOTEXT, /* skipping text before the first section header */
diff --git a/tbl_data.c b/tbl_data.c
index 56b13c99..708a9ea6 100644
--- a/tbl_data.c
+++ b/tbl_data.c
@@ -52,6 +52,9 @@ data(struct tbl *tbl, struct tbl_span *dp,
dat = mandoc_calloc(1, sizeof(struct tbl_dat));
dat->layout = cp;
+ if (NULL == dat->layout)
+ TBL_MSG(tbl, MANDOCERR_TBLEXTRADAT, ln, *pos);
+
if (dp->last) {
dp->last->next = dat;
dp->last = dat;
diff --git a/tree.c b/tree.c
index ef9e8f39..02c1be43 100644
--- a/tree.c
+++ b/tree.c
@@ -278,7 +278,7 @@ print_span(const struct tbl_span *sp)
default:
break;
}
- printf("[%s]", dp->string);
+ printf("[%s%s]", dp->string, dp->layout ? "" : "*");
if (dp->next)
putchar(' ');
}