From dcbfa25bc8903fbffb563c6e0f5c89d94ea27ed3 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 13 Mar 2013 19:48:07 +0000 Subject: 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. --- intern/utfconv/utf_winfunc.c | 14 ++++++++++++++ intern/utfconv/utf_winfunc.h | 1 + 2 files changed, 15 insertions(+) (limited to 'intern') 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); -- cgit v1.2.3