A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
there is no dirname() windows
[simgrid.git]
/
src
/
surf
/
surfxml_parse.c
diff --git
a/src/surf/surfxml_parse.c
b/src/surf/surfxml_parse.c
index
ad461b9
..
c82a307
100644
(file)
--- a/
src/surf/surfxml_parse.c
+++ b/
src/surf/surfxml_parse.c
@@
-7,7
+7,9
@@
#include <errno.h>
#include <math.h>
#include <stdarg.h> /* va_arg */
#include <errno.h>
#include <math.h>
#include <stdarg.h> /* va_arg */
+#ifndef _MSC_VER
#include <libgen.h>
#include <libgen.h>
+#endif
#include "xbt/misc.h"
#include "xbt/log.h"
#include "xbt/misc.h"
#include "xbt/log.h"
@@
-1028,8
+1030,18
@@
void surf_parse_open(const char *file)
if (!surf_parsed_filename_stack)
surf_parsed_filename_stack = xbt_dynar_new(sizeof(char *), &xbt_free_ref);
if (!surf_parsed_filename_stack)
surf_parsed_filename_stack = xbt_dynar_new(sizeof(char *), &xbt_free_ref);
+
+#ifdef _MSC_VER
+ /* There is no dirname on windows... */
+ char drive[_MAX_DRIVE];
+ char dir[_MAX_DIR];
+ errno_t err;
+ err = _splitpath_s(file, drive, _MAX_DRIVE, dir, _MAX_DIR, NULL,0, NULL,0);
+ char *dir = bprintf("%s%s",drive,dir);
+#else
surf_parsed_filename = xbt_strdup(file);
char *dir = dirname(surf_parsed_filename);
surf_parsed_filename = xbt_strdup(file);
char *dir = dirname(surf_parsed_filename);
+#endif
xbt_dynar_push(surf_path, &dir);
surf_file_to_parse = surf_fopen(file, "r");
xbt_dynar_push(surf_path, &dir);
surf_file_to_parse = surf_fopen(file, "r");