mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-01 14:03:56 +08:00
Add class scoped_switch_to_sym_language_if_auto.
The class scoped_switch_to_sym_language_if_auto allows to switch in a scope the current language to the language of a symbol when language mode is set to auto. 2018-11-20 Philippe Waroquiers <philippe.waroquiers@skynet.be> * language.h (scoped_switch_to_sym_language_if_auto): New class.
This commit is contained in:
parent
beddd67132
commit
9e6a1ab665
@ -1,3 +1,7 @@
|
||||
2018-11-20 Philippe Waroquiers <philippe.waroquiers@skynet.be>
|
||||
|
||||
* language.h (scoped_switch_to_sym_language_if_auto): New class.
|
||||
|
||||
2018-11-20 Philippe Waroquiers <philippe.waroquiers@skynet.be>
|
||||
|
||||
* symtab.c (search_symbols): Properly check absence of type regexp
|
||||
|
@ -707,4 +707,39 @@ private:
|
||||
enum language m_lang;
|
||||
};
|
||||
|
||||
/* If language_mode is language_mode_auto,
|
||||
then switch current language to the language of SYM
|
||||
and restore current language upon destruction.
|
||||
|
||||
Else do nothing. */
|
||||
|
||||
class scoped_switch_to_sym_language_if_auto
|
||||
{
|
||||
public:
|
||||
|
||||
explicit scoped_switch_to_sym_language_if_auto (const struct symbol *sym)
|
||||
{
|
||||
if (language_mode == language_mode_auto)
|
||||
{
|
||||
m_lang = current_language->la_language;
|
||||
m_switched = true;
|
||||
set_language (SYMBOL_LANGUAGE (sym));
|
||||
}
|
||||
else
|
||||
m_switched = false;
|
||||
}
|
||||
|
||||
~scoped_switch_to_sym_language_if_auto ()
|
||||
{
|
||||
if (m_switched)
|
||||
set_language (m_lang);
|
||||
}
|
||||
|
||||
DISABLE_COPY_AND_ASSIGN (scoped_switch_to_sym_language_if_auto);
|
||||
|
||||
private:
|
||||
bool m_switched;
|
||||
enum language m_lang;
|
||||
};
|
||||
|
||||
#endif /* defined (LANGUAGE_H) */
|
||||
|
Loading…
Reference in New Issue
Block a user