mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-05-30 15:56:36 +08:00
gdb/python: move styling support to gdb.styling
This commit moves the two Python functions that are used for styling into a new module, gdb.styling, there's then a small update in python.c so GDB can find the functions in their new location. The motivation for this change is purely to try and reduce the clutter in the top-level gdb module, and encapsulate related functions into modules. I did ponder documenting these functions as part of the Python API, however, doing so would effectively "fix" the API, and I'm still wondering if there's improvements that could be made, also, the colorize function is only called in some cases now that GDB prefers libsource-highlight, so it's not entirely sure how this would work as part of a user facing API. Still, despite these functions never having been part of a documented API, it is possible that a user out there has overridden these to, in some way, customize how GDB performs styling. Moving the function as I propose in this patch could break things for that user, however, fixing this breakage is trivial, and, as these functions were never documented, I don't think we should be obliged to not break user code that relies on them.
This commit is contained in:

committed by
Andrew Burgess

parent
e867795e8b
commit
7b8c55afd0
@ -1156,11 +1156,17 @@ gdbpy_colorize (const std::string &filename, const std::string &contents)
|
||||
|
||||
gdbpy_enter enter_py;
|
||||
|
||||
if (gdb_python_module == nullptr
|
||||
|| !PyObject_HasAttrString (gdb_python_module, "colorize"))
|
||||
gdbpy_ref<> module (PyImport_ImportModule ("gdb.styling"));
|
||||
if (module == nullptr)
|
||||
{
|
||||
gdbpy_print_stack ();
|
||||
return {};
|
||||
}
|
||||
|
||||
if (!PyObject_HasAttrString (module.get (), "colorize"))
|
||||
return {};
|
||||
|
||||
gdbpy_ref<> hook (PyObject_GetAttrString (gdb_python_module, "colorize"));
|
||||
gdbpy_ref<> hook (PyObject_GetAttrString (module.get (), "colorize"));
|
||||
if (hook == nullptr)
|
||||
{
|
||||
gdbpy_print_stack ();
|
||||
@ -1227,11 +1233,17 @@ gdbpy_colorize_disasm (const std::string &content, gdbarch *gdbarch)
|
||||
|
||||
gdbpy_enter enter_py;
|
||||
|
||||
if (gdb_python_module == nullptr
|
||||
|| !PyObject_HasAttrString (gdb_python_module, "colorize_disasm"))
|
||||
gdbpy_ref<> module (PyImport_ImportModule ("gdb.styling"));
|
||||
if (module == nullptr)
|
||||
{
|
||||
gdbpy_print_stack ();
|
||||
return {};
|
||||
}
|
||||
|
||||
if (!PyObject_HasAttrString (module.get (), "colorize_disasm"))
|
||||
return {};
|
||||
|
||||
gdbpy_ref<> hook (PyObject_GetAttrString (gdb_python_module,
|
||||
gdbpy_ref<> hook (PyObject_GetAttrString (module.get (),
|
||||
"colorize_disasm"));
|
||||
if (hook == nullptr)
|
||||
{
|
||||
|
Reference in New Issue
Block a user