busybox/libbb/concat_path_file.c

29 lines
632 B
C

/* vi: set sw=4 ts=4: */
/*
* Utility routines.
*
* Copyright (C) many different people.
* If you wrote this, please acknowledge your work.
*
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
*/
/* concatenate path and file name to new allocation buffer,
* not addition '/' if path name already have '/'
*/
#include <string.h>
#include "libbb.h"
char *concat_path_file(const char *path, const char *filename)
{
char *lc;
if (!path)
path = "";
lc = last_char_is(path, '/');
while (*filename == '/')
filename++;
return bb_xasprintf("%s%s%s", path, (lc==NULL ? "/" : ""), filename);
}