This one function reads an entire INI file sequentially. There is no retention of the data after the call returns.
INI example format:
[Section Name]
key = value
key2=value2
key 3 = " value 3 "
The callback function signature:
typedef int (*ini_read_callback_fn)(char* section_name, char* key, char* value, void* use_data);
void ini_read(char* path, ini_read_callback_fn fn, void* user_data)
Parses the INI file at path and calls the callback for every entry found. user_data is an arbitrary pointer
passed on to the callback.