#define _CONFIGFILE_H
#include <stdio.h>
-#include <sys/types.h>
-#include <regex.h>
#define DEFAULT_HOMEDIR "/home/user"
-#define CONFIGFILE_LOC "/.config/browser-switchboard"
-#define CONFIGFILE_LOC_OLD "/.config/browser-proxy"
-#define MAXLINE 1024
-
-/* regex matching blank lines or comments */
-#define REGEX_IGNORE "^[[:space:]]*(#|$)"
-#define REGEX_IGNORE_FLAGS REG_EXTENDED|REG_NOSUB
-
-/* regex matching foo = "bar", with arbitrary whitespace at beginning and end
- of line and surrounding the = */
-#define REGEX_CONFIG1 "^[[:space:]]*([^=[:space:]]+)[[:space:]]*=[[:space:]]*\"(.*)\"[[:space:]]*$"
-#define REGEX_CONFIG1_FLAGS REG_EXTENDED
-
-/* regex matching foo = bar, with arbitrary whitespace at beginning of line and
- surrounding the = */
-#define REGEX_CONFIG2 "^[[:space:]]*([^=[:space:]]+)[[:space:]]*=[[:space:]]*(.*)$"
-#define REGEX_CONFIG2_FLAGS REG_EXTENDED|REG_NEWLINE
-
+#define CONFIGFILE_DIR "/.config/"
+#define CONFIGFILE_NAME "browser-switchboard"
+#define CONFIGFILE_NAME_OLD "browser-proxy"
+#define CONFIGFILE_LOC CONFIGFILE_DIR CONFIGFILE_NAME
+#define CONFIGFILE_LOC_OLD CONFIGFILE_DIR CONFIGFILE_NAME_OLD
+
+struct swb_config_line {
+ /* Whether or not the line has been parsed */
+ int parsed;
+ /* If parsed, the config key; otherwise, the entire line */
+ char *key;
+ /* If parsed, the config value */
+ char *value;
+};
FILE *open_config_file(void);
+int parse_config_file_begin(void);
+void parse_config_file_end(void);
+int parse_config_file_line(FILE *fp, struct swb_config_line *line);
+
#endif /* _CONFIGFILE_H */