version 1.4, 2019/04/11 04:23:22 |
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 nofill; /* Level of no-fill block nesting. */ |
int flags; |
int flags; |
#define FMT_NOSPC (1 << 0) /* Suppress space before next node. */ |
#define FMT_NOSPC (1 << 0) /* Suppress space before next node. */ |
#define FMT_ARG (1 << 1) /* May add argument to current macro. */ |
#define FMT_ARG (1 << 1) /* May add argument to current macro. */ |
#define FMT_CHILD (1 << 2) /* Expect a single child macro. */ |
#define FMT_CHILD (1 << 2) /* Expect a single child macro. */ |
#define FMT_IMPL (1 << 3) /* Partial implicit block is open. */ |
#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. */ |
Line 51 void macro_argline(struct format *, const char *, con |
|
Line 59 void macro_argline(struct format *, const char *, con |
|
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 *); |