strbuf_realpath(): use platform-dependent API if available

Some platforms (e.g. Windows) provide API functions to resolve paths
much quicker. Let's offer a way to short-cut `strbuf_realpath()` on
those platforms.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This commit is contained in:
Johannes Schindelin 2020-01-31 11:44:31 +01:00
Родитель 51cd1d1aaf
Коммит b600a9adb2
2 изменённых файлов: 7 добавлений и 0 удалений

Просмотреть файл

@ -91,6 +91,9 @@ static char *strbuf_realpath_1(struct strbuf *resolved, const char *path,
goto error_out;
}
if (platform_strbuf_realpath(resolved, path))
return resolved->buf;
strbuf_addstr(&remaining, path);
get_root_part(resolved, &remaining);

Просмотреть файл

@ -468,6 +468,10 @@ static inline int git_has_dir_sep(const char *path)
#define query_user_email() NULL
#endif
#ifndef platform_strbuf_realpath
#define platform_strbuf_realpath(resolved, path) NULL
#endif
#ifdef __TANDEM
#include <floss.h(floss_execl,floss_execlp,floss_execv,floss_execvp)>
#include <floss.h(floss_getpwuid)>