diff options
author | Kristaps Dzonsons <kristaps@bsd.lv> | 2011-07-17 12:13:37 +0000 |
---|---|---|
committer | Kristaps Dzonsons <kristaps@bsd.lv> | 2011-07-17 12:13:37 +0000 |
commit | da302548a58ff17d53b0d3e89bf0739d9ce61f10 (patch) | |
tree | 77364437117ec027865319c7378ced8d19583d2b /libroff.h | |
parent | 9419ab3574faf0af105fbd744975d2172be8a6b4 (diff) | |
download | mandoc-da302548a58ff17d53b0d3e89bf0739d9ce61f10.tar.gz mandoc-da302548a58ff17d53b0d3e89bf0739d9ce61f10.tar.zst mandoc-da302548a58ff17d53b0d3e89bf0739d9ce61f10.zip |
Add initial `define' support for eqn(7).
This works by iterating over a simple list. It's a slow, auditable
early implementation. Data is read (the reading function will be
reused) then parsed, then the line re-run if remaining stuff exists.
Note this function isn't the same as mandoc_getarg(), as eqn(7) uses a
different system for reading quoted strings.
This doesn't actually use the defines.
Diffstat (limited to 'libroff.h')
-rw-r--r-- | libroff.h | 16 |
1 files changed, 13 insertions, 3 deletions
@@ -1,4 +1,4 @@ -/* $Id: libroff.h,v 1.21 2011/07/12 21:32:43 kristaps Exp $ */ +/* $Id: libroff.h,v 1.22 2011/07/17 12:13:37 kristaps Exp $ */ /* * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> * @@ -42,10 +42,19 @@ struct tbl_node { struct tbl_node *next; }; +struct eqn_def { + char *key; + size_t keysz; + char *val; + size_t valsz; +}; + struct eqn_node { + struct eqn_def *defs; + size_t defsz; struct eqn eqn; - struct eqn_node *next; struct mparse *parse; + struct eqn_node *next; }; struct tbl_node *tbl_alloc(int, int, struct mparse *); @@ -62,7 +71,8 @@ void tbl_end(struct tbl_node *); struct eqn_node *eqn_alloc(int, int, struct mparse *); void eqn_end(struct eqn_node *); void eqn_free(struct eqn_node *); -enum rofferr eqn_read(struct eqn_node **, int, const char *, int); +enum rofferr eqn_read(struct eqn_node **, int, + const char *, int, int *); __END_DECLS |