[svn-commits] tilghman: trunk r161181 - /trunk/main/config.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Thu Dec 4 23:41:42 CST 2008


Author: tilghman
Date: Thu Dec  4 23:41:41 2008
New Revision: 161181

URL: http://svn.digium.com/view/asterisk?view=rev&rev=161181
Log:
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

Modified:
    trunk/main/config.c

Modified: trunk/main/config.c
URL: http://svn.digium.com/view/asterisk/trunk/main/config.c?view=diff&rev=161181&r1=161180&r2=161181
==============================================================================
--- trunk/main/config.c (original)
+++ trunk/main/config.c Thu Dec  4 23:41:41 2008
@@ -953,7 +953,9 @@
  		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;
@@ -1076,7 +1078,7 @@
 		}
 		/* 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))
@@ -1133,7 +1135,7 @@
 				c++;
 			}
 set_new_variable:
-			if ((v = ast_variable_new(ast_strip(cur), ast_strip(c), S_OR(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;




More information about the svn-commits mailing list