aboutsummaryrefslogtreecommitdiff
path: root/libbb/concat_path_file.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbb/concat_path_file.c')
-rw-r--r--libbb/concat_path_file.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/libbb/concat_path_file.c b/libbb/concat_path_file.c
new file mode 100644
index 000000000..9aae601a4
--- /dev/null
+++ b/libbb/concat_path_file.c
@@ -0,0 +1,27 @@
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 tarball for details.
9 */
10
11/* concatenate path and file name to new allocation buffer,
12 * not adding '/' if path name already has '/'
13*/
14
15#include "libbb.h"
16
17char *concat_path_file(const char *path, const char *filename)
18{
19 char *lc;
20
21 if (!path)
22 path = "";
23 lc = last_char_is(path, '/');
24 while (*filename == '/')
25 filename++;
26 return xasprintf("%s%s%s", path, (lc==NULL ? "/" : ""), filename);
27}