Skip to content

Commit 8b29b0a

Browse files
beutlichHansOlsson
andcommitted
refs #4473 Remove legacy behaviour
Co-authored-by: Hans Olsson <HansOlsson@users.noreply.github.com>
1 parent be949b2 commit 8b29b0a

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

Modelica/Resources/C-Sources/ModelicaInternal.c

+11-4
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@
3030
*/
3131

3232
/* Changelog:
33+
Oct. 20, 2024: by Thomas Beutlich
34+
Removed legacy behaviour in ModelicaInternal_stat for
35+
MSVC Visual Studio >= 2015 (ticket #4473)
36+
3337
Jan. 15, 2024: by Thomas Beutlich
3438
Utilized ModelicaDuplicateString and
3539
ModelicaDuplicateStringWithErrorReturn (ticket #3686)
@@ -402,10 +406,7 @@ static ModelicaFileType Internal_stat(_In_z_ const char* name) {
402406
struct _stat fileInfo;
403407
int statReturn = _stat(name, &fileInfo);
404408
if (0 != statReturn) {
405-
/* For some reason _stat requires "a:\" and "a:\test1" but fails
406-
* on "a:" and "a:\test1\", respectively. It could be handled in the
407-
* Modelica code, but seems better to have it here.
408-
*/
409+
/* _stat requires "a:\" instead of "a:" */
409410
const char* firstSlash = strpbrk(name, "/\\");
410411
const char* firstColon = strchr(name, ':');
411412
const char c = (NULL != firstColon) ? firstColon[1] : '\0';
@@ -419,6 +420,11 @@ static ModelicaFileType Internal_stat(_In_z_ const char* name) {
419420
free(nameTmp);
420421
}
421422
}
423+
#if defined(_MSC_VER) && _MSC_VER >= 1900
424+
/* _stat accepts both "a:\dir" and "a:\dir\" */
425+
#else
426+
/* _stat requires "a:\dir" instead of "a:\dir\" */
427+
/* required for VS 2013 and earlier */
422428
else if (NULL != firstSlash && len > 1 &&
423429
('/' == name[len - 1] || '\\' == name[len - 1])) {
424430
char* nameTmp = (char*)malloc(len*(sizeof(char)));
@@ -429,6 +435,7 @@ static ModelicaFileType Internal_stat(_In_z_ const char* name) {
429435
free(nameTmp);
430436
}
431437
}
438+
#endif
432439
}
433440
if ( statReturn != 0 ) {
434441
type = FileType_NoFile;

0 commit comments

Comments
 (0)