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)18char* 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