From: Andrew Burgess Date: Mon, 17 Feb 2025 15:00:52 +0000 (+0000) Subject: gdb: make cli_styling static within cli/cli-style.c X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a6924ac89d75188cd9ad3b740226db11798520dd;p=thirdparty%2Fbinutils-gdb.git gdb: make cli_styling static within cli/cli-style.c The cli_styling variable is controlled by 'set style enabled on|off' user setting, and is currently globally visible. In a couple of places we access this variable directly, though in ui-file.c the accesses are all performed through term_cli_styling(), which is a function that wraps checking cli_styling along with a check that GDB's terminal supports styling. In a future commit, I'd plan to add a new parameter to gdb.execute() which will allow styling to be temporarily suppressed. In an earlier proposal, I made gdb.execute() disable styling by changing the value of cli_styling, however, this approach has a problem. If gdb.execute() is used to run 'show style enabled', the changing cli_styling will change what is printed. Similarly, if gdb.execute() is used to execute 'set style enabled on|off' then having gdb.execute() save and restore the value of cli_styling will undo the adjustment from 'set style enabled ...'. So what I plan to do in the future, is add a new control flag which can be used to temporarily disable styling. To make this new control variable easier to add, lets force everyone to call term_cli_styling() to check if styling is enabled or not. To force everyone to use term_cli_styling() this commit makes cli_styling static within gdb/cli/cli-style.c. Approved-By: Tom Tromey --- diff --git a/gdb/cli/cli-style.c b/gdb/cli/cli-style.c index 47f7d2ea693..3ca30a4fa7f 100644 --- a/gdb/cli/cli-style.c +++ b/gdb/cli/cli-style.c @@ -27,9 +27,9 @@ /* True if styling is enabled. */ #if defined (__MSDOS__) -bool cli_styling = false; +static bool cli_styling = false; #else -bool cli_styling = true; +static bool cli_styling = true; #endif /* True if source styling is enabled. Note that this is only @@ -80,6 +80,22 @@ terminal_supports_styling () /* See cli/cli-style.h. */ +void +disable_cli_styling () +{ + cli_styling = false; +} + +/* See cli/cli-style.h. */ + +bool +term_cli_styling () +{ + return cli_styling; +} + +/* See cli/cli-style.h. */ + void disable_styling_from_environment () { diff --git a/gdb/cli/cli-style.h b/gdb/cli/cli-style.h index 1fb89a37455..18827ce9d54 100644 --- a/gdb/cli/cli-style.h +++ b/gdb/cli/cli-style.h @@ -157,13 +157,18 @@ extern bool source_styling; /* True if disassembler styling is enabled. */ extern bool disassembler_styling; -/* True if styling is enabled. */ -extern bool cli_styling; - /* Check for environment variables that indicate styling should start as disabled. If any are found then disable styling. Styling is never enabled by this call. If styling was already disabled then it remains disabled after this call. */ extern void disable_styling_from_environment (); +/* Equivalent to 'set style enabled off'. Can be used during GDB's start + up if a command line option, or environment variable, indicates that + styling should be turned off. */ +extern void disable_cli_styling (); + +/* Return true styled output is currently enabled. */ +extern bool term_cli_styling (); + #endif /* GDB_CLI_CLI_STYLE_H */ diff --git a/gdb/main.c b/gdb/main.c index 2545a157924..27043b74885 100644 --- a/gdb/main.c +++ b/gdb/main.c @@ -1027,7 +1027,7 @@ captured_main_1 (struct captured_main_args *context) quiet = 1; /* Disable all output styling when running in batch mode. */ - cli_styling = false; + disable_cli_styling (); } } diff --git a/gdb/tui/tui-wingeneral.c b/gdb/tui/tui-wingeneral.c index 56e7abd8f2c..90fdaceb1a2 100644 --- a/gdb/tui/tui-wingeneral.c +++ b/gdb/tui/tui-wingeneral.c @@ -80,7 +80,7 @@ box_win (struct tui_win_info *win_info, /* tui_apply_style resets the style entirely, so be sure to call it before applying ATTRS. */ - if (cli_styling) + if (term_cli_styling ()) tui_apply_style (win, (highlight_flag ? tui_active_border_style.style () : tui_border_style.style ())); diff --git a/gdb/ui-file.c b/gdb/ui-file.c index 1a2f5635b76..e9d3a907e6f 100644 --- a/gdb/ui-file.c +++ b/gdb/ui-file.c @@ -180,16 +180,6 @@ null_file::write_async_safe (const char *buf, long sizeof_buf) -/* Return true if styling is currently enabled. */ - -static bool -term_cli_styling () -{ - return cli_styling; -} - - - string_file::~string_file () {}