version 1.13, 2011/01/07 13:20:58 |
version 1.15, 2011/01/09 23:14:41 |
Line 118 tbl_cdata(struct tbl_node *tbl, int ln, const char *p) |
|
Line 118 tbl_cdata(struct tbl_node *tbl, int ln, const char *p) |
|
{ |
{ |
struct tbl_dat *dat; |
struct tbl_dat *dat; |
size_t sz; |
size_t sz; |
|
int pos; |
|
|
if (0 == strcmp(p, "T}")) { |
pos = 0; |
tbl->part = TBL_PART_DATA; |
|
return(1); |
|
} |
|
|
|
dat = tbl->last_span->last; |
dat = tbl->last_span->last; |
dat->pos = TBL_DATA_DATA; |
dat->pos = TBL_DATA_DATA; |
|
|
|
if (p[pos] == 'T' && p[pos + 1] == '}') { |
|
pos += 2; |
|
if (p[pos] == tbl->opts.tab) { |
|
tbl->part = TBL_PART_DATA; |
|
pos++; |
|
return(data(tbl, tbl->last_span, ln, p, &pos)); |
|
} else if ('\0' == p[pos]) { |
|
tbl->part = TBL_PART_DATA; |
|
return(1); |
|
} |
|
|
|
/* Fallthrough: T} is part of a word. */ |
|
} |
|
|
if (dat->string) { |
if (dat->string) { |
sz = strlen(p) + strlen(dat->string) + 2; |
sz = strlen(p) + strlen(dat->string) + 2; |
dat->string = mandoc_realloc(dat->string, sz); |
dat->string = mandoc_realloc(dat->string, sz); |
Line 155 tbl_data(struct tbl_node *tbl, int ln, const char *p) |
|
Line 167 tbl_data(struct tbl_node *tbl, int ln, const char *p) |
|
/* |
/* |
* Choose a layout row: take the one following the last parsed |
* Choose a layout row: take the one following the last parsed |
* span's. If that doesn't exist, use the last parsed span's. |
* span's. If that doesn't exist, use the last parsed span's. |
* If there's no last parsed span, use the first row. This can |
* If there's no last parsed span, use the first row. Lastly, |
* be NULL! |
* if the last span was a horizontal line, use the same layout |
|
* (it doesn't "consume" the layout). |
|
* |
|
* In the end, this can be NULL! |
*/ |
*/ |
|
|
if (tbl->last_span) { |
if (tbl->last_span) { |
assert(tbl->last_span->layout); |
assert(tbl->last_span->layout); |
rp = tbl->last_span->layout->next; |
if (tbl->last_span->pos == TBL_SPAN_DATA) |
|
rp = tbl->last_span->layout->next; |
|
else |
|
rp = tbl->last_span->layout; |
if (NULL == rp) |
if (NULL == rp) |
rp = tbl->last_span->layout; |
rp = tbl->last_span->layout; |
} else |
} else |