summaryrefslogtreecommitdiffstats
path: root/conf/conf.h
diff options
context:
space:
mode:
authorMartin Mares <mj@ucw.cz>2000-06-04 21:30:13 +0200
committerMartin Mares <mj@ucw.cz>2000-06-04 21:30:13 +0200
commit04dc62a0116941d2f1510216539ae8c11c5f1cb3 (patch)
treeead689c0378fa535ecb3ae7dbe9d86f98c043653 /conf/conf.h
parentdab66519160042f1fb62a285e3a947233ce74e70 (diff)
downloadbird-04dc62a0116941d2f1510216539ae8c11c5f1cb3.tar
bird-04dc62a0116941d2f1510216539ae8c11c5f1cb3.zip
Nested scopes could never have worked. My fault I wrote such a buggy code,
Pavel's fault that he's never tested shadowing of declarations in the filters. cf_define_symbol() has been modified to check the scope of the symbol it's given and it if it's an already defined symbol, but in a different scope, a copy is created in the current scope and redefined to the new meaning, the consequence being that it cf_define_symbol() now returns the new symbol you need to use when assigning aux and aux2.
Diffstat (limited to 'conf/conf.h')
-rw-r--r--conf/conf.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/conf/conf.h b/conf/conf.h
index 24e3217..5d5e4bc 100644
--- a/conf/conf.h
+++ b/conf/conf.h
@@ -98,7 +98,7 @@ int cf_lex(void);
void cf_lex_init(int is_cli);
struct symbol *cf_find_symbol(byte *c);
struct symbol *cf_default_name(char *template, int *counter);
-void cf_define_symbol(struct symbol *symbol, int type, void *def);
+struct symbol *cf_define_symbol(struct symbol *symbol, int type, void *def);
void cf_push_scope(struct symbol *);
void cf_pop_scope(void);
struct symbol *cf_walk_symbols(struct config *cf, struct symbol *sym, int *pos);