diff options
| -rw-r--r-- | ezlive_config.c | 8 | ||||
| -rw-r--r-- | ezlive_config.h | 2 | ||||
| -rw-r--r-- | main.c | 17 |
3 files changed, 21 insertions, 6 deletions
diff --git a/ezlive_config.c b/ezlive_config.c index 2b059b0..618c051 100644 --- a/ezlive_config.c +++ b/ezlive_config.c @@ -4,6 +4,7 @@ #include <stdio.h> #include <string.h> #include <ctype.h> +#include <stdbool.h> EZLiveConfig *ezlive_config; @@ -37,13 +38,13 @@ static void set_field(const char **field, const char *value) { *field = strdup(value); } -void EZLiveConfig_load(EZLiveConfig *self, const char *filename) { - if (!self || !filename) return; +bool EZLiveConfig_load(EZLiveConfig *self, const char *filename) { + if (!self || !filename) return false; FILE *fp = fopen(filename, "r"); if (!fp) { perror("fopen"); - return; + return false; } char line[1024]; @@ -84,6 +85,7 @@ void EZLiveConfig_load(EZLiveConfig *self, const char *filename) { } fclose(fp); + return true; } int EZLiveConfig_validate(EZLiveConfig *self) { diff --git a/ezlive_config.h b/ezlive_config.h index 90dbf8c..576944a 100644 --- a/ezlive_config.h +++ b/ezlive_config.h @@ -16,7 +16,7 @@ typedef struct { extern EZLiveConfig *ezlive_config; void EZLiveConfig_init(EZLiveConfig *self); -void EZLiveConfig_load(EZLiveConfig *self, const char *filename); +bool EZLiveConfig_load(EZLiveConfig *self, const char *filename); int EZLiveConfig_validate(EZLiveConfig *self); #endif
\ No newline at end of file @@ -80,10 +80,23 @@ void on_srt_data(void *ctx, char *buf, size_t size) { int main(int argc, char **argv) { ezlive_config = malloc(sizeof(EZLiveConfig)); EZLiveConfig_init(ezlive_config); + bool succ; if (argc == 1) { - EZLiveConfig_load(ezlive_config, "./config"); + succ = EZLiveConfig_load(ezlive_config, "./config"); +#if defined(_WIN32) + if (!succ) { + succ = EZLiveConfig_load(ezlive_config, "./config.txt"); + } +#endif + if (!succ) { + fprintf(stderr, "Failed to load config.\n"); + return -1; + } } else if (argc == 2) { - EZLiveConfig_load(ezlive_config, argv[1]); + if (!EZLiveConfig_load(ezlive_config, argv[1])) { + fprintf(stderr, "Failed to load config.\n"); + return -1; + } } else { fprintf(stderr, "wrong args.\n"); exit(-1); |
