diff options
author | Kristaps Dzonsons <kristaps@bsd.lv> | 2010-05-16 10:59:36 +0000 |
---|---|---|
committer | Kristaps Dzonsons <kristaps@bsd.lv> | 2010-05-16 10:59:36 +0000 |
commit | c634aab3c360afcb672fded79932550136913232 (patch) | |
tree | 8817ee774cf6be29b3ab34ebd37331c99412c77e /roff.h | |
parent | 4d405feb6f8c720cd004dbba9d9a857bd1a4d95f (diff) | |
download | mandoc-c634aab3c360afcb672fded79932550136913232.tar.gz mandoc-c634aab3c360afcb672fded79932550136913232.tar.zst mandoc-c634aab3c360afcb672fded79932550136913232.zip |
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.h | 12 |
1 files changed, 7 insertions, 5 deletions
@@ -1,4 +1,4 @@ -/* $Id: roff.h,v 1.13 2010/05/15 18:35:14 kristaps Exp $ */ +/* $Id: roff.h,v 1.14 2010/05/16 10:59:36 kristaps Exp $ */ /* * Copyright (c) 2010 Kristaps Dzonsons <kristaps@bsd.lv> * @@ -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 |