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 <tom@tromey.com>
This commit is contained in:
Andrew Burgess
2025-02-17 15:00:52 +00:00
parent 050c30f4db
commit a6924ac89d
5 changed files with 28 additions and 17 deletions

View File

@@ -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 ()
{