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.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/libbb/concat_path_file.c b/libbb/concat_path_file.c
new file mode 100644
index 000000000..d53dc0e2e
--- /dev/null
+++ b/libbb/concat_path_file.c
@@ -0,0 +1,24 @@
+/*
+ * busybox library eXtendet funcion
+ *
+ * concatenate path and file name to new allocation buffer,
+ * not addition '/' if path name already have '/'
+ *
+*/
+
+#include "libbb.h"
+
+extern char *concat_path_file(const char *path, const char *filename)
+{
+ char *outbuf;
+ int l;
+ int flg_slash = 1;
+
+ l = strlen(path);
+ if(l>0 && path[l-1] == '/')
+ flg_slash--;
+ l += strlen(filename);
+ outbuf = xmalloc(l+1+flg_slash);
+ sprintf(outbuf, (flg_slash ? "%s/%s" : "%s%s"), path, filename);
+ return outbuf;
+}