From 9a044a8903fdfe53411787984379191d15373019 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Tue, 30 Sep 2008 17:21:28 +0000 Subject: gdb PR gdb/2484: * symtab.c (struct add_macro_name_data): New struct. (add_macro_name): New function. (default_make_symbol_completion_list): Complete macro names. * scm-lang.c (scm_language_defn): Update. * p-lang.c (pascal_language_defn): Update. * objc-lang.c (objc_language_defn): Update. * macrotab.h (macro_callback_fn): Add user_data argument. (macro_for_each): Likewise. (macro_for_each_in_scope): Declare. * macrotab.c: (struct macro_for_each_data): New struct. (foreach_macro): Use it. (macro_for_each): Likewise. (foreach_macro_in_scope): New function. (macro_for_each_in_scope): Likewise. * macrocmd.c (print_one_macro): Add argument. (macro_list_command): Pass NULL to macro_for_each. * m2-lang.c (m2_language_defn): Update. * language.h (struct language_defn) : New field. (macro_expansion): New enum. * language.c (unknown_language_defn): Update. Fix order of initializers. (auto_language_defn): Likewise. (local_language_defn): Update. * jv-lang.c (java_language_defn): Update. * f-lang.c (f_language_defn): Update. * c-lang.c (c_language_defn): Update. (cplus_language_defn): Likewise. (asm_language_defn): Likewise. (minimal_language_defn): Likewise. * ada-lang.c (ada_language_defn): Update. gdb/testsuite * gdb.base/macscp.exp: Add completion tests. * gdb.base/macscp1.c (FIFTY_SEVEN): New macro. (TWENTY_THREE): Likewise. (FORTY_EIGHT): Likewise. --- gdb/macrotab.h | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) (limited to 'gdb/macrotab.h') diff --git a/gdb/macrotab.h b/gdb/macrotab.h index 71f1d3e..25b4c5f 100644 --- a/gdb/macrotab.h +++ b/gdb/macrotab.h @@ -305,12 +305,24 @@ struct macro_source_file *(macro_definition_location int *definition_line)); /* Callback function when walking a macro table. NAME is the name of - the macro, and DEFINITION is the definition. */ + the macro, and DEFINITION is the definition. USER_DATA is an + arbitrary pointer which is passed by the caller to macro_for_each + or macro_for_each_in_scope. */ typedef void (*macro_callback_fn) (const char *name, - const struct macro_definition *definition); - -/* Call the function FN for each macro in the macro table TABLE. */ -void macro_for_each (struct macro_table *table, macro_callback_fn fn); + const struct macro_definition *definition, + void *user_data); + +/* Call the function FN for each macro in the macro table TABLE. + USER_DATA is passed, untranslated, to FN. */ +void macro_for_each (struct macro_table *table, macro_callback_fn fn, + void *user_data); + +/* Call the function FN for each macro that is visible in a given + scope. The scope is represented by FILE and LINE. USER_DATA is + passed, untranslated, to FN. */ +void macro_for_each_in_scope (struct macro_source_file *file, int line, + macro_callback_fn fn, + void *user_data); #endif /* MACROTAB_H */ -- cgit v1.1