summaryrefslogtreecommitdiff
path: root/i/pc104/initrd/conf/busybox/libbb/concat_path_file.c
diff options
context:
space:
mode:
Diffstat (limited to 'i/pc104/initrd/conf/busybox/libbb/concat_path_file.c')
-rw-r--r--i/pc104/initrd/conf/busybox/libbb/concat_path_file.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/i/pc104/initrd/conf/busybox/libbb/concat_path_file.c b/i/pc104/initrd/conf/busybox/libbb/concat_path_file.c
new file mode 100644
index 0000000..9aae601
--- /dev/null
+++ b/i/pc104/initrd/conf/busybox/libbb/concat_path_file.c
@@ -0,0 +1,27 @@
+/* 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 tarball for details.
+ */
+
+/* concatenate path and file name to new allocation buffer,
+ * not adding '/' if path name already has '/'
+*/
+
+#include "libbb.h"
+
+char *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);
+}