René Scharfe <l.s.r@xxxxxx> writes: >> Is there a chance to squueze this in: >> >> >> $ git diff >> diff --git a/setup.c b/setup.c >> index 526cdf6..fb61860 100644 >> --- a/setup.c >> +++ b/setup.c >> @@ -734,7 +734,7 @@ static const char *setup_git_directory_gently_1(int *nongit_ok) >> string_list_clear(&ceiling_dirs, 0); >> } >> >> - if (ceil_offset < 0 && has_dos_drive_prefix(cwd)) >> + if (ceil_offset < 0 && has_dos_drive_prefix(cwd.buf)) >> ceil_offset = 1; >> >> > > Ouch, thanks for catching this. Let me squash it in to the original change when rebuilding 'next' sometime this week, since we have tagged 2.1 now. > Perhaps the following patch should go in as well. Nice; it catches the above, and shows there isn't any similar gotcha at least for me (meaning: parts inside e.g. "#ifdef WINDOWS" that I do not compile are not covered by "at least for me" test I did). Thanks. > -- >8 -- > Subject: [PATCH] turn path macros into inline function > > Use static inline functions instead of macros for has_dos_drive_prefix, > offset_1st_component, is_dir_sep and find_last_dir_sep in order to let > the compiler do type checking. > > The definitions of offset_1st_component and is_dir_sep are switched > around because the former uses the latter. > > Signed-off-by: Rene Scharfe <l.s.r@xxxxxx> > --- > git-compat-util.h | 28 ++++++++++++++++++++++------ > 1 file changed, 22 insertions(+), 6 deletions(-) > > diff --git a/git-compat-util.h b/git-compat-util.h > index f587749..0b6c13a 100644 > --- a/git-compat-util.h > +++ b/git-compat-util.h > @@ -264,19 +264,35 @@ extern char *gitbasename(char *); > #endif > > #ifndef has_dos_drive_prefix > -#define has_dos_drive_prefix(path) 0 > +static inline int git_has_dos_drive_prefix(const char *path) > +{ > + return 0; > +} > +#define has_dos_drive_prefix git_has_dos_drive_prefix > #endif > > -#ifndef offset_1st_component > -#define offset_1st_component(path) (is_dir_sep((path)[0])) > +#ifndef is_dir_sep > +static inline int git_is_dir_sep(int c) > +{ > + return c == '/'; > +} > +#define is_dir_sep git_is_dir_sep > #endif > > -#ifndef is_dir_sep > -#define is_dir_sep(c) ((c) == '/') > +#ifndef offset_1st_component > +static inline int git_offset_1st_component(const char *path) > +{ > + return is_dir_sep(path[0]); > +} > +#define offset_1st_component git_offset_1st_component > #endif > > #ifndef find_last_dir_sep > -#define find_last_dir_sep(path) strrchr(path, '/') > +static inline char *git_find_last_dir_sep(const char *path) > +{ > + return strrchr(path, '/'); > +} > +#define find_last_dir_sep git_find_last_dir_sep > #endif > > #if defined(__HP_cc) && (__HP_cc >= 61000) -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html