[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2] master 0b429b6: [builds/windows] Try both wide and narrow `C
From: |
Werner Lemberg |
Subject: |
[freetype2] master 0b429b6: [builds/windows] Try both wide and narrow `CreateFile` |
Date: |
Fri, 17 Sep 2021 08:34:08 -0400 (EDT) |
branch: master
commit 0b429b609c4a5fec8568dc9716e920533e13ab74
Author: Alexei Podtelezhnikov <apodtele@gmail.com>
Commit: Alexei Podtelezhnikov <apodtele@gmail.com>
[builds/windows] Try both wide and narrow `CreateFile`
Windows handles wchar_t* UTF-16 and char* ANSI (presently UTF-8)
filenames using alternative -A and -W API. We'll try them both
when opening a file. This means that you should not worry about
about conversions.
Fixes #1098 and !76.
* builds/windows/ftsystem.c (FT_Stream_Open): Call alternative
`CreateFile` in the case of failure.
---
builds/windows/ftsystem.c | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/builds/windows/ftsystem.c b/builds/windows/ftsystem.c
index 9a6f0c4..69ef494 100644
--- a/builds/windows/ftsystem.c
+++ b/builds/windows/ftsystem.c
@@ -215,9 +215,21 @@
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 );
if ( file == INVALID_HANDLE_VALUE )
{
- FT_ERROR(( "FT_Stream_Open:" ));
- FT_ERROR(( " could not open `%s'\n", filepathname ));
- return FT_THROW( Cannot_Open_Resource );
+ /* fall back on the alernative interface */
+#ifdef UNICODE
+ file = CreateFileA( (LPCSTR)filepathname, GENERIC_READ, FILE_SHARE_READ,
+ NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 );
+#else
+ file = CreateFileW( (LPCWSTR)filepathname, GENERIC_READ, FILE_SHARE_READ,
+ NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 );
+#endif
+
+ if ( file == INVALID_HANDLE_VALUE )
+ {
+ FT_ERROR(( "FT_Stream_Open:" ));
+ FT_ERROR(( " could not open `%s'\n", filepathname ));
+ return FT_THROW( Cannot_Open_Resource );
+ }
}
#if defined _WIN32_WCE || defined _WIN32_WINDOWS || \
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2] master 0b429b6: [builds/windows] Try both wide and narrow `CreateFile`,
Werner Lemberg <=