Add the search feature.
This commit is contained in:
parent
a27bdc37f5
commit
1a6a80d26b
|
@ -51,6 +51,13 @@ typedef struct table_entry table_entry;
|
||||||
* @param table the table to initialize.
|
* @param table the table to initialize.
|
||||||
*/
|
*/
|
||||||
void table_init(table* table);
|
void table_init(table* table);
|
||||||
|
/**
|
||||||
|
* Searches for the given string in the table.
|
||||||
|
* @param table the table to search.
|
||||||
|
* @param string the string to search for.
|
||||||
|
* @return the table entry, or NULL if an entry was not found.
|
||||||
|
*/
|
||||||
|
table_entry* table_search(table* table, const char* string);
|
||||||
/**
|
/**
|
||||||
* Frees the resources allocated by the
|
* Frees the resources allocated by the
|
||||||
* given table.
|
* given table.
|
||||||
|
|
|
@ -5,7 +5,14 @@ void table_init(table* table) {
|
||||||
ht_init(&table->table);
|
ht_init(&table->table);
|
||||||
table->parent = NULL;
|
table->parent = NULL;
|
||||||
}
|
}
|
||||||
|
table_entry* table_search(table* table, const char* string) {
|
||||||
|
void* to_return = NULL;
|
||||||
|
do {
|
||||||
|
to_return = ht_get(&table->table, string);
|
||||||
|
table = table->parent;
|
||||||
|
} while(table && to_return == NULL);
|
||||||
|
return to_return;
|
||||||
|
}
|
||||||
void table_free(table* table) {
|
void table_free(table* table) {
|
||||||
ht_free(&table->table);
|
ht_free(&table->table);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user