threads / patch / 48946

patchmsvc: fix non-standard escape sequence in source

Subject: [PATCH v1] msvc: fix non-standard escape sequence in source

## tl;dr

5 messages between Jul 24, 2018 and Jul 25, 2018. Diffs are folded; open one to read it.

replies: 4people: 4as markdown or json

git@jeffhostetler.com· Jul 24, 2018, 14:42 UTC · lore
From: Jeff Hostetler <jeffhost@microsoft.com>
Replace non-standard "\e" escape sequence with "\x1B".

In commit 7a17918c34f4e83982456ffe22d880c3cda5384f a trace message with several "\e" escape sequences was added. This causes a compiler warning under MSVC.

According to [1], the "\e" sequence is an extension supported by GCC, clang, and tcc.

[1] https://en.wikipedia.org/wiki/Escape_sequences_in_C
Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
---
 convert.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Show changes to convert.c +1 −1
diff --git a/convert.c b/convert.c
index 56cfe31..52092be 100644
--- a/convert.c
+++ b/convert.c
@@ -335,7 +335,7 @@ static void trace_encoding(const char *context, const char *path,
 	strbuf_addf(&trace, "%s (%s, considered %s):\n", context, path, encoding);
 	for (i = 0; i < len && buf; ++i) {
 		strbuf_addf(
-			&trace,"| \e[2m%2i:\e[0m %2x \e[2m%c\e[0m%c",
+			&trace,"| \x1B[2m%2i:\x1B[0m %2x \x1B[2m%c\x1B[0m%c",
 			i,
 			(unsigned char) buf[i],
 			(buf[i] > 32 && buf[i] < 127 ? buf[i] : ' '),
-- 
2.9.3
Eric Sunshine· Jul 24, 2018, 17:33 UTC · re: git@jeffhostetler.com · lore

Re: [PATCH v1] msvc: fix non-standard escape sequence in source

On Tue, Jul 24, 2018 at 10:43 AM <git@jeffhostetler.com> wrote:
Show 5 quoted lines
> Replace non-standard "\e" escape sequence with "\x1B".
>
> In commit 7a17918c34f4e83982456ffe22d880c3cda5384f a trace message with
> several "\e" escape sequences was added.  This causes a compiler warning
> under MSVC.

Wrong commit. That code was actually introduced by 541d059cd9 (convert: add tracing for 'working-tree-encoding' attribute, 2018-04-15).

Show 7 quoted lines
> diff --git a/convert.c b/convert.c
> @@ -335,7 +335,7 @@ static void trace_encoding(const char *context, const char *path,
>         strbuf_addf(&trace, "%s (%s, considered %s):\n", context, path, encoding);
>         for (i = 0; i < len && buf; ++i) {
>                 strbuf_addf(
> -                       &trace,"| \e[2m%2i:\e[0m %2x \e[2m%c\e[0m%c",
> +                       &trace,"| \x1B[2m%2i:\x1B[0m %2x \x1B[2m%c\x1B[0m%c",
In this codebase, ESC is always spelled as octal \033 rather than hex \x1b.
Junio C Hamano· Jul 24, 2018, 18:03 UTC · re: git@jeffhostetler.com · lore

Re: [PATCH v1] msvc: fix non-standard escape sequence in source

git@jeffhostetler.com writes:
Show 10 quoted lines
> From: Jeff Hostetler <jeffhost@microsoft.com>
>
> Replace non-standard "\e" escape sequence with "\x1B".
>
> In commit 7a17918c34f4e83982456ffe22d880c3cda5384f a trace message with
> several "\e" escape sequences was added.  This causes a compiler warning
> under MSVC.
>
> According to [1], the "\e" sequence is an extension supported by GCC,
> clang, and tcc.

Good spotting. Please spell it \x1b (or \033 if you are a traditionalist), as it seems nobody in the existing code uses uppercase, according to

    $ git grep -e '\\x[A-F][0-9A-F]' -e '\\x[0-9A-F][A-F]' \*.c
and "\033"  is already used in many places
    $ git grep -e '\\0[0-7][0-7]' \*.c
Show 20 quoted lines
> [1] https://en.wikipedia.org/wiki/Escape_sequences_in_C
>
> Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
> ---
>  convert.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/convert.c b/convert.c
> index 56cfe31..52092be 100644
> --- a/convert.c
> +++ b/convert.c
> @@ -335,7 +335,7 @@ static void trace_encoding(const char *context, const char *path,
>  	strbuf_addf(&trace, "%s (%s, considered %s):\n", context, path, encoding);
>  	for (i = 0; i < len && buf; ++i) {
>  		strbuf_addf(
> -			&trace,"| \e[2m%2i:\e[0m %2x \e[2m%c\e[0m%c",
> +			&trace,"| \x1B[2m%2i:\x1B[0m %2x \x1B[2m%c\x1B[0m%c",
>  			i,
>  			(unsigned char) buf[i],
>  			(buf[i] > 32 && buf[i] < 127 ? buf[i] : ' '),
Beat Bolli· Jul 24, 2018, 18:13 UTC · re: git@jeffhostetler.com · lore

Re: [PATCH v1] msvc: fix non-standard escape sequence in source

Hi Jeff
On 24.07.18 16:42, git@jeffhostetler.com wrote:
> From: Jeff Hostetler <jeffhost@microsoft.com>
> 
> Replace non-standard "\e" escape sequence with "\x1B".
This was already fixed in <20180708144342.11922-4-dev+git@drbeat.li>.

Cheers, Beat

Show 29 quoted lines
> 
> In commit 7a17918c34f4e83982456ffe22d880c3cda5384f a trace message with
> several "\e" escape sequences was added.  This causes a compiler warning
> under MSVC.
> 
> According to [1], the "\e" sequence is an extension supported by GCC,
> clang, and tcc.
> 
> [1] https://en.wikipedia.org/wiki/Escape_sequences_in_C
> 
> Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
> ---
>  convert.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/convert.c b/convert.c
> index 56cfe31..52092be 100644
> --- a/convert.c
> +++ b/convert.c
> @@ -335,7 +335,7 @@ static void trace_encoding(const char *context, const char *path,
>  	strbuf_addf(&trace, "%s (%s, considered %s):\n", context, path, encoding);
>  	for (i = 0; i < len && buf; ++i) {
>  		strbuf_addf(
> -			&trace,"| \e[2m%2i:\e[0m %2x \e[2m%c\e[0m%c",
> +			&trace,"| \x1B[2m%2i:\x1B[0m %2x \x1B[2m%c\x1B[0m%c",
>  			i,
>  			(unsigned char) buf[i],
>  			(buf[i] > 32 && buf[i] < 127 ? buf[i] : ' '),
> 
Jeff Hostetler· Jul 25, 2018, 12:30 UTC · re: Beat Bolli · lore

Re: [PATCH v1] msvc: fix non-standard escape sequence in source

On 7/24/2018 2:13 PM, Beat Bolli wrote:
Show 12 quoted lines
> Hi Jeff
> 
> On 24.07.18 16:42, git@jeffhostetler.com wrote:
>> From: Jeff Hostetler <jeffhost@microsoft.com>
>>
>> Replace non-standard "\e" escape sequence with "\x1B".
> 
> This was already fixed in <20180708144342.11922-4-dev+git@drbeat.li>.
> 
> Cheers,
> Beat
> 

Thanks for the pointer. I see that commit is in 'next'. I was only looking in 'master'.

Thanks, Jeff

← back to recent threads