From 42a641c728c7fb7ace0b3aa126fded0179b7bde4 Mon Sep 17 00:00:00 2001 From: Nikos Tsipinakis Date: Wed, 8 Feb 2017 20:55:48 +0200 Subject: [PATCH] Take allow_markup into account if markup is not set Preserve backwards compatibility for now, this might be removed for the 3.0 release later on. --- src/option_parser.c | 10 ++++++++++ src/option_parser.h | 2 ++ src/settings.c | 28 ++++++++++++++++++++-------- 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/src/option_parser.c b/src/option_parser.c index e33454c..d7c9183 100644 --- a/src/option_parser.c +++ b/src/option_parser.c @@ -138,6 +138,11 @@ double ini_get_double(char *section, char *key, double def) return atof(value); } +bool ini_is_set(char *ini_section, char *ini_key) +{ + return get_value(ini_section, ini_key) != NULL; +} + char *next_section(char *section) { if (section_count == 0) @@ -381,6 +386,11 @@ int cmdline_get_bool(char *key, int def, char *description) return def; } +bool cmdline_is_set(char *key) +{ + return cmdline_get_value(key) != NULL; +} + char *option_get_string(char *ini_section, char *ini_key, char *cmdline_key, const char *def, char *description) { diff --git a/src/option_parser.h b/src/option_parser.h index b83d038..394fa26 100644 --- a/src/option_parser.h +++ b/src/option_parser.h @@ -9,6 +9,7 @@ char *ini_get_string(char *section, char *key, const char *def); int ini_get_int(char *section, char *key, int def); double ini_get_double(char *section, char *key, double def); int ini_get_bool(char *section, char *key, int def); +bool ini_is_set(char *ini_section, char *ini_key); void free_ini(void); void cmdline_load(int argc, char *argv[]); @@ -17,6 +18,7 @@ char *cmdline_get_string(char *key, const char *def, char *description); int cmdline_get_int(char *key, int def, char *description); double cmdline_get_double(char *key, double def, char *description); int cmdline_get_bool(char *key, int def, char *description); +bool cmdline_is_set(char *key); char *cmdline_create_usage(void); char *option_get_string(char *ini_section, char *ini_key, char *cmdline_key, diff --git a/src/settings.c b/src/settings.c index 9826167..5441876 100644 --- a/src/settings.c +++ b/src/settings.c @@ -38,7 +38,7 @@ static enum markup_mode parse_markup_mode(const char *mode) return MARKUP_STRIP; } else if (strcmp(mode, "no") == 0) { return MARKUP_NO; - } else if (strcmp(mode, "full") == 0) { + } else if (strcmp(mode, "full") == 0 || strcmp(mode, "yes")) { return MARKUP_FULL; } else { fprintf(stderr, "Warning: unknown markup mode: \"%s\"\n", mode); @@ -103,14 +103,26 @@ void load_settings(char *cmdline_config_path) ); { - char *c = option_get_string( - "global", - "markup", "-markup", markup, - "Specify how markup should be handled" - ); + //If markup isn't set, fall back to allow_markup for backwards compatibility + if(ini_is_set("global", "markup") || cmdline_is_set("-markup")) { + char *c = option_get_string( + "global", + "markup", "-markup", markup, + "Specify how markup should be handled" + ); - settings.markup = parse_markup_mode(c); - free(c); + settings.markup = parse_markup_mode(c); + free(c); + } else if (ini_is_set("global", "allow_markup") || cmdline_is_set("-allow_markup")) { + bool allow_markup = option_get_bool( + "global", + "allow_markup", "-allow_markup", false, + "Specify how markup should be handled" + ); + + settings.markup = (allow_markup ? MARKUP_FULL : MARKUP_STRIP); + fprintf(stderr, "Warning: 'allow_markup' is deprecated, please use 'markup' instead.\n"); + } } settings.format = option_get_string(