version 1.56, 2021/08/10 12:55:04 |
version 1.57, 2021/09/07 11:48:19 |
Line 47 getdata(struct tbl_node *tbl, struct tbl_span *dp, |
|
Line 47 getdata(struct tbl_node *tbl, struct tbl_span *dp, |
|
struct tbl_cell *cp; |
struct tbl_cell *cp; |
struct tbl_span *pdp; |
struct tbl_span *pdp; |
const char *ccp; |
const char *ccp; |
int sv; |
int startpos, endpos; |
|
|
/* |
/* |
* Determine the length of the string in the cell |
* Determine the length of the string in the cell |
* and advance the parse point to the end of the cell. |
* and advance the parse point to the end of the cell. |
*/ |
*/ |
|
|
sv = *pos; |
startpos = *pos; |
ccp = p + sv; |
ccp = p + startpos; |
while (*ccp != '\0' && *ccp != tbl->opts.tab) |
while (*ccp != '\0' && *ccp != tbl->opts.tab) |
if (*ccp++ == '\\') |
if (*ccp++ == '\\') |
mandoc_escape(&ccp, NULL, NULL); |
mandoc_escape(&ccp, NULL, NULL); |
Line 85 getdata(struct tbl_node *tbl, struct tbl_span *dp, |
|
Line 85 getdata(struct tbl_node *tbl, struct tbl_span *dp, |
|
dp->layout->last = cp; |
dp->layout->last = cp; |
} else { |
} else { |
mandoc_msg(MANDOCERR_TBLDATA_EXTRA, |
mandoc_msg(MANDOCERR_TBLDATA_EXTRA, |
ln, sv, "%s", p + sv); |
ln, startpos, "%s", p + startpos); |
while (p[*pos] != '\0') |
while (p[*pos] != '\0') |
(*pos)++; |
(*pos)++; |
return; |
return; |
Line 110 getdata(struct tbl_node *tbl, struct tbl_span *dp, |
|
Line 110 getdata(struct tbl_node *tbl, struct tbl_span *dp, |
|
*/ |
*/ |
|
|
if (cp->pos == TBL_CELL_DOWN || |
if (cp->pos == TBL_CELL_DOWN || |
(*pos - sv == 2 && p[sv] == '\\' && p[sv + 1] == '^')) { |
(*pos - startpos == 2 && |
|
p[startpos] == '\\' && p[startpos + 1] == '^')) { |
pdp = dp; |
pdp = dp; |
while ((pdp = pdp->prev) != NULL) { |
while ((pdp = pdp->prev) != NULL) { |
pdat = pdp->first; |
pdat = pdp->first; |
Line 152 getdata(struct tbl_node *tbl, struct tbl_span *dp, |
|
Line 153 getdata(struct tbl_node *tbl, struct tbl_span *dp, |
|
* until a standalone `T}', are included in our cell. |
* until a standalone `T}', are included in our cell. |
*/ |
*/ |
|
|
if (*pos - sv == 2 && p[sv] == 'T' && p[sv + 1] == '{') { |
if (*pos - startpos == 2 && |
|
p[startpos] == 'T' && p[startpos + 1] == '{') { |
tbl->part = TBL_PART_CDATA; |
tbl->part = TBL_PART_CDATA; |
return; |
return; |
} |
} |
|
|
dat->string = mandoc_strndup(p + sv, *pos - sv); |
endpos = *pos; |
|
if (dp->opts->opts & TBL_OPT_NOSPACE) { |
|
while (p[startpos] == ' ') |
|
startpos++; |
|
while (endpos > startpos && p[endpos - 1] == ' ') |
|
endpos--; |
|
} |
|
dat->string = mandoc_strndup(p + startpos, endpos - startpos); |
|
|
if (p[*pos] != '\0') |
if (p[*pos] != '\0') |
(*pos)++; |
(*pos)++; |
Line 178 getdata(struct tbl_node *tbl, struct tbl_span *dp, |
|
Line 187 getdata(struct tbl_node *tbl, struct tbl_span *dp, |
|
dat->layout->pos == TBL_CELL_DOWN) && |
dat->layout->pos == TBL_CELL_DOWN) && |
dat->pos == TBL_DATA_DATA && *dat->string != '\0') |
dat->pos == TBL_DATA_DATA && *dat->string != '\0') |
mandoc_msg(MANDOCERR_TBLDATA_SPAN, |
mandoc_msg(MANDOCERR_TBLDATA_SPAN, |
ln, sv, "%s", dat->string); |
ln, startpos, "%s", dat->string); |
} |
} |
|
|
void |
void |