| /* 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 source tree. |
| */ |
| |
| /* Concatenate path and filename to new allocated buffer. |
| * Add '/' only as needed (no duplicate // are produced). |
| * If path is NULL, it is assumed to be "/". |
| * filename should not be NULL. |
| */ |
| |
| #include "libbb.h" |
| |
| char* FAST_FUNC concat_path_file(const char *path, const char *filename) |
| { |
| char *lc; |
| |
| if (!path) |
| path = ""; |
| lc = last_char_is(path, '/'); |
| while (*filename == '/') |
| filename++; |
| return xasprintf("%s%s%s", path, (lc==NULL ? "/" : ""), filename); |
| } |