diff options
author | Martin Mares <mj@ucw.cz> | 2000-06-04 19:30:13 +0000 |
---|---|---|
committer | Martin Mares <mj@ucw.cz> | 2000-06-04 19:30:13 +0000 |
commit | 04dc62a0116941d2f1510216539ae8c11c5f1cb3 (patch) | |
tree | ead689c0378fa535ecb3ae7dbe9d86f98c043653 /conf/conf.h | |
parent | dab66519160042f1fb62a285e3a947233ce74e70 (diff) |
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.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/conf/conf.h b/conf/conf.h index 24e3217d..5d5e4bc5 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); |