macro
int optc, rv = 0, macro = 0, list = 0;
macro = 1;
if (x_bind(*wp, cp, macro, 0))
int macro, /* bind -m */
if (macro) {
static struct macro_state macro;
if (macro.p) {
c = (unsigned char)*macro.p++;
if (*macro.p++)
if (macro.p) {
afree(macro.buf, APERM);
memset((char *) ¯o, 0, sizeof(macro));
if (is_undoable(*cmd) && !macro.p) {
if ((p = (char *) macro.p))
olen = !macro.p ? 2 :
macro.len - (macro.p - macro.buf);
if (macro.p) {
memcpy(nbuf + nlen, macro.p, olen);
afree(macro.buf, APERM);
macro.p = macro.buf = (unsigned char *) nbuf;
macro.len = nlen;
.macro systrap_data num
.macro syscall_error num
.macro systrap num
free(el_read->macros.macro);
el_read->macros.macro = NULL;
if ((ma->macro[ma->level] = wcsdup(str)) != NULL)
free(ma->macro[0]);
ma->macro[i] = ma->macro[i + 1];
free(ma->macro[ma->level--]);
if (ma->macro[0][ma->offset] == '\0') {
*cp = ma->macro[0][ma->offset++];
if (ma->macro[0][ma->offset] == '\0') {
wchar_t **macro;
if ((ma->macro = reallocarray(NULL, EL_MAXMACRO,
sizeof(*ma->macro))) == NULL) {
.macro systrap num
struct macro *
struct macro *m;
macro_destroy(struct macro *m)
macro_eq(const struct macro *m1, const struct macro *m2)
DESTROYALL_ARRAY(macro, );
struct macro *
struct macro *m, *m2;
struct macro *
struct macro *m;
macrotable_add(struct macro *m)
struct macro *
macro_define_common_start(struct place *p1, const char *macro,
struct macro *m;
if (!is_identifier(macro)) {
complain(p1, "Invalid macro name %s", macro);
hash = hashfunc(macro, strlen(macro));
m = macro_create(p1, macro, hash, p2);
macro_define_common_end(struct macro *m)
struct macro *oldm;
macro_parse_parameters(struct macro *m, struct place *p, const char *params)
isparam(struct macro *m, const char *name, size_t len, unsigned *num_ret)
macro_parse_expansion(struct macro *m, const char *buf)
macro_define_plain(struct place *p1, const char *macro,
struct macro *m;
m = macro_define_common_start(p1, macro, p2);
macro_define_params(struct place *p1, const char *macro,
struct macro *m;
m = macro_define_common_start(p1, macro, p3);
macro_define_magic(struct place *p, const char *macro)
struct macro *m;
m = macro_define_common_start(p, macro, p);
if (!strcmp(macro, "__FILE__")) {
assert(!strcmp(macro, "__LINE__"));
macro_undef(const char *macro)
struct macro *m;
m = macrotable_find(macro, true);
macro_isdefined(const char *macro)
struct macro *m;
m = macrotable_find(macro, false);
struct macro *curmacro;
DECLARRAY(macro, static UNUSED);
DEFARRAY(macro, static);
struct macro *m;
struct macro *m;
void macro_define_plain(struct place *, const char *macro,
void macro_define_params(struct place *, const char *macro,
void macro_define_magic(struct place *, const char *macro);
void macro_undef(const char *macro);
bool macro_isdefined(const char *macro);
commandline_macro_add(const struct place *p, const char *macro,
cm->macro = macro;
macro_define_plain(&cm->where, cm->macro,
macro_undef(cm->macro);
const char *macro;
*ma->macro, ma->offset);
macro();
void macro(void);
struct macro *l;
struct macro *r;
static void macro(void);
macro();
macro();
macro();
macro();
get_macro_entry(struct ohash *macro, const char *value, int32_t np)
slot = ohash_qlookup(macro, value);
if ((entry = ohash_find(macro, slot)) == NULL) {
ohash_insert(macro, slot, entry);
struct ohash *macro;
dba_array_FOREACH(macros, macro) {
dba_macro_write(macro);
dba_macro_write(struct ohash *macro)
ne = ohash_entries(macro);
for (entry = ohash_first(macro, &slot); entry != NULL;
entry = ohash_next(macro, &slot)) {
struct ohash *macro;
macro = mandoc_malloc(sizeof(*macro));
mandoc_ohash_init(macro, 4,
dba_array_set(dba->macros, im, macro);
struct ohash *macro;
dba_array_FOREACH(dba->macros, macro) {
for (entry = ohash_first(macro, &slot); entry != NULL;
entry = ohash_next(macro, &slot)) {
ohash_delete(macro);
free(macro);
macros[im] = (struct macro *)++ep;
static struct dbm_macro macro;
macro.value = dbm_get(macros[im][iv].value);
macro.pp = dbm_get(macros[im][iv].pages);
return ¯o;
static struct macro *macros[MACRO_MAX];
const char *macro;
macro = !strcmp(nch->string, "Open") ? "Ox" :
if (macro != NULL)
n->line, n->pos, "%s", macro);
macro2len(enum roff_tok macro)
switch (macro) {
macro[macrocount - 1].m_funct = funct;
macro[macrocount - 1].m_funct = funct;
macro[macrocount++].m_funct = funct;
macro[macrocount - 1].m_funct
macro[macrocount - 1].m_funct = fp;
macro[macrocount++].m_count = nn;
macro[macrocount++].m_funct = funct;
macro[macrocount - 1].m_funct = universal_argument;
macro[macrocount++].m_count = nn;
macro[macrocount++].m_funct = funct;
macro[macrocount - 1].m_funct = universal_argument;
macro[macrocount++].m_count = nn;
macro[macrocount++].m_funct = funct;
macro[macrocount - 1].m_funct = insert;
union macrodef macro[MAXMACRO];
(macrocount >= MAXMACRO && macro[MAXMACRO - 1].m_funct
funct = macro[j].m_funct;
num = macro[++j].m_count;
extern union macrodef macro[MAXMACRO];