-/* $Id: mdoc_macro.c,v 1.34 2009/09/16 14:40:56 kristaps Exp $ */
+/* $Id: mdoc_macro.c,v 1.36 2009/09/20 17:24:57 kristaps Exp $ */
/*
* Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
*
static int rew_last(struct mdoc *,
const struct mdoc_node *);
static int append_delims(struct mdoc *, int, int *, char *);
-static int lookup(struct mdoc *, int, const char *);
-static int lookup_raw(struct mdoc *, const char *);
+static int lookup(int, const char *);
+static int lookup_raw(const char *);
static int swarn(struct mdoc *, enum mdoc_type, int, int,
const struct mdoc_node *);
* Look up a macro from within a subsequent context.
*/
static int
-lookup(struct mdoc *mdoc, int from, const char *p)
+lookup(int from, const char *p)
{
+ /* FIXME: make -diag lists be un-PARSED. */
if ( ! (MDOC_PARSED & mdoc_macros[from].flags))
return(MDOC_MAX);
- return(lookup_raw(mdoc, p));
+ return(lookup_raw(p));
}
* Lookup a macro following the initial line macro.
*/
static int
-lookup_raw(struct mdoc *mdoc, const char *p)
+lookup_raw(const char *p)
{
int res;
if (ARGS_EOLN == c)
break;
- if (MDOC_MAX != (c = lookup(m, tok, p))) {
+ if (MDOC_MAX != (c = lookup(tok, p))) {
if ( ! flushed) {
if ( ! rew_sub(MDOC_BLOCK, m, tok, line, ppos))
return(0);
/* Quoted words shouldn't be looked-up. */
- c = ARGS_QWORD == w ? MDOC_MAX : lookup(m, tok, p);
+ c = ARGS_QWORD == w ? MDOC_MAX : lookup(tok, p);
/*
* In this case, we've located a submacro and must
continue;
}
- if (MDOC_MAX == (c = lookup(m, tok, p))) {
+ if (MDOC_MAX == (c = lookup(tok, p))) {
if ( ! mdoc_word_alloc(m, line, lastarg, p))
return(0);
continue;
if (ARGS_EOLN == c)
break;
- if (MDOC_MAX == (c = lookup(m, tok, p))) {
+ if (MDOC_MAX == (c = lookup(tok, p))) {
if ( ! mdoc_word_alloc(m, line, la, p))
return(0);
continue;
if (ARGS_EOLN == c)
break;
- if (MDOC_MAX != (c = lookup(m, tok, p))) {
+ if (MDOC_MAX != (c = lookup(tok, p))) {
if ( ! flushed) {
if ( ! rew_sub(MDOC_HEAD, m, tok, line, ppos))
return(0);
if (ARGS_EOLN == c)
break;
- if (MDOC_MAX != (c = lookup(m, tok, p))) {
+ if (MDOC_MAX != (c = lookup(tok, p))) {
if ( ! flushed && ! rew_elem(m, tok))
return(0);
flushed = 1;
if (ARGS_EOLN == w)
break;
- c = ARGS_QWORD == w ? MDOC_MAX : lookup(m, tok, p);
+ c = ARGS_QWORD == w ? MDOC_MAX : lookup(tok, p);
if (MDOC_MAX != c) {
if ( ! rew_elem(m, tok))
if (ARGS_EOLN == w)
break;
- c = ARGS_QWORD == w ? MDOC_MAX : lookup_raw(m, p);
+ c = ARGS_QWORD == w ? MDOC_MAX : lookup_raw(p);
if (MDOC_MAX != c) {
if ( ! mdoc_macro(m, c, line, la, &pos, buf))