summaryrefslogtreecommitdiff
path: root/libbb/concat_path_file.c (plain)
blob: 9ed295996db365b7ab561439daf1b61745547676
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
11/* Concatenate path and filename to new allocated buffer.
12 * Add '/' only as needed (no duplicate // are produced).
13 * If path is NULL, it is assumed to be "/".
14 * filename should not be NULL.
15 */
16
17#include "libbb.h"
18
19char* FAST_FUNC concat_path_file(const char *path, const char *filename)
20{
21 char *lc;
22
23 if (!path)
24 path = "";
25 lc = last_char_is(path, '/');
26 while (*filename == '/')
27 filename++;
28 return xasprintf("%s%s%s", path, (lc==NULL ? "/" : ""), filename);
29}
30