yield None
finally:
set_parameter(name, old_value)
-
-
-try:
- from pygments import formatters, lexers, highlight
-
- def colorize(filename, contents):
- # Don't want any errors.
- try:
- lexer = lexers.get_lexer_for_filename(filename, stripnl=False)
- formatter = formatters.TerminalFormatter()
- return highlight(contents, lexer, formatter).encode(
- host_charset(), "backslashreplace"
- )
- except:
- return None
-
- def colorize_disasm(content, gdbarch):
- # Don't want any errors.
- try:
- lexer = lexers.get_lexer_by_name("asm")
- formatter = formatters.TerminalFormatter()
- return highlight(content, lexer, formatter).rstrip().encode()
- except:
- return None
-
-
-except:
-
- def colorize(filename, contents):
- return None
-
- def colorize_disasm(content, gdbarch):
- return None
--- /dev/null
+# Styling related hooks.
+# Copyright (C) 2010-2022 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+"""Utilities for styling."""
+
+import gdb
+
+try:
+ from pygments import formatters, lexers, highlight
+
+ def colorize(filename, contents):
+ # Don't want any errors.
+ try:
+ lexer = lexers.get_lexer_for_filename(filename, stripnl=False)
+ formatter = formatters.TerminalFormatter()
+ return highlight(contents, lexer, formatter).encode(
+ gdb.host_charset(), "backslashreplace"
+ )
+ except:
+ return None
+
+ def colorize_disasm(content, gdbarch):
+ # Don't want any errors.
+ try:
+ lexer = lexers.get_lexer_by_name("asm")
+ formatter = formatters.TerminalFormatter()
+ return highlight(content, lexer, formatter).rstrip().encode()
+ except:
+ return None
+
+except:
+
+ def colorize(filename, contents):
+ return None
+
+ def colorize_disasm(content, gdbarch):
+ return None
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 ();
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)
{