Avoid leading punctuation in pp_printf formats and use a plain string
when no formatting is needed.
gcc/ChangeLog:
* text-art/style.cc (style::color::print_sgr): Include the color
selector in the pp_printf format.
* text-art/table.cc (selftest::test_spans_3): Disable -Wformat-diag.
Signed-off-by: Oleg Tolmatcev <[email protected]>
---
gcc/text-art/style.cc | 13 +++----------
gcc/text-art/table.cc | 8 ++++++++
2 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/gcc/text-art/style.cc b/gcc/text-art/style.cc
index d3d898ccb6..fd5225c2f0 100644
--- a/gcc/text-art/style.cc
+++ b/gcc/text-art/style.cc
@@ -142,21 +142,14 @@ style::color::print_sgr (pretty_printer *pp,
case kind::BITS_8:
{
ensure_separator (pp, need_separator);
- if (fg)
- pp_string (pp, "38");
- else
- pp_string (pp, "48");
- pp_printf (pp, ";5;%i", (int)u.m_8bit);
+ pp_printf (pp, "%s;5;%i", fg ? "38" : "48", (int)u.m_8bit);
}
break;
case kind::BITS_24:
{
ensure_separator (pp, need_separator);
- if (fg)
- pp_string (pp, "38");
- else
- pp_string (pp, "48");
- pp_printf (pp, ";2;%i;%i;%i",
+ pp_printf (pp, "%s;2;%i;%i;%i",
+ fg ? "38" : "48",
(int)u.m_24bit.r,
(int)u.m_24bit.g,
(int)u.m_24bit.b);
diff --git a/gcc/text-art/table.cc b/gcc/text-art/table.cc
index 54e28d81e0..c3f6420b8c 100644
--- a/gcc/text-art/table.cc
+++ b/gcc/text-art/table.cc
@@ -972,12 +972,20 @@ test_spans_3 ()
table.set_cell (c, styled_string ((cppchar_t)str[i]));
}
+#if __GNUC__ >= 10
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-Wformat-diag"
+#endif
table.set_cell_span (table::rect_t (table::coord_t (0, 2),
table::size_t (buf_size, 1)),
styled_string::from_fmt (sm,
nullptr,
"'buf' (char[%i])",
(int)buf_size));
+
+#if __GNUC__ >= 10
+# pragma GCC diagnostic pop
+#endif
table.set_cell_span (table::rect_t (table::coord_t (buf_size + 1, 2),
table::size_t (str_size - buf_size, 1)),
styled_string (sm, "overflow"));
--
2.56.0.windows.4