diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-03-13 23:48:07 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-03-13 23:48:07 +0400 |
commit | dcbfa25bc8903fbffb563c6e0f5c89d94ea27ed3 (patch) | |
tree | dd5944eb1da4ac16d7a1c54de9c7ee39054e4f8b /intern/utfconv | |
parent | 962865d19f4bd8639ac6c2064a3c82e5674e7802 (diff) |
Fix #34551: blender crash rendering with save buffers.
Problem was the new usage of access() on Windows, this doesn't accept X_OK. Also wrapped _waccess so that UTF-8 paths work.
Diffstat (limited to 'intern/utfconv')
-rw-r--r-- | intern/utfconv/utf_winfunc.c | 14 | ||||
-rw-r--r-- | intern/utfconv/utf_winfunc.h | 1 |
2 files changed, 15 insertions, 0 deletions
diff --git a/intern/utfconv/utf_winfunc.c b/intern/utfconv/utf_winfunc.c index 74e57894ccf..3d7fb11309a 100644 --- a/intern/utfconv/utf_winfunc.c +++ b/intern/utfconv/utf_winfunc.c @@ -75,6 +75,20 @@ int uopen(const char *filename, int oflag, int pmode) return f; } +int uaccess(const char *filename, int mode) +{ + int r = -1; + UTF16_ENCODE(filename); + + if (filename_16) { + r = _waccess(filename_16, mode); + } + + UTF16_UN_ENCODE(filename); + + return r; +} + int urename(const char *oldname, const char *newname ) { int r = -1; diff --git a/intern/utfconv/utf_winfunc.h b/intern/utfconv/utf_winfunc.h index e92e7953cfc..45f6844af5a 100644 --- a/intern/utfconv/utf_winfunc.h +++ b/intern/utfconv/utf_winfunc.h @@ -32,6 +32,7 @@ FILE * ufopen(const char * filename, const char * mode); int uopen(const char *filename, int oflag, int pmode); +int uaccess(const char *filename, int mode); int urename(const char *oldname, const char *newname ); char * u_alloc_getenv(const char *varname); |