version 1.15, 2015/02/10 08:05:30 |
version 1.19, 2015/04/18 16:34:25 |
|
|
#include <string.h> |
#include <string.h> |
#include <unistd.h> |
#include <unistd.h> |
|
|
|
#include "roff.h" |
#include "man.h" |
#include "man.h" |
#include "mdoc.h" |
#include "mdoc.h" |
#include "mandoc.h" |
#include "mandoc.h" |
|
|
static void pline(int, int *, int *, int); |
static void pline(int, int *, int *, int); |
static void pman(const struct man_node *, int *, int *, int); |
static void pman(const struct roff_node *, int *, int *, int); |
static void pmandoc(struct mparse *, int, const char *, int); |
static void pmandoc(struct mparse *, int, const char *, int); |
static void pmdoc(const struct mdoc_node *, int *, int *, int); |
static void pmdoc(const struct roff_node *, int *, int *, int); |
static void pstring(const char *, int, int *, int); |
static void pstring(const char *, int, int *, int); |
static void usage(void); |
static void usage(void); |
|
|
|
|
static void |
static void |
pmandoc(struct mparse *mp, int fd, const char *fn, int list) |
pmandoc(struct mparse *mp, int fd, const char *fn, int list) |
{ |
{ |
struct mdoc *mdoc; |
struct roff_man *man; |
struct man *man; |
|
int line, col; |
int line, col; |
|
|
mparse_readfd(mp, fd, fn); |
mparse_readfd(mp, fd, fn); |
mparse_result(mp, &mdoc, &man, NULL); |
mparse_result(mp, &man, NULL); |
line = 1; |
line = 1; |
col = 0; |
col = 0; |
|
|
if (mdoc) |
if (man == NULL) |
pmdoc(mdoc_node(mdoc), &line, &col, list); |
|
else if (man) |
|
pman(man_node(man), &line, &col, list); |
|
else |
|
return; |
return; |
|
if (man->macroset == MACROSET_MDOC) |
|
pmdoc(mdoc_node(man), &line, &col, list); |
|
else |
|
pman(man_node(man), &line, &col, list); |
|
|
if ( ! list) |
if ( ! list) |
putchar('\n'); |
putchar('\n'); |
Line 233 pline(int line, int *linep, int *col, int list) |
|
Line 233 pline(int line, int *linep, int *col, int list) |
|
} |
} |
|
|
static void |
static void |
pmdoc(const struct mdoc_node *p, int *line, int *col, int list) |
pmdoc(const struct roff_node *p, int *line, int *col, int list) |
{ |
{ |
|
|
for ( ; p; p = p->next) { |
for ( ; p; p = p->next) { |
if (MDOC_LINE & p->flags) |
if (MDOC_LINE & p->flags) |
pline(p->line, line, col, list); |
pline(p->line, line, col, list); |
if (MDOC_TEXT == p->type) |
if (ROFFT_TEXT == p->type) |
pstring(p->string, p->pos, col, list); |
pstring(p->string, p->pos, col, list); |
if (p->child) |
if (p->child) |
pmdoc(p->child, line, col, list); |
pmdoc(p->child, line, col, list); |
Line 247 pmdoc(const struct mdoc_node *p, int *line, int *col, |
|
Line 247 pmdoc(const struct mdoc_node *p, int *line, int *col, |
|
} |
} |
|
|
static void |
static void |
pman(const struct man_node *p, int *line, int *col, int list) |
pman(const struct roff_node *p, int *line, int *col, int list) |
{ |
{ |
|
|
for ( ; p; p = p->next) { |
for ( ; p; p = p->next) { |
if (MAN_LINE & p->flags) |
if (MAN_LINE & p->flags) |
pline(p->line, line, col, list); |
pline(p->line, line, col, list); |
if (MAN_TEXT == p->type) |
if (ROFFT_TEXT == p->type) |
pstring(p->string, p->pos, col, list); |
pstring(p->string, p->pos, col, list); |
if (p->child) |
if (p->child) |
pman(p->child, line, col, list); |
pman(p->child, line, col, list); |