=================================================================== RCS file: /cvs/mandoc/man.c,v retrieving revision 1.128 retrieving revision 1.129 diff -u -p -r1.128 -r1.129 --- mandoc/man.c 2014/03/30 19:47:48 1.128 +++ mandoc/man.c 2014/04/20 16:46:04 1.129 @@ -1,4 +1,4 @@ -/* $Id: man.c,v 1.128 2014/03/30 19:47:48 schwarze Exp $ */ +/* $Id: man.c,v 1.129 2014/04/20 16:46:04 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2013, 2014 Ingo Schwarze @@ -35,9 +35,9 @@ #include "libman.h" #include "libmandoc.h" -const char *const __man_macronames[MAN_MAX] = { +const char *const __man_macronames[MAN_MAX] = { "br", "TH", "SH", "SS", - "TP", "LP", "PP", "P", + "TP", "LP", "PP", "P", "IP", "HP", "SM", "SB", "BI", "IB", "BR", "RB", "R", "B", "I", "IR", @@ -50,12 +50,12 @@ const char *const __man_macronames[MAN_MAX] = { const char * const *man_macronames = __man_macronames; -static struct man_node *man_node_alloc(struct man *, int, int, +static struct man_node *man_node_alloc(struct man *, int, int, enum man_type, enum mant); -static int man_node_append(struct man *, +static int man_node_append(struct man *, struct man_node *); static void man_node_free(struct man_node *); -static void man_node_unlink(struct man *, +static void man_node_unlink(struct man *, struct man_node *); static int man_ptext(struct man *, int, char *, int); static int man_pmacro(struct man *, int, char *, int); @@ -72,7 +72,6 @@ man_node(const struct man *man) return(man->first); } - const struct man_meta * man_meta(const struct man *man) { @@ -81,7 +80,6 @@ man_meta(const struct man *man) return(&man->meta); } - void man_reset(struct man *man) { @@ -90,7 +88,6 @@ man_reset(struct man *man) man_alloc1(man); } - void man_free(struct man *man) { @@ -99,7 +96,6 @@ man_free(struct man *man) free(man); } - struct man * man_alloc(struct roff *roff, struct mparse *parse, int quick) { @@ -116,7 +112,6 @@ man_alloc(struct roff *roff, struct mparse *parse, int return(p); } - int man_endparse(struct man *man) { @@ -128,7 +123,6 @@ man_endparse(struct man *man) return(0); } - int man_parseln(struct man *man, int ln, char *buf, int offs) { @@ -138,11 +132,10 @@ man_parseln(struct man *man, int ln, char *buf, int of assert( ! (MAN_HALT & man->flags)); return (roff_getcontrol(man->roff, buf, &offs) ? - man_pmacro(man, ln, buf, offs) : - man_ptext(man, ln, buf, offs)); + man_pmacro(man, ln, buf, offs) : + man_ptext(man, ln, buf, offs)); } - static void man_free1(struct man *man) { @@ -161,7 +154,6 @@ man_free1(struct man *man) free(man->meta.msec); } - static void man_alloc1(struct man *man) { @@ -185,12 +177,12 @@ man_node_append(struct man *man, struct man_node *p) assert(MAN_ROOT != p->type); switch (man->next) { - case (MAN_NEXT_SIBLING): + case MAN_NEXT_SIBLING: man->last->next = p; p->prev = man->last; p->parent = man->last->parent; break; - case (MAN_NEXT_CHILD): + case MAN_NEXT_CHILD: man->last->child = p; p->parent = man->last; break; @@ -198,7 +190,7 @@ man_node_append(struct man *man, struct man_node *p) abort(); /* NOTREACHED */ } - + assert(p->parent); p->parent->nchild++; @@ -206,15 +198,15 @@ man_node_append(struct man *man, struct man_node *p) return(0); switch (p->type) { - case (MAN_HEAD): + case MAN_HEAD: assert(MAN_BLOCK == p->parent->type); p->parent->head = p; break; - case (MAN_TAIL): + case MAN_TAIL: assert(MAN_BLOCK == p->parent->type); p->parent->tail = p; break; - case (MAN_BODY): + case MAN_BODY: assert(MAN_BLOCK == p->parent->type); p->parent->body = p; break; @@ -225,9 +217,9 @@ man_node_append(struct man *man, struct man_node *p) man->last = p; switch (p->type) { - case (MAN_TBL): + case MAN_TBL: /* FALLTHROUGH */ - case (MAN_TEXT): + case MAN_TEXT: if ( ! man_valid_post(man)) return(0); break; @@ -238,9 +230,8 @@ man_node_append(struct man *man, struct man_node *p) return(1); } - static struct man_node * -man_node_alloc(struct man *man, int line, int pos, +man_node_alloc(struct man *man, int line, int pos, enum man_type type, enum mant tok) { struct man_node *p; @@ -257,7 +248,6 @@ man_node_alloc(struct man *man, int line, int pos, return(p); } - int man_elem_alloc(struct man *man, int line, int pos, enum mant tok) { @@ -270,7 +260,6 @@ man_elem_alloc(struct man *man, int line, int pos, enu return(1); } - int man_tail_alloc(struct man *man, int line, int pos, enum mant tok) { @@ -283,7 +272,6 @@ man_tail_alloc(struct man *man, int line, int pos, enu return(1); } - int man_head_alloc(struct man *man, int line, int pos, enum mant tok) { @@ -296,7 +284,6 @@ man_head_alloc(struct man *man, int line, int pos, enu return(1); } - int man_body_alloc(struct man *man, int line, int pos, enum mant tok) { @@ -309,7 +296,6 @@ man_body_alloc(struct man *man, int line, int pos, enu return(1); } - int man_block_alloc(struct man *man, int line, int pos, enum mant tok) { @@ -337,7 +323,6 @@ man_word_alloc(struct man *man, int line, int pos, con return(1); } - /* * Free all of the resources held by a node. This does NOT unlink a * node from its context; for that, see man_node_unlink(). @@ -351,7 +336,6 @@ man_node_free(struct man_node *p) free(p); } - void man_node_delete(struct man *man, struct man_node *p) { @@ -453,9 +437,9 @@ man_ptext(struct man *man, int line, char *buf, int of return(1); } - /* + /* * Warn if the last un-escaped character is whitespace. Then - * strip away the remaining spaces (tabs stay!). + * strip away the remaining spaces (tabs stay!). */ i = (int)strlen(buf); @@ -512,8 +496,8 @@ man_pmacro(struct man *man, int ln, char *buf, int off */ i = 0; - while (i < 4 && '\0' != buf[offs] && - ' ' != buf[offs] && '\t' != buf[offs]) + while (i < 4 && '\0' != buf[offs] && ' ' != buf[offs] && + '\t' != buf[offs]) mac[i++] = buf[offs++]; mac[i] = '\0'; @@ -521,8 +505,8 @@ man_pmacro(struct man *man, int ln, char *buf, int off tok = (i > 0 && i < 4) ? man_hash_find(mac) : MAN_MAX; if (MAN_MAX == tok) { - mandoc_vmsg(MANDOCERR_MACRO, man->parse, ln, - ppos, "%s", buf + ppos - 1); + mandoc_vmsg(MANDOCERR_MACRO, man->parse, ln, ppos, + "%s", buf + ppos - 1); return(1); } @@ -531,7 +515,7 @@ man_pmacro(struct man *man, int ln, char *buf, int off while (buf[offs] && ' ' == buf[offs]) offs++; - /* + /* * Trailing whitespace. Note that tabs are allowed to be passed * into the parser as "text", so we only warn about spaces here. */ @@ -539,7 +523,7 @@ man_pmacro(struct man *man, int ln, char *buf, int off if ('\0' == buf[offs] && ' ' == buf[offs - 1]) man_pmsg(man, ln, offs - 1, MANDOCERR_EOLNSPACE); - /* + /* * Remove prior ELINE macro, as it's being clobbered by a new * macro. Note that NSCOPED macros do not close out ELINE * macros---they don't print text---so we let those slip by. @@ -555,7 +539,7 @@ man_pmacro(struct man *man, int ln, char *buf, int off if (MAN_NSCOPED & man_macros[n->tok].flags) n = n->parent; - mandoc_vmsg(MANDOCERR_LINESCOPE, man->parse, n->line, + mandoc_vmsg(MANDOCERR_LINESCOPE, man->parse, n->line, n->pos, "%s breaks %s", man_macronames[tok], man_macronames[n->tok]); @@ -586,7 +570,7 @@ man_pmacro(struct man *man, int ln, char *buf, int off assert(MAN_BLOCK == n->type); assert(MAN_SCOPED & man_macros[n->tok].flags); - mandoc_vmsg(MANDOCERR_LINESCOPE, man->parse, n->line, + mandoc_vmsg(MANDOCERR_LINESCOPE, man->parse, n->line, n->pos, "%s breaks %s", man_macronames[tok], man_macronames[n->tok]); @@ -615,13 +599,13 @@ man_pmacro(struct man *man, int ln, char *buf, int off strcmp(man->last->prev->child->string, "NAME")) return(2); - /* + /* * We weren't in a block-line scope when entering the * above-parsed macro, so return. */ if ( ! (MAN_BPLINE & man->flags)) { - man->flags &= ~MAN_ILINE; + man->flags &= ~MAN_ILINE; return(1); } man->flags &= ~MAN_BPLINE; @@ -636,7 +620,7 @@ man_pmacro(struct man *man, int ln, char *buf, int off return(1); } - /* + /* * If we've opened a new next-line element scope, then return * now, as the next line will close out the block scope. */