aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tbl.c
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2010-12-29 16:44:23 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2010-12-29 16:44:23 +0000
commitfe145d2365e72a35cd1641adcd3eb55ecf5e5f1d (patch)
tree2a291ea89b1bb6a7b07358697a36b93870c03230 /tbl.c
parentf0b9c96368b59bd1741fefe6209c3475315aea01 (diff)
downloadmandoc-fe145d2365e72a35cd1641adcd3eb55ecf5e5f1d.tar.gz
mandoc-fe145d2365e72a35cd1641adcd3eb55ecf5e5f1d.tar.zst
mandoc-fe145d2365e72a35cd1641adcd3eb55ecf5e5f1d.zip
Initial check-in of table data-row processing. For the time being, this
parses table data then throws it away immediately. It does not yet try to cross-check data rows against layout or anything. This copied more or less completely from tbl.bsd.lv.
Diffstat (limited to 'tbl.c')
-rw-r--r--tbl.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/tbl.c b/tbl.c
index 0d992f16..42e0f0a7 100644
--- a/tbl.c
+++ b/tbl.c
@@ -1,4 +1,4 @@
-/* $Id: tbl.c,v 1.7 2010/12/29 14:53:31 kristaps Exp $ */
+/* $Id: tbl.c,v 1.8 2010/12/29 16:44:23 kristaps Exp $ */
/*
* Copyright (c) 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
*
@@ -63,6 +63,8 @@ tbl_read(struct tbl *tbl, int ln, const char *p, int offs)
{
int len;
const char *cp;
+ struct tbl_dat *dp;
+ struct tbl_span *sp;
cp = &p[offs];
len = (int)strlen(cp);
@@ -85,9 +87,20 @@ tbl_read(struct tbl *tbl, int ln, const char *p, int offs)
return(tbl_option(tbl, ln, p) ? ROFF_IGN : ROFF_ERR);
case (TBL_PART_LAYOUT):
return(tbl_layout(tbl, ln, p) ? ROFF_IGN : ROFF_ERR);
- default:
+ case (TBL_PART_DATA):
break;
}
+
+ /* XXX: throw away data for now. */
+ if (NULL != (sp = tbl_data(tbl, ln, p))) {
+ while (NULL != (dp = sp->first)) {
+ sp->first = sp->first->next;
+ if (dp->string)
+ free(dp->string);
+ free(dp);
+ }
+ free(sp);
+ }
return(ROFF_CONT);
}