#define ARRAY_FOREACH(elem, head)
Iterate over all elements of the array.
int buf_add_printf(struct Buffer *buf, const char *fmt,...)
Format a string appending a Buffer.
size_t buf_addstr(struct Buffer *buf, const char *s)
Add a string to a Buffer.
Convenience wrapper for the debug headers.
const char * name_expando_pad_type(enum ExpandoPadType type)
const char * name_expando_uid(enum ExpandoDomain did, int uid)
const char * name_expando_domain(enum ExpandoDomain did)
const char * name_format_justify(enum FormatJustify just)
Convenience wrapper for the library headers.
struct ExpandoNode * node_get_child(const struct ExpandoNode *node, int index)
Get a child of an ExpandoNode.
@ ENT_EXPANDO
Expando, e.g. 'n'.
@ ENT_CONTAINER
Container for other nodes.
@ ENT_CONDITION
True/False condition.
@ ENT_CONDDATE
True/False date condition.
@ ENT_CONDBOOL
True/False boolean condition.
@ ENT_PADDING
Padding: soft, hard, EOL.
Expando Node for a Conditional Date.
Expando Node for a Condition.
@ ENC_CONDITION
Index of Condition Node.
@ ENC_FALSE
Index of False Node.
@ ENC_TRUE
Index of True Node.
Expando Node for Padding.
@ ENP_LEFT
Index of Left-Hand Nodes.
@ ENP_RIGHT
Index of Right-Hand Nodes.
static void dump_node_condition(const struct ExpandoNode *node, struct Buffer *buf)
static void dump_node(const struct ExpandoNode *node, struct Buffer *buf)
static void dump_node_padding(const struct ExpandoNode *node, struct Buffer *buf)
static void dump_did_uid(const struct ExpandoNode *node, struct Buffer *buf)
static void dump_node_condbool(const struct ExpandoNode *node, struct Buffer *buf)
static void dump_node_text(const struct ExpandoNode *node, struct Buffer *buf)
static void dump_node_empty(const struct ExpandoNode *node, struct Buffer *buf)
static void dump_node_conddate(const struct ExpandoNode *node, struct Buffer *buf)
static void dump_node_container(const struct ExpandoNode *node, struct Buffer *buf)
void expando_serialise(const struct Expando *exp, struct Buffer *buf)
static void dump_node_expando(const struct ExpandoNode *node, struct Buffer *buf)
Dump the details of an Expando Tree.
String manipulation buffer.
int uid
Unique ID, e.g. ED_EMA_SIZE.
void * ndata
Private node data.
struct ExpandoFormat * format
Formatting info.
int did
Domain ID, e.g. ED_EMAIL.
const char * text
Node-specific text.
enum ExpandoNodeType type
Type of Node, e.g. ENT_EXPANDO.
void(* ndata_free)(void **ptr)
Function to free the private node data.
struct ExpandoNodeArray children
Children nodes.
struct ExpandoNode * node
Parsed tree.
Private data for a Conditional Date -.
int count
Number of 'units' to count.
char period
Units, e.g. 'd' Day or 'm' Month.
Private data for a Padding Node -.
enum ExpandoPadType pad_type
Padding type.