From da302548a58ff17d53b0d3e89bf0739d9ce61f10 Mon Sep 17 00:00:00 2001 From: Kristaps Dzonsons Date: Sun, 17 Jul 2011 12:13:37 +0000 Subject: 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. --- libroff.h | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'libroff.h') diff --git a/libroff.h b/libroff.h index 9831b19e..58dc86c9 100644 --- a/libroff.h +++ b/libroff.h @@ -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 * @@ -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 -- cgit v1.2.3