1 /* vi: set sw=4 ts=4: */
2 /*
3  * Utility routines.
4  *
5  * Copyright (C) many different people.
6  * If you wrote this, please acknowledge your work.
7  *
8  * Licensed under GPLv2 or later, see file LICENSE in this source tree.
9  */
10 #include "libbb.h"
11 
12 /* Concatenate path and filename to new allocated buffer.
13  * Add '/' only as needed (no duplicate // are produced).
14  * If path is NULL, it is assumed to be "/".
15  * filename should not be NULL.
16  */
17 
concat_path_file(const char * path,const char * filename)18 char* FAST_FUNC concat_path_file(const char *path, const char *filename)
19 {
20 	char *lc;
21 
22 	if (!path)
23 		path = "";
24 	lc = last_char_is(path, '/');
25 	while (*filename == '/')
26 		filename++;
27 	return xasprintf("%s%s%s", path, (lc==NULL ? "/" : ""), filename);
28 }
29