ohash
ohash_remove(struct ohash *h, unsigned int i)
ohash_find(struct ohash *h, unsigned int i)
ohash_insert(struct ohash *h, unsigned int i, void *p)
ohash_entries(struct ohash *h)
ohash_first(struct ohash *h, unsigned int *pos)
ohash_next(struct ohash *h, unsigned int *pos)
ohash_init(struct ohash *h, unsigned int size, struct ohash_info *info)
ohash_lookup_interval(struct ohash *h, const char *start, const char *end,
ohash_lookup_memory(struct ohash *h, const char *k, size_t size, uint32_t hv)
ohash_qlookup(struct ohash *h, const char *s)
ohash_qlookupi(struct ohash *h, const char *s, const char **e)
static void ohash_resize(struct ohash *);
ohash_delete(struct ohash *h)
ohash_resize(struct ohash *h)
void ohash_init(struct ohash *, unsigned, struct ohash_info *);
void ohash_delete(struct ohash *);
unsigned int ohash_lookup_interval(struct ohash *, const char *,
unsigned int ohash_lookup_memory(struct ohash *, const char *,
void *ohash_find(struct ohash *, unsigned int);
void *ohash_remove(struct ohash *, unsigned int);
void *ohash_insert(struct ohash *, unsigned int, void *);
void *ohash_first(struct ohash *, unsigned int *);
void *ohash_next(struct ohash *, unsigned int *);
unsigned int ohash_entries(struct ohash *);
unsigned int ohash_qlookupi(struct ohash *, const char *, const char **);
unsigned int ohash_qlookup(struct ohash *, const char *);
int ohash, overbose;
ohash = hash;
hash = ohash;
extern struct ohash macros;
struct ohash macros;
static struct ohash archives; /* Archives we've already examined. */
struct ohash members; /* All the members of this archive, as
struct ohash files; /* hash of name of files in the directory */
static struct ohash knownDirectories; /* cache all open directories */
static struct ohash mtimes;
struct ohash *h = &p->files;
struct ohash *h = &p->files;
sort_ohash_by_name(struct ohash *h)
sort_ohash(struct ohash *h, int (*comparison)(const void *, const void *))
struct ohash;
extern void *sort_ohash_by_name(struct ohash *);
extern void *sort_ohash(struct ohash *, int (*)(const void *, const void *));
static struct ohash targets; /* stuff we must build */
free_hash(struct ohash *h)
struct ohash;
extern void free_hash(struct ohash *);
static struct ohash htargets;
register_target(GNode *gn, struct ohash *t)
build_target_group(struct growableArray *targets, struct ohash *t)
static bool register_target(GNode *, struct ohash *);
static void build_target_group(struct growableArray *, struct ohash *t);
static unsigned int reverse_slot(struct ohash *, const char *, const char **);
reverse_slot(struct ohash *h, const char *s, const char **e)
static struct ohash suffixes;
static struct ohash transforms;
static struct ohash targets; /* hash table of targets */
struct ohash *
extern struct ohash *targets_hash(void);
struct ohash equiv;
struct ohash *t = targets_hash();
static void add_to_equiv_list(struct ohash *, GNode *);
add_to_equiv_list(struct ohash *equiv, GNode *gn)
static struct ohash global_variables;
static struct ohash mchars;
get_macro_entry(struct ohash *macro, const char *value, int32_t np)
struct ohash *macro;
dba_macro_write(struct ohash *macro)
*get_macro_entry(struct ohash *, const char *, int32_t);
static void dba_macro_write(struct ohash *);
struct ohash *macro;
struct ohash *macro;
static struct ohash id_unique;
mandoc_ohash_init(struct ohash *h, unsigned int sz, ptrdiff_t ko)
void mandoc_ohash_init(struct ohash *, unsigned int, ptrdiff_t);
static struct ohash *xr_hash = NULL;
static struct ohash mpages; /* table of distinct manual pages */
static struct ohash mlinks; /* table of directory entries */
static struct ohash names; /* table of all names */
static struct ohash strings; /* table of all strings */
struct ohash *htab;
static struct ohash *
manmerge(struct expr *e, struct ohash *htab)
static struct ohash *
manmerge_term(struct expr *e, struct ohash *htab)
static struct ohash *
manmerge_or(struct expr *e, struct ohash *htab)
static struct ohash *
manmerge_and(struct expr *e, struct ohash *htab)
struct ohash *hand, *h1, *h2;
static struct ohash *manmerge(struct expr *, struct ohash *);
static struct ohash *manmerge_term(struct expr *, struct ohash *);
static struct ohash *manmerge_or(struct expr *, struct ohash *);
static struct ohash *manmerge_and(struct expr *, struct ohash *);
struct ohash *htab;
struct ohash *reqtab; /* request lookup table */
struct ohash *
struct ohash *htab;
roffhash_free(struct ohash *htab)
roffhash_find(struct ohash *htab, const char *name, size_t sz)
struct ohash;
struct ohash;
struct ohash *mdocmac; /* Mdoc macro lookup table. */
struct ohash *manmac; /* Man macro lookup table. */
struct ohash *roffhash_alloc(enum roff_tok, enum roff_tok);
enum roff_tok roffhash_find(struct ohash *, const char *, size_t);
void roffhash_free(struct ohash *);
static struct ohash tag_data;
struct ohash myh;
static void nodes_init(struct ohash *);
static struct node *node_lookup(struct ohash *, const char *, const char *);
static unsigned int read_pairs(FILE *, struct ohash *, int,
static void split_nodes(struct ohash *, struct array *, struct array *);
static void make_transparent(struct ohash *);
static void dump_hash(struct ohash *);
static unsigned int read_hints(FILE *, struct ohash *, int,
static void parse_args(int, char *[], struct ohash *);
static int tsort(struct ohash *);
nodes_init(struct ohash *h)
node_lookup(struct ohash *h, const char *start, const char *end)
dump_hash(struct ohash *h)
read_pairs(FILE *f, struct ohash *h, int reverse, const char *name,
read_hints(FILE *f, struct ohash *h, int quiet, const char *name,
make_transparent(struct ohash *hash)
split_nodes(struct ohash *hash, struct array *heap, struct array *remaining)
parse_args(int argc, char *argv[], struct ohash *pairs)
tsort(struct ohash *pairs)
struct ohash pairs;