X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e979167d7be7b882714cf7052a8ae62e491f007a..1eb2acd21f33865e5a3b27b5ec3e91a6ccc17ff1:/src/xbt/xbt_os_file.c?ds=sidebyside diff --git a/src/xbt/xbt_os_file.c b/src/xbt/xbt_os_file.c index a14df25450..2dda1b24bb 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 */ @@ -68,13 +68,16 @@ ssize_t xbt_getline(char **buf, size_t *n, FILE *stream) */ char *xbt_dirname(const char *path) { #if _MSC_VER - char drive[_MAX_DRIVE]; - char dir[_MAX_DIR]; - errno_t err; - err = _splitpath_s(path, drive, _MAX_DRIVE, dir, _MAX_DIR, NULL,0, NULL,0); - return bprintf("%s%s",drive,dir); + char drive[_MAX_DRIVE]; + char dir[_MAX_DIR]; + errno_t err; + err = _splitpath_s(path, drive, _MAX_DRIVE, dir, _MAX_DIR, NULL,0, NULL,0); + return bprintf("%s%s",drive,dir); #else - return dirname(xbt_strdup(path)); + char *tmp = xbt_strdup(path); + char *res = xbt_strdup(dirname(tmp)); + free(tmp); + return res; #endif } /** @brief Returns the file component of a path (reimplementation of POSIX basename) @@ -83,12 +86,15 @@ char *xbt_dirname(const char *path) { */ 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",drive,dir); + 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)); + char *tmp = xbt_strdup(path); + char *res = xbt_strdup(basename(tmp)); + free(tmp); + return res; #endif }