X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/347996b4a10c4e8579080692afa60e0afb88b60a..3f8dfa54581750e47851e7502d180425c6a65d48:/src/xbt/xbt_os_file.c diff --git a/src/xbt/xbt_os_file.c b/src/xbt/xbt_os_file.c index 2dda1b24bb..46dd79a42e 100644 --- a/src/xbt/xbt_os_file.c +++ b/src/xbt/xbt_os_file.c @@ -9,30 +9,30 @@ #include "xbt/sysdep.h" #include "xbt/file.h" /* this module */ #include "xbt/log.h" -#include "src/portable.h" +#include "src/internal_config.h" -#ifndef _MSC_VER -#include "libgen.h" /* POSIX dirname */ +#ifdef _WIN32 +#include #endif +#include "libgen.h" /* POSIX dirname */ + /** @brief Get a single line from the stream (reimplementation of the GNU getline) * * This is a reimplementation of the GNU getline function, so that our code don't depends on the GNU libc. * - * xbt_getline() reads an entire line from stream, storing the address of the - * buffer containing the text into *buf. The buffer is null-terminated and - * includes the newline character, if one was found. + * xbt_getline() reads an entire line from stream, storing the address of the buffer containing the text into *buf. + * The buffer is null-terminated and includes the newline character, if one was found. * - * If *buf is NULL, then xbt_getline() will allocate a buffer for storing the - * line, which should be freed by the user program. + * If *buf is NULL, then xbt_getline() will allocate a buffer for storing the line, which should be freed by the user + * program. * - * Alternatively, before calling xbt_getline(), *buf can contain a pointer to a - * malloc()-allocated buffer *n bytes in size. If the buffer is not large - * enough to hold the line, xbt_getline() resizes it with realloc(), updating + * Alternatively, before calling xbt_getline(), *buf can contain a pointer to a malloc()-allocated buffer *n bytes in + * size. If the buffer is not large enough to hold the line, xbt_getline() resizes it with realloc(), updating * *buf and *n as necessary. * - * In either case, on a successful call, *buf and *n will be updated to reflect - * the buffer address and allocated size respectively. + * In either case, on a successful call, *buf and *n will be updated to reflect the buffer address and allocated size + * respectively. */ ssize_t xbt_getline(char **buf, size_t *n, FILE *stream) { @@ -67,34 +67,19 @@ ssize_t xbt_getline(char **buf, size_t *n, FILE *stream) * The argument is never modified, and the returned value must be freed after use. */ 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); -#else - char *tmp = xbt_strdup(path); - char *res = xbt_strdup(dirname(tmp)); - free(tmp); - return res; -#endif + char *tmp = xbt_strdup(path); + char *res = xbt_strdup(dirname(tmp)); + free(tmp); + return res; } + /** @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 - char *tmp = xbt_strdup(path); - char *res = xbt_strdup(basename(tmp)); - free(tmp); - return res; -#endif + char *tmp = xbt_strdup(path); + char *res = xbt_strdup(basename(tmp)); + free(tmp); + return res; }