* mandoc: we already parse the GNU tbl(7) "nospaces" option, so let it
@ 2021-09-07 11:48 schwarze
0 siblings, 0 replies; only message in thread
From: schwarze @ 2021-09-07 11:48 UTC (permalink / raw)
To: source
Log Message:
-----------
we already parse the GNU tbl(7) "nospaces" option,
so let it have the intended effect, too
Modified Files:
--------------
mandoc:
tbl_data.c
tbl.7
Revision Data
-------------
Index: tbl.7
===================================================================
RCS file: /home/cvs/mandoc/mandoc/tbl.7,v
retrieving revision 1.35
retrieving revision 1.36
diff -Ltbl.7 -Ltbl.7 -u -p -r1.35 -r1.36
--- tbl.7
+++ tbl.7
@@ -94,7 +94,7 @@ Allow page breaks within the table.
This is a GNU extension and currently ignored.
.It Cm nospaces
Ignore leading and trailing spaces in data cells.
-This is a GNU extension and currently ignored.
+This is a GNU extension.
.It Cm nowarn
Suppress warnings about tables exceeding the current line length.
This is a GNU extension and currently ignored.
Index: tbl_data.c
===================================================================
RCS file: /home/cvs/mandoc/mandoc/tbl_data.c,v
retrieving revision 1.56
retrieving revision 1.57
diff -Ltbl_data.c -Ltbl_data.c -u -p -r1.56 -r1.57
--- tbl_data.c
+++ tbl_data.c
@@ -47,15 +47,15 @@ getdata(struct tbl_node *tbl, struct tbl
struct tbl_cell *cp;
struct tbl_span *pdp;
const char *ccp;
- int sv;
+ int startpos, endpos;
/*
* Determine the length of the string in the cell
* and advance the parse point to the end of the cell.
*/
- sv = *pos;
- ccp = p + sv;
+ startpos = *pos;
+ ccp = p + startpos;
while (*ccp != '\0' && *ccp != tbl->opts.tab)
if (*ccp++ == '\\')
mandoc_escape(&ccp, NULL, NULL);
@@ -85,7 +85,7 @@ getdata(struct tbl_node *tbl, struct tbl
dp->layout->last = cp;
} else {
mandoc_msg(MANDOCERR_TBLDATA_EXTRA,
- ln, sv, "%s", p + sv);
+ ln, startpos, "%s", p + startpos);
while (p[*pos] != '\0')
(*pos)++;
return;
@@ -110,7 +110,8 @@ getdata(struct tbl_node *tbl, struct tbl
*/
if (cp->pos == TBL_CELL_DOWN ||
- (*pos - sv == 2 && p[sv] == '\\' && p[sv + 1] == '^')) {
+ (*pos - startpos == 2 &&
+ p[startpos] == '\\' && p[startpos + 1] == '^')) {
pdp = dp;
while ((pdp = pdp->prev) != NULL) {
pdat = pdp->first;
@@ -152,12 +153,20 @@ getdata(struct tbl_node *tbl, struct tbl
* 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;
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')
(*pos)++;
@@ -178,7 +187,7 @@ getdata(struct tbl_node *tbl, struct tbl
dat->layout->pos == TBL_CELL_DOWN) &&
dat->pos == TBL_DATA_DATA && *dat->string != '\0')
mandoc_msg(MANDOCERR_TBLDATA_SPAN,
- ln, sv, "%s", dat->string);
+ ln, startpos, "%s", dat->string);
}
void
--
To unsubscribe send an email to source+unsubscribe@mandoc.bsd.lv
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-09-07 11:48 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-07 11:48 mandoc: we already parse the GNU tbl(7) "nospaces" option, so let it schwarze
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).