aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilippe Waroquiers <philippe.waroquiers@skynet.be>2019-12-15 17:58:16 +0100
committerPhilippe Waroquiers <philippe.waroquiers@skynet.be>2020-01-03 21:13:21 +0100
commit6ec1d75e05a646eb602de4034366ec5fec7545ce (patch)
tree69c29a3159e27912cd1faa5d665543b37ff07c36
parent44f81a76542dbeada2541a05de191ae0ac0fbc2c (diff)
downloadgdb-6ec1d75e05a646eb602de4034366ec5fec7545ce.zip
gdb-6ec1d75e05a646eb602de4034366ec5fec7545ce.tar.gz
gdb-6ec1d75e05a646eb602de4034366ec5fec7545ce.tar.bz2
Ensure GDB warnings are styled.
While handling the comments of Tom related to [RFC] Have an option to tell GDB to detect and possibly handle mismatched exec-files. https://sourceware.org/ml/gdb-patches/2019-12/msg00621.html I saw that GDB warnings are produced ignoring the given styles. This patch: * ensures that style markups are properly handled by "warning". * changes 'set/show data-directory' so that file style is used in warnings and in 'show message' * changes all other messages in top.c to use file style when appropriate. * Uses the above data-directory changes in gdb.base/style.exp 2020-01-03 Philippe Waroquiers <philippe.waroquiers@skynet.be> * ui-file.c (stdio_file::can_emit_style_escape) (tee_file::can_emit_style_escape): Ensure style is used also on gdb_stderr when gdb_stderr is a tty supporting styling, similarly to gdb_stdout. * main.c (set_gdb_data_directory): Use file style to output the warning that the given pathname is not a directory. * top.c (show_history_filename, gdb_safe_append_history) (show_gdb_datadir): Use file style. 2020-01-03 Philippe Waroquiers <philippe.waroquiers@skynet.be> * gdb.base/style.exp: Test that warnings are styled.
-rw-r--r--gdb/ChangeLog11
-rw-r--r--gdb/main.c3
-rw-r--r--gdb/testsuite/ChangeLog4
-rw-r--r--gdb/testsuite/gdb.base/style.exp6
-rw-r--r--gdb/top.c16
-rw-r--r--gdb/ui-file.c4
6 files changed, 35 insertions, 9 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 3b26a31..7bd8897 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,14 @@
+2020-01-03 Philippe Waroquiers <philippe.waroquiers@skynet.be>
+
+ * ui-file.c (stdio_file::can_emit_style_escape)
+ (tee_file::can_emit_style_escape): Ensure style is used also on
+ gdb_stderr when gdb_stderr is a tty supporting styling, similarly
+ to gdb_stdout.
+ * main.c (set_gdb_data_directory): Use file style to output the
+ warning that the given pathname is not a directory.
+ * top.c (show_history_filename, gdb_safe_append_history)
+ (show_gdb_datadir): Use file style.
+
2020-01-03 Hannes Domani <ssbssa@yahoo.de>
* solib-target.c (struct lm_info_target):
diff --git a/gdb/main.c b/gdb/main.c
index 66a9e6a..d5e5a67 100644
--- a/gdb/main.c
+++ b/gdb/main.c
@@ -124,7 +124,8 @@ set_gdb_data_directory (const char *new_datadir)
print_sys_errmsg (new_datadir, save_errno);
}
else if (!S_ISDIR (st.st_mode))
- warning (_("%s is not a directory."), new_datadir);
+ warning (_("%ps is not a directory."),
+ styled_string (file_name_style.style (), new_datadir));
gdb_datadir = gdb_realpath (new_datadir).get ();
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index f7835f3..78f9700 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2020-01-03 Philippe Waroquiers <philippe.waroquiers@skynet.be>
+
+ * gdb.base/style.exp: Test that warnings are styled.
+
2019-12-29 Bernd Edlinger <bernd.edlinger@hotmail.de>
* gdb.base/line65535.exp: New file.
diff --git a/gdb/testsuite/gdb.base/style.exp b/gdb/testsuite/gdb.base/style.exp
index 17b9538..0457c3d 100644
--- a/gdb/testsuite/gdb.base/style.exp
+++ b/gdb/testsuite/gdb.base/style.exp
@@ -139,4 +139,10 @@ save_vars { env(TERM) } {
gdb_test "show logging file" \
"The current logfile is \"[style .*? file]\"\\..*"
+
+ # Check warnings are styled by setting a rubbish data directory.
+ gdb_test "set data-directory Makefile" \
+ "warning: [style .*? file] is not a directory\\..*"
+ gdb_test "show data-directory" \
+ "GDB's data directory is \"[style .*? file]\"\\..*"
}
diff --git a/gdb/top.c b/gdb/top.c
index 7e9c40f..3b93683 100644
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -55,6 +55,7 @@
#include "gdbsupport/scope-exit.h"
#include "gdbarch.h"
#include "gdbsupport/pathstuff.h"
+#include "cli/cli-style.h"
/* readline include files. */
#include "readline/readline.h"
@@ -924,8 +925,8 @@ show_history_filename (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
{
fprintf_filtered (file, _("The filename in which to record "
- "the command history is \"%s\".\n"),
- value);
+ "the command history is \"%ps\".\n"),
+ styled_string (file_name_style.style (), value));
}
/* This is like readline(), but it has some gdb-specific behavior.
@@ -1192,8 +1193,10 @@ gdb_safe_append_history (void)
saved_errno = errno;
if (ret < 0 && saved_errno != ENOENT)
{
- warning (_("Could not rename %s to %s: %s"),
- history_filename, local_history_filename.c_str (),
+ warning (_("Could not rename %ps to %ps: %s"),
+ styled_string (file_name_style.style (), history_filename),
+ styled_string (file_name_style.style (),
+ local_history_filename.c_str ()),
safe_strerror (saved_errno));
}
else
@@ -2094,8 +2097,9 @@ static void
show_gdb_datadir (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
{
- fprintf_filtered (file, _("GDB's data directory is \"%s\".\n"),
- gdb_datadir.c_str ());
+ fprintf_filtered (file, _("GDB's data directory is \"%ps\".\n"),
+ styled_string (file_name_style.style (),
+ gdb_datadir.c_str ()));
}
static void
diff --git a/gdb/ui-file.c b/gdb/ui-file.c
index 10192a9..af128b0 100644
--- a/gdb/ui-file.c
+++ b/gdb/ui-file.c
@@ -302,7 +302,7 @@ stdio_file::isatty ()
bool
stdio_file::can_emit_style_escape ()
{
- return (this == gdb_stdout
+ return ((this == gdb_stdout || this == gdb_stderr)
&& this->isatty ()
&& term_cli_styling ());
}
@@ -391,7 +391,7 @@ tee_file::term_out ()
bool
tee_file::can_emit_style_escape ()
{
- return (this == gdb_stdout
+ return ((this == gdb_stdout || this == gdb_stderr)
&& m_one->term_out ()
&& term_cli_styling ());
}