mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-08 01:20:53 +00:00
Add new utility method git__joinpath
Signed-off-by: Vicent Marti <tanoku@gmail.com>
This commit is contained in:
parent
f725931b48
commit
412b388776
24
src/util.c
24
src/util.c
@ -202,6 +202,30 @@ const char *git__topdir(const char *path)
|
||||
return &path[i + 1];
|
||||
}
|
||||
|
||||
char *git__joinpath(const char *path_a, const char *path_b)
|
||||
{
|
||||
int len_a, len_b;
|
||||
char *path_new;
|
||||
|
||||
len_a = strlen(path_a);
|
||||
len_b = strlen(path_b);
|
||||
|
||||
path_new = git__malloc(len_a + len_b + 2);
|
||||
if (path_new == NULL)
|
||||
return NULL;
|
||||
|
||||
strcpy(path_new, path_a);
|
||||
|
||||
if (path_new[len_a - 1] != '/')
|
||||
path_new[len_a++] = '/';
|
||||
|
||||
if (path_b[0] == '/')
|
||||
path_b++;
|
||||
|
||||
strcpy(path_new + len_a, path_b);
|
||||
return path_new;
|
||||
}
|
||||
|
||||
static char *strtok_raw(char *output, char *src, char *delimit, int keep)
|
||||
{
|
||||
while (*src && strchr(delimit, *src) == NULL)
|
||||
|
@ -58,6 +58,14 @@ extern int git__basename_r(char *buffer, size_t bufflen, const char *path);
|
||||
|
||||
extern const char *git__topdir(const char *path);
|
||||
|
||||
/**
|
||||
* Join two paths together. Takes care of properly fixing the
|
||||
* middle slashes and everything
|
||||
*
|
||||
* Returns a newly allocated string; must be free'd manually.
|
||||
*/
|
||||
extern char *git__joinpath(const char *path_a, const char *path_b);
|
||||
|
||||
extern void git__hexdump(const char *buffer, size_t n);
|
||||
extern uint32_t git__hash(const void *key, int len, uint32_t seed);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user