aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/drivers/common/erl_efile.h
diff options
context:
space:
mode:
authorPatrik Nyblom <[email protected]>2010-11-04 17:55:55 +0100
committerPatrik Nyblom <[email protected]>2010-11-30 16:30:50 +0100
commitb9101fe19b7f8d659d266152b36cc436b90c77a3 (patch)
tree8f5fe5695c36a8ce39c10eceea839d1f2710dd40 /erts/emulator/drivers/common/erl_efile.h
parentbe63e483361c9a764f6a68df80e50fd7bd825e6b (diff)
downloadotp-b9101fe19b7f8d659d266152b36cc436b90c77a3.tar.gz
otp-b9101fe19b7f8d659d266152b36cc436b90c77a3.tar.bz2
otp-b9101fe19b7f8d659d266152b36cc436b90c77a3.zip
Make Unicode filenames work on Windows
Diffstat (limited to 'erts/emulator/drivers/common/erl_efile.h')
-rw-r--r--erts/emulator/drivers/common/erl_efile.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/erts/emulator/drivers/common/erl_efile.h b/erts/emulator/drivers/common/erl_efile.h
index ac95c1f949..3097ded3f1 100644
--- a/erts/emulator/drivers/common/erl_efile.h
+++ b/erts/emulator/drivers/common/erl_efile.h
@@ -59,6 +59,14 @@
#define FA_WRITE 1
#define FA_READ 2
+/* Some OS'es (i.e. Windows) has filenames in wide charaqcters. That requires special handling */
+/* Note that we do *not* honor alignment in the communication to the OS specific driver, */
+/* which is not a problem on x86, but might be on other platforms. The OS specific efile */
+/* implementation is expected to align if needed */
+#ifdef __WIN32__
+#define FILENAMES_16BIT 1
+#endif
+
/*
* An handle to an open directory. To be cast to the correct type
* in the system-dependent directory functions.
@@ -123,7 +131,7 @@ int efile_getdcwd(Efile_error* errInfo, int drive,
char* buffer, size_t size);
int efile_readdir(Efile_error* errInfo, char* name,
EFILE_DIR_HANDLE* dir_handle,
- char* buffer, size_t size);
+ char* buffer, size_t *size);
int efile_openfile(Efile_error* errInfo, char* name, int flags,
int* pfd, Sint64* pSize);
void efile_closefile(int fd);