Restore webpages
[browser-switch] / configfile.h
index c7863a7..b2aec5d 100644 (file)
 #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 */