diff --git a/src/core/config.c b/src/core/config.c index b291431..efcce84 100644 --- a/src/core/config.c +++ b/src/core/config.c @@ -110,6 +110,7 @@ static int config_parse_line(char* line, int line_count, void* ptr_data) key = strip_white_space(key); data = strip_white_space(data); + data = strip_off_quotes(data); if (!*key || !*data) { diff --git a/src/util/misc.c b/src/util/misc.c index c670638..44ebdd5 100644 --- a/src/util/misc.c +++ b/src/util/misc.c @@ -483,3 +483,24 @@ int string_to_boolean(const char* str, int* boolean) return 0; } } + +char* strip_off_quotes(char* line) +{ + size_t len; + + if (!*line) + return line; + + len = strlen(line); + if (len < 2) + return line; + + if ((line[0] == '"' && line[len - 1] == '"') || + (line[0] == '\'' && line[len - 1] == '\'')) + { + line[len-1] = '\0'; + return line + 1; + } + return line; +} + diff --git a/src/util/misc.h b/src/util/misc.h index 048ee56..10eb967 100644 --- a/src/util/misc.h +++ b/src/util/misc.h @@ -34,6 +34,7 @@ extern void base32_encode(const unsigned char* buffer, size_t len, char* result) extern void base32_decode(const char* src, unsigned char* dst, size_t len); extern char* strip_white_space(char* string); extern void strip_off_ini_line_comments(char* line, int line_count); +extern char* strip_off_quotes(char* line); extern int file_read_lines(const char* file, void* data, file_line_handler_t handler);