version 1.3, 2019/04/06 22:37:57 |
version 1.7, 2019/05/01 17:20:47 |
|
|
LINE_MACRO /* In the middle of a macro line. */ |
LINE_MACRO /* In the middle of a macro line. */ |
}; |
}; |
|
|
|
enum parastate { |
|
PARA_HAVE, /* Just printed .Pp or equivalent. */ |
|
PARA_MID, /* In the middle of a paragraph. */ |
|
PARA_WANT /* Need .Pp before printing anything else. */ |
|
}; |
|
|
struct format { |
struct format { |
int level; /* Header level, starting at 1. */ |
int level; /* Header level, starting at 1. */ |
int spc; /* Whitespace before next macro. */ |
int nofill; /* Level of no-fill block nesting. */ |
|
int flags; |
|
#define FMT_NOSPC (1 << 0) /* Suppress space before next node. */ |
|
#define FMT_ARG (1 << 1) /* May add argument to current macro. */ |
|
#define FMT_CHILD (1 << 2) /* Expect a single child macro. */ |
|
#define FMT_IMPL (1 << 3) /* Partial implicit block is open. */ |
enum linestate linestate; |
enum linestate linestate; |
|
enum parastate parastate; |
}; |
}; |
|
|
#define ARG_SPACE 1 /* Insert whitespace before this argument. */ |
#define ARG_SPACE 1 /* Insert whitespace before this argument. */ |
|
|
void macro_open(struct format *, const char *); |
void macro_open(struct format *, const char *); |
void macro_close(struct format *); |
void macro_close(struct format *); |
void macro_line(struct format *, const char *); |
void macro_line(struct format *, const char *); |
void macro_closepunct(struct format *, struct pnode *); |
|
|
|
void macro_addarg(struct format *, const char *, int); |
void macro_addarg(struct format *, const char *, int); |
void macro_argline(struct format *, const char *, const char *); |
void macro_argline(struct format *, const char *, const char *); |
void macro_addnode(struct format *, struct pnode *, int); |
void macro_addnode(struct format *, struct pnode *, int); |
void macro_nodeline(struct format *, const char *, struct pnode *, int); |
void macro_nodeline(struct format *, const char *, struct pnode *, int); |
|
|
|
void para_check(struct format *); |
void print_text(struct format *, const char *, int); |
void print_text(struct format *, const char *, int); |
void print_textnode(struct format *, struct pnode *); |
void print_textnode(struct format *, struct pnode *); |