Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[surf] Remove sg_cabinet_cb
[simgrid.git] / src / xbt / xbt_os_file.c
index 232ad06..2083693 100644 (file)
@@ -9,7 +9,7 @@
 #include "xbt/sysdep.h"
 #include "xbt/file.h"    /* this module */
 #include "xbt/log.h"
-#include "portable.h"
+#include "src/portable.h"
 
 #ifndef _MSC_VER
 #include "libgen.h" /* POSIX dirname */
@@ -77,3 +77,18 @@ char *xbt_dirname(const char *path) {
          return dirname(xbt_strdup(path));
 #endif
 }
+/** @brief Returns the file component of a path (reimplementation of POSIX basename)
+ *
+ * The argument is never modified, and the returned value must be freed after use.
+ */
+char *xbt_basename(const char *path) {
+#if _MSC_VER
+         char file[1024];
+         char ext[1024];
+         errno_t err;
+         err = _splitpath_s(path, NULL,0, NULL,0, file,1024, ext,1024);
+         return bprintf("%s.%s",file,ext);
+#else
+         return basename(xbt_strdup(path));
+#endif
+}