commit 3edc68e2756e8be313582b326c36da6c7f989623
parent e706b75756accff499dd65192b3efcb7dd963ba7
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Wed, 27 May 2015 14:39:19 +0200
Fix the MSVC implementation of the dirname function
Diffstat:
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/s3daw.c b/src/s3daw.c
@@ -132,6 +132,7 @@ get_position(const unsigned ivert, float pos[3], void* ctx)
}
#ifdef COMPILER_CL
+/* On MSVC mime the dirname POSIX function */
static INLINE char*
dirname(char* filename)
{
@@ -151,9 +152,11 @@ dirname(char* filename)
filename[0] = '.';
filename[1] = '\0';
} else {
+ if(dir_len && dir[dir_len - 1] == '/')
+ dir[--dir_len] = '\0';
ASSERT(strlen(filename) >= drive_len + dir_len);
strncpy(filename, drive, drive_len);
- strncpy(filename + drive_len, dir, dir_len);
+ strncpy(filename + drive_len, dir, dir_len + 1/*'\0'*/);
}
return filename;
}