X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/3d845df082d79ab89649c1a8829eea201ae01085..89c40777ba853d7136daede2da81a0a01f603e6a:/src/xbt/xbt_os_file.c diff --git a/src/xbt/xbt_os_file.c b/src/xbt/xbt_os_file.c index 232ad066ea..2083693d9c 100644 --- a/src/xbt/xbt_os_file.c +++ b/src/xbt/xbt_os_file.c @@ -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 +}