summaryrefslogtreecommitdiffstats
path: root/roff.h
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2010-05-16 10:59:36 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2010-05-16 10:59:36 +0000
commit110e3743cb6c70af4d1a25c2527e9d923e1f163b (patch)
treeaad4e38ad6261d3903a43823cbfc9c9ee51dc014 /roff.h
parent110ec8e74f50c3c583a7b5930b26eede65e6f8e7 (diff)
downloadmandoc-110e3743cb6c70af4d1a25c2527e9d923e1f163b.tar.gz
Allow roff_parseln() to be re-run.
Allow roff_parseln() to manipulate the line buffer offset. This is used in situations like `.ie n .TH FOO 1' or `.ie n .ie n', where the line buffer offset is recalculated then the roff parser re-run. Fix mdoc_parseln() and man_parseln() to accept the initial line offset. WARNING: backed-out ALL roff macros whilst accomodating for how roff handles multi-line conditionals (in short, re-running the parser).
Diffstat (limited to 'roff.h')
-rw-r--r--roff.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/roff.h b/roff.h
index 05c4b2d3..2d94080d 100644
--- a/roff.h
+++ b/roff.h
@@ -18,9 +18,10 @@
#define ROFF_H
enum rofferr {
- ROFF_CONT, /* re-process line with libmdoc or libman */
- ROFF_IGN, /* ignore line */
- ROFF_ERR, /* badness */
+ ROFF_CONT, /* continue processing line */
+ ROFF_RERUN, /* re-run roff interpreter with offset */
+ ROFF_IGN, /* ignore current line */
+ ROFF_ERR, /* badness: puke and stop */
};
__BEGIN_DECLS
@@ -30,7 +31,8 @@ struct roff;
void roff_free(struct roff *);
struct roff *roff_alloc(mandocmsg, void *);
void roff_reset(struct roff *);
-enum rofferr roff_parseln(struct roff *, int, char **, size_t *);
+enum rofferr roff_parseln(struct roff *, int,
+ char **, size_t *, int, int *);
int roff_endparse(struct roff *);
__END_DECLS