@@ -107,6 +107,7 @@ LIB_OBJS= target.o parse.o tokenize.o pre-process.o symbol.o lib.o scope.o \
expression.o show-parse.o evaluate.o expand.o inline.o linearize.o \
char.o sort.o allocate.o compat-$(OS).o ptrlist.o \
builtin.o \
+ compat/basename.o \
flow.o cse.o simplify.o memops.o liveness.o storage.o unssa.o dissect.o
LIB_FILE= libsparse.a
@@ -24,5 +24,6 @@ struct stat;
void *blob_alloc(unsigned long size);
void blob_free(void *addr, unsigned long size);
long double string_to_ld(const char *nptr, char **endptr);
+const char *sparse_basename(const char *path);
#endif
new file mode 100644
@@ -0,0 +1,16 @@
+#include "compat.h"
+#include <string.h>
+
+const char *sparse_basename(const char *path)
+{
+ const char *last;
+
+ last = strrchr(path, '/');
+ path = last ? last + 1 : path;
+#if defined(_WIN32) || defined(_WIN64)
+ last = strrchr(path, '\\');
+ path = last ? last + 1 : path;
+#endif
+
+ return path;
+}
Add sparse_basename() as a simplified version of basename() working on Unix and non-unix environments. Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com> --- Makefile | 1 + compat.h | 1 + compat/basename.c | 16 ++++++++++++++++ 3 files changed, 18 insertions(+) create mode 100644 compat/basename.c