Re: [PATCH v3 15/27] compat/win32: fix const-correctness with string constants
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jun 3, 2024, 19:04 UTC
- Message-ID
- <xmqq4ja93l16.fsf@gitster.g>
- In-Reply-To
- <CAPig+cTC83ZE2kGy=epeRFJ7a3jjRQXsvUYzB6jdOYfmy0yVOg@mail.gmail.com>
Eric Sunshine <sunshine@sunshineco.com> writes:
Show 23 quoted lines
> On Mon, Jun 3, 2024 at 5:46 AM Patrick Steinhardt <ps@pks.im> wrote: >> Adjust various places in our Win32 compatibility layer where we are not >> assigning string constants to `const char *` variables. >> >> Signed-off-by: Patrick Steinhardt <ps@pks.im> >> --- >> diff --git a/compat/basename.c b/compat/basename.c >> @@ -1,6 +1,8 @@ >> +static char current_directory[] = "."; >> @@ -10,7 +12,13 @@ char *gitbasename (char *path) >> if (!path || !*path) >> - return "."; >> + /* >> + * basename(3P) is mis-specified because it returns a >> + * non-constant pointer even though it is specified to return a >> + * pointer to internal memory at times. The cast is a result of >> + * that. >> + */ >> + return (char *) ""; > > The change from returning "." to returning "" is unexplained by the > commit message. Did you mean to return the newly-introduced > `current_directory` instead?
I suspect that these places wanted to return (char *) "." instead, without introducing a new variable.