version 1.232, 2014/11/28 04:47:03 |
version 1.238, 2015/02/12 13:00:52 |
|
|
/* $Id$ */ |
/* $Id$ */ |
/* |
/* |
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2010, 2012, 2013, 2014 Ingo Schwarze <schwarze@openbsd.org> |
* Copyright (c) 2010, 2012-2015 Ingo Schwarze <schwarze@openbsd.org> |
* |
* |
* Permission to use, copy, modify, and distribute this software for any |
* Permission to use, copy, modify, and distribute this software for any |
* purpose with or without fee is hereby granted, provided that the above |
* purpose with or without fee is hereby granted, provided that the above |
Line 190 mdoc_alloc(struct roff *roff, struct mparse *parse, |
|
Line 190 mdoc_alloc(struct roff *roff, struct mparse *parse, |
|
return(p); |
return(p); |
} |
} |
|
|
int |
void |
mdoc_endparse(struct mdoc *mdoc) |
mdoc_endparse(struct mdoc *mdoc) |
{ |
{ |
|
|
mdoc_macroend(mdoc); |
mdoc_macroend(mdoc); |
return(1); |
|
} |
} |
|
|
int |
void |
mdoc_addeqn(struct mdoc *mdoc, const struct eqn *ep) |
mdoc_addeqn(struct mdoc *mdoc, const struct eqn *ep) |
{ |
{ |
struct mdoc_node *n; |
struct mdoc_node *n; |
Line 209 mdoc_addeqn(struct mdoc *mdoc, const struct eqn *ep) |
|
Line 208 mdoc_addeqn(struct mdoc *mdoc, const struct eqn *ep) |
|
n->flags |= MDOC_LINE; |
n->flags |= MDOC_LINE; |
node_append(mdoc, n); |
node_append(mdoc, n); |
mdoc->next = MDOC_NEXT_SIBLING; |
mdoc->next = MDOC_NEXT_SIBLING; |
return(1); |
|
} |
} |
|
|
int |
void |
mdoc_addspan(struct mdoc *mdoc, const struct tbl_span *sp) |
mdoc_addspan(struct mdoc *mdoc, const struct tbl_span *sp) |
{ |
{ |
struct mdoc_node *n; |
struct mdoc_node *n; |
Line 221 mdoc_addspan(struct mdoc *mdoc, const struct tbl_span |
|
Line 219 mdoc_addspan(struct mdoc *mdoc, const struct tbl_span |
|
n->span = sp; |
n->span = sp; |
node_append(mdoc, n); |
node_append(mdoc, n); |
mdoc->next = MDOC_NEXT_SIBLING; |
mdoc->next = MDOC_NEXT_SIBLING; |
return(1); |
|
} |
} |
|
|
/* |
/* |
Line 366 node_alloc(struct mdoc *mdoc, int line, int pos, |
|
Line 363 node_alloc(struct mdoc *mdoc, int line, int pos, |
|
p->sec = mdoc->lastsec; |
p->sec = mdoc->lastsec; |
p->line = line; |
p->line = line; |
p->pos = pos; |
p->pos = pos; |
p->lastline = line; |
|
p->tok = tok; |
p->tok = tok; |
p->type = type; |
p->type = type; |
|
|
Line 417 mdoc_body_alloc(struct mdoc *mdoc, int line, int pos, |
|
Line 413 mdoc_body_alloc(struct mdoc *mdoc, int line, int pos, |
|
return(p); |
return(p); |
} |
} |
|
|
void |
struct mdoc_node * |
mdoc_endbody_alloc(struct mdoc *mdoc, int line, int pos, enum mdoct tok, |
mdoc_endbody_alloc(struct mdoc *mdoc, int line, int pos, enum mdoct tok, |
struct mdoc_node *body, enum mdoc_endbody end) |
struct mdoc_node *body, enum mdoc_endbody end) |
{ |
{ |
struct mdoc_node *p; |
struct mdoc_node *p; |
|
|
|
body->flags |= MDOC_ENDED; |
|
body->parent->flags |= MDOC_ENDED; |
p = node_alloc(mdoc, line, pos, tok, MDOC_BODY); |
p = node_alloc(mdoc, line, pos, tok, MDOC_BODY); |
p->pending = body; |
p->body = body; |
p->norm = body->norm; |
p->norm = body->norm; |
p->end = end; |
p->end = end; |
node_append(mdoc, p); |
node_append(mdoc, p); |
mdoc->next = MDOC_NEXT_SIBLING; |
mdoc->next = MDOC_NEXT_SIBLING; |
|
return(p); |
} |
} |
|
|
struct mdoc_node * |
struct mdoc_node * |
Line 602 mdoc_ptext(struct mdoc *mdoc, int line, char *buf, int |
|
Line 601 mdoc_ptext(struct mdoc *mdoc, int line, char *buf, int |
|
* process within its context in the normal way). |
* process within its context in the normal way). |
*/ |
*/ |
|
|
if (MDOC_Bl == n->tok && MDOC_BODY == n->type && |
if (n->tok == MDOC_Bl && n->type == MDOC_BODY && |
LIST_column == n->norm->Bl.type) { |
n->end == ENDBODY_NOT && n->norm->Bl.type == LIST_column) { |
/* `Bl' is open without any children. */ |
/* `Bl' is open without any children. */ |
mdoc->flags |= MDOC_FREECOL; |
mdoc->flags |= MDOC_FREECOL; |
mdoc_macro(mdoc, MDOC_It, line, offs, &offs, buf); |
mdoc_macro(mdoc, MDOC_It, line, offs, &offs, buf); |
Line 779 mdoc_pmacro(struct mdoc *mdoc, int ln, char *buf, int |
|
Line 778 mdoc_pmacro(struct mdoc *mdoc, int ln, char *buf, int |
|
* context around the parsed macro. |
* context around the parsed macro. |
*/ |
*/ |
|
|
if (MDOC_Bl == n->tok && MDOC_BODY == n->type && |
if (n->tok == MDOC_Bl && n->type == MDOC_BODY && |
LIST_column == n->norm->Bl.type) { |
n->end == ENDBODY_NOT && n->norm->Bl.type == LIST_column) { |
mdoc->flags |= MDOC_FREECOL; |
mdoc->flags |= MDOC_FREECOL; |
mdoc_macro(mdoc, MDOC_It, ln, sv, &sv, buf); |
mdoc_macro(mdoc, MDOC_It, ln, sv, &sv, buf); |
return(1); |
return(1); |