/** * Light-weight (i.e. dumb) config-file parser * * Copyright (C) 2018 Christian W. Zuckschwerdt * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. */ #ifndef INCLUDE_CONFPARSE_H_ #define INCLUDE_CONFPARSE_H_ struct conf_keywords { char const *keyword; int key; }; /// Check if a file exists and can be read. /// @param path input file name /// @return 1 if the file exists and is readable, 0 otherwise int hasconf(char const *path); /// Open a config file, read contents to memory. /// @param path input file name /// @return allocated memory containing the config file char *readconf(char const *path); /// Return the next keyword token and set the optional argument. /// /// @param conf current position in conf /// @param keywords list of possible keywords /// @param arg optional out pointer to a argument string /// @return the next keyword token, -1 otherwise. int getconf(char **conf, struct conf_keywords const keywords[], char **arg); #endif /* INCLUDE_CONFPARSE_H_ */