From 5e244e724f7990436d5ec099abab780d9317b6d1 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Tue, 7 Jan 2025 04:06:35 +0900 Subject: [PATCH] pretty-print: make cat_file() also highlight the trailing backslash for line continuation --- src/shared/pretty-print.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/shared/pretty-print.c b/src/shared/pretty-print.c index e7360352b3..4eb4858931 100644 --- a/src/shared/pretty-print.c +++ b/src/shared/pretty-print.c @@ -250,13 +250,23 @@ static int cat_file(const char *filename, bool newline, CatFlags flags) { /* Check if the line ends with a backslash. */ bool escaped = false; - for (const char *e = line; *e != '\0'; e++) { + char *e; + for (e = line; *e != '\0'; e++) { if (escaped) escaped = false; else if (*e == '\\') escaped = true; } + /* Highlight the trailing backslash. */ + if (escaped) { + assert(e > line); + *(e-1) = '\0'; + + if (!strextend(&line, ansi_highlight_red(), "\\", ansi_normal())) + return log_oom(); + } + /* Highlight the left side (directive) of a Foo=bar assignment */ if (FLAGS_SET(flags, CAT_FORMAT_HAS_SECTIONS) && !continued) { const char *p = strchr(line, '=');