GlhHashNode
static int _glh_is_line(GlhHashNode *hash, const char *line, size_t n);
static int _glh_line_matches_prefix(GlhHashNode *line, GlhHashNode *prefix);
static void _glh_return_line(GlhHashNode *hash, char *line, size_t dim);
GlhHashNode *lines; /* The list of history lines which fall in this bucket */
static GlhHashNode *glh_find_hash_node(GlhHashBucket *bucket, const char *line,
GlhHashNode *line; /* The hash-table entry of the history line */
GlhHashNode *hnode;
GlhHashNode *prefix; /* A pointer to a line containing the prefix that */
static GlhHashNode *_glh_acquire_copy(GlHistory *glh, const char *line,
static GlhHashNode *_glh_discard_copy(GlHistory *glh, GlhHashNode *hnode);
static GlhHashNode *_glh_acquire_copy(GlHistory *glh, const char *line,
GlhHashNode *hnode; /* The hash-table node of the line */
hnode = (GlhHashNode *) _new_FreeListNode(glh->hash.node_mem);
static void glh_init_stream(GlhLineStream *str, GlhHashNode *line);
static GlhHashNode *_glh_discard_copy(GlHistory *glh, GlhHashNode *hnode)
GlhHashNode *prev; /* The node which precedes hnode in the bucket */
static int glh_contains_glob(GlhHashNode *prefix);
hnode = (GlhHashNode *) _del_FreeListNode(glh->hash.node_mem, hnode);
static GlhHashNode *glh_find_hash_node(GlhHashBucket *bucket, const char *line,
GlhHashNode *node; /* A node in the list of lines in the bucket */
static int _glh_is_line(GlhHashNode *hash, const char *line, size_t n)
static int _glh_line_matches_prefix(GlhHashNode *line, GlhHashNode *prefix)
static void _glh_return_line(GlhHashNode *hash, char *line, size_t dim)
static void glh_init_stream(GlhLineStream *str, GlhHashNode *line)
static int glh_contains_glob(GlhHashNode *prefix)
GlhHashNode *hnode; /* The hash-table node of the line */
GlhHashNode *old_line; /* The previous recalled line */
GlhHashNode *old_line; /* The previous recalled line */
typedef struct GlhHashNode GlhHashNode;
GlhHashNode *next; /* The next in the list of nodes within the */