From patchwork Sun Dec 15 17:10:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Philippe Waroquiers X-Patchwork-Id: 36887 Received: (qmail 126058 invoked by alias); 15 Dec 2019 17:11:09 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 126050 invoked by uid 89); 15 Dec 2019 17:11:08 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-22.1 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.1 spammy=HIronPort-PHdr:9a23, H*Ad:D*be, mainc, styled_string X-HELO: mailsec119.isp.belgacom.be Received: from mailsec119.isp.belgacom.be (HELO mailsec119.isp.belgacom.be) (195.238.20.115) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 15 Dec 2019 17:11:05 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=skynet.be; i=@skynet.be; q=dns/txt; s=securemail; t=1576429865; x=1607965865; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=POdlw2hJwtb+eHwb3ywkv1HMSe5IwgSgQ7RAXTaTySQ=; b=NOFhkp8fn2ggq1EUecod9ioF7Ix4fnlNMDiRBR3I1C00cifF2hhTdLZ4 TPD5yQTzvyS4ukD2wwKBMnji+C2mPQ==; IronPort-SDR: e+xV38SArV6gTDeOfCSGJuzOjP/pbTiQ5EdNakpmyvgFHgLkzs2Zq9M4RLJxBiqs7vsOoE4The dvO7Y1LfivVQTvuylb2hIuwFAo9wj80b3dbyLwNMUh/mlhjbuA7SPmm9GDULN7oE54vCraHD7u Rs+Z2nVVRszcbq733AZhtCThL0YSLgCDLBpaNz5Nf/MEZzCY3L+V3alpdAt02Y5P/n16e5YXEV i/4YvnZqOiLJ0Zhg0brL1TGzSIkwgiC/vmPfavnhKQ4KkyAVsVaS34hKZUi28a4usyE1qGeYDV SPg= Received: from 156.47-242-81.adsl-dyn.isp.belgacom.be (HELO md.home) ([81.242.47.156]) by relay.skynet.be with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 15 Dec 2019 18:11:02 +0100 From: Philippe Waroquiers To: gdb-patches@sourceware.org Cc: Philippe Waroquiers Subject: [RFA] Ensure GDB warnings are styled. Date: Sun, 15 Dec 2019 18:10:56 +0100 Message-Id: <20191215171056.4842-1-philippe.waroquiers@skynet.be> MIME-Version: 1.0 X-IsSubscribed: yes 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 2019-12-15 Philippe Waroquiers * 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. 2019-12-15 Philippe Waroquiers * gdb.base/style.exp: Test that warnings are styled. --- gdb/main.c | 3 ++- gdb/testsuite/gdb.base/style.exp | 6 ++++++ gdb/top.c | 16 ++++++++++------ gdb/ui-file.c | 4 ++-- 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/gdb/main.c b/gdb/main.c index 1acf53ee92..f1ca8ce829 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/gdb.base/style.exp b/gdb/testsuite/gdb.base/style.exp index c450f16b60..bb7f1005e8 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 bc300e4754..55efe8fbd6 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 @@ -2067,8 +2070,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 71b74bba19..728ee94d97 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 ()); }