summaryrefslogtreecommitdiff
path: root/release/src/router/busybox/libbb/concat_path_file.c
diff options
context:
space:
mode:
Diffstat (limited to 'release/src/router/busybox/libbb/concat_path_file.c')
-rw-r--r--release/src/router/busybox/libbb/concat_path_file.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/release/src/router/busybox/libbb/concat_path_file.c b/release/src/router/busybox/libbb/concat_path_file.c
new file mode 100644
index 00000000..86dd2fbb
--- /dev/null
+++ b/release/src/router/busybox/libbb/concat_path_file.c
@@ -0,0 +1,26 @@
+/*
+ * busybox library eXtendet funcion
+ *
+ * concatenate path and file name to new allocation buffer,
+ * not addition '/' if path name already have '/'
+ *
+*/
+
+#include <string.h>
+#include "libbb.h"
+
+extern char *concat_path_file(const char *path, const char *filename)
+{
+ char *outbuf;
+ char *lc;
+
+ if (!path)
+ path="";
+ lc = last_char_is(path, '/');
+ while (*filename == '/')
+ filename++;
+ outbuf = xmalloc(strlen(path)+strlen(filename)+1+(lc==NULL));
+ sprintf(outbuf, "%s%s%s", path, (lc==NULL)? "/" : "", filename);
+
+ return outbuf;
+}