Skip to content

Commit

Permalink
turn path macros into inline function
Browse files Browse the repository at this point in the history
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@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
René Scharfe authored and Junio C Hamano committed Aug 18, 2014
1 parent c2369bd commit bf72834
Showing 1 changed file with 22 additions and 6 deletions.
28 changes: 22 additions & 6 deletions git-compat-util.h
Original file line number Diff line number Diff line change
Expand Up @@ -267,19 +267,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)
Expand Down

0 comments on commit bf72834

Please sign in to comment.