mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-21 12:24:58 +00:00
Restore portability to git_path_prettify.
It turns out that passing NULL for the second parameter of realpath(3) is not as portable as one might like. Notably, Mac OS 10.5 and earlier does not support it. So this moves us back to a large buffer to get the realpath info.
This commit is contained in:
parent
1d17507496
commit
7e443f6960
16
src/path.c
16
src/path.c
@ -181,8 +181,8 @@ int git_path_root(const char *path)
|
|||||||
|
|
||||||
int git_path_prettify(git_buf *path_out, const char *path, const char *base)
|
int git_path_prettify(git_buf *path_out, const char *path, const char *base)
|
||||||
{
|
{
|
||||||
char *result = NULL;
|
int error = GIT_SUCCESS;
|
||||||
int error = GIT_SUCCESS;
|
char buf[GIT_PATH_MAX];
|
||||||
|
|
||||||
git_buf_clear(path_out);
|
git_buf_clear(path_out);
|
||||||
|
|
||||||
@ -193,16 +193,10 @@ int git_path_prettify(git_buf *path_out, const char *path, const char *base)
|
|||||||
path = path_out->ptr;
|
path = path_out->ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* allow realpath to allocate the buffer */
|
if (path == NULL || p_realpath(path, buf) == NULL)
|
||||||
if (path != NULL)
|
|
||||||
result = p_realpath(path, NULL);
|
|
||||||
|
|
||||||
if (result) {
|
|
||||||
error = git_buf_sets(path_out, result);
|
|
||||||
git__free(result);
|
|
||||||
} else {
|
|
||||||
error = GIT_EOSERR;
|
error = GIT_EOSERR;
|
||||||
}
|
else
|
||||||
|
error = git_buf_sets(path_out, buf);
|
||||||
|
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user