On Mon, Jun 3, 2024 at 5:46 AM Patrick Steinhardt <ps@xxxxxx> 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@xxxxxx> > --- > 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? > @@ -34,7 +42,13 @@ char *gitdirname(char *path) > if (!p) > - return "."; > + /* > + * dirname(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 *) ""; Ditto.