From 4a6cb52dea9c5c82b35cace48bf44e0a05aa2ee3 Mon Sep 17 00:00:00 2001 From: tilghman Date: Fri, 5 Dec 2008 05:43:36 +0000 Subject: Merged revisions 161181 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ........ r161181 | tilghman | 2008-12-04 23:41:41 -0600 (Thu, 04 Dec 2008) | 11 lines The first file should have a blank config filename in the structure, so that when a save occurs to a different filename, everything goes to the alternate filename, instead of appending to the original. This is important for the AMI command UpdateConfig. (closes issue #13301) Reported by: trevo Patches: 20081113__bug13301.diff.txt uploaded by Corydon76 (license 14) 20081113__bug13301__1.6.0.diff.txt uploaded by Corydon76 (license 14) Tested by: Corydon76, blitzrage ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@161183 f38db490-d61c-443f-a65b-d21fe96a405b --- main/config.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'main/config.c') diff --git a/main/config.c b/main/config.c index 119821c93..ddc5baa01 100644 --- a/main/config.c +++ b/main/config.c @@ -951,7 +951,9 @@ static int process_text_line(struct ast_config *cfg, struct ast_category **cat, if (*c++ != '(') c = NULL; catname = cur; - if (!(*cat = newcat = ast_category_new(catname, ast_strlen_zero(suggested_include_file)?configfile:suggested_include_file, lineno))) { + if (!(*cat = newcat = ast_category_new(catname, + S_OR(suggested_include_file, cfg->include_level == 1 ? "" : configfile), + lineno))) { return -1; } (*cat)->lineno = lineno; @@ -1070,7 +1072,7 @@ static int process_text_line(struct ast_config *cfg, struct ast_category **cat, } /* A #include */ /* record this inclusion */ - inclu = ast_include_new(cfg, configfile, cur, !do_include, cur2, lineno, real_inclusion_name, sizeof(real_inclusion_name)); + inclu = ast_include_new(cfg, cfg->include_level == 1 ? "" : configfile, cur, !do_include, cur2, lineno, real_inclusion_name, sizeof(real_inclusion_name)); do_include = ast_config_internal_load(cur, cfg, flags, real_inclusion_name, who_asked) ? 1 : 0; if (!ast_strlen_zero(exec_file)) @@ -1099,7 +1101,7 @@ static int process_text_line(struct ast_config *cfg, struct ast_category **cat, c++; } else object = 0; - if ((v = ast_variable_new(ast_strip(cur), ast_strip(c), *suggested_include_file ? suggested_include_file : configfile))) { + if ((v = ast_variable_new(ast_strip(cur), ast_strip(c), S_OR(suggested_include_file, cfg->include_level == 1 ? "" : configfile)))) { v->lineno = lineno; v->object = object; *last_cat = 0; -- cgit v1.2.3