diff options
-rw-r--r-- | external/hunspell/hunspell-fdo48017-wfopen.patch | 6 | ||||
-rw-r--r-- | external/hyphen/hyphen-fdo48017-wfopen.patch | 10 | ||||
-rw-r--r-- | external/mythes/mythes-fdo48017-wfopen.patch | 9 |
3 files changed, 17 insertions, 8 deletions
diff --git a/external/hunspell/hunspell-fdo48017-wfopen.patch b/external/hunspell/hunspell-fdo48017-wfopen.patch index e3581062752e..37203be5c3f9 100644 --- a/external/hunspell/hunspell-fdo48017-wfopen.patch +++ b/external/hunspell/hunspell-fdo48017-wfopen.patch @@ -13,7 +13,7 @@ diff -ru hunspell/src/hunspell/csutil.cxx build/hunspell/src/hunspell/csutil.cxx #ifdef OPENOFFICEORG # include <unicode/uchar.h> #else -@@ -46,6 +50,26 @@ +@@ -51,6 +51,26 @@ static struct unicode_info2 * utf_tbl = NULL; static int utf_tbl_count = 0; // utf_tbl can be used by multiple Hunspell instances @@ -24,11 +24,11 @@ diff -ru hunspell/src/hunspell/csutil.cxx build/hunspell/src/hunspell/csutil.cxx + int len = MultiByteToWideChar(CP_UTF8, 0, path, -1, NULL, 0); + wchar_t *buff = (wchar_t *) malloc(len * sizeof(wchar_t)); + wchar_t *buff2 = (wchar_t *) malloc(len * sizeof(wchar_t)); -+ MultiByteToWideChar(CP_UTF8, 0, path, -1, buff, len); + FILE * f = NULL; ++ MultiByteToWideChar(CP_UTF8, 0, path, -1, buff, len); + if (_wfullpath( buff2, buff, len ) != NULL) { + f = _wfopen(buff2, (strcmp(mode, "r") == 0) ? L"r" : L"rb"); -+ } ++ } + free(buff); + free(buff2); + return f; diff --git a/external/hyphen/hyphen-fdo48017-wfopen.patch b/external/hyphen/hyphen-fdo48017-wfopen.patch index 4bcf6335ac2a..815eeda79a37 100644 --- a/external/hyphen/hyphen-fdo48017-wfopen.patch +++ b/external/hyphen/hyphen-fdo48017-wfopen.patch @@ -13,7 +13,7 @@ diff -u hyphen/hyphen.c build/hyphen/hyphen.c #define noVERBOSE /* calculate hyphenmin values with long ligature length (2 or 3 characters -@@ -371,12 +376,28 @@ +@@ -371,12 +376,32 @@ } } @@ -23,10 +23,14 @@ diff -u hyphen/hyphen.c build/hyphen/hyphen.c + if (strncmp(path, WIN32_LONG_PATH_PREFIX, 4) == 0) { + int len = MultiByteToWideChar(CP_UTF8, 0, path, -1, NULL, 0); + wchar_t *buff = (wchar_t *) malloc(len * sizeof(wchar_t)); -+ FILE * f; ++ wchar_t *buff2 = (wchar_t *) malloc(len * sizeof(wchar_t)); ++ FILE * f = NULL; + MultiByteToWideChar(CP_UTF8, 0, path, -1, buff, len); -+ f = _wfopen(buff, (strcmp(mode, "r") == 0) ? L"r" : L"rb"); ++ if (_wfullpath( buff2, buff, len ) != NULL) { ++ f = _wfopen(buff2, (strcmp(mode, "r") == 0) ? L"r" : L"rb"); ++ } + free(buff); ++ free(buff2); + return f; + } +#endif diff --git a/external/mythes/mythes-fdo48017-wfopen.patch b/external/mythes/mythes-fdo48017-wfopen.patch index 1621b1d35641..82d69ad6626e 100644 --- a/external/mythes/mythes-fdo48017-wfopen.patch +++ b/external/mythes/mythes-fdo48017-wfopen.patch @@ -31,7 +31,7 @@ diff -u mythes/mythes.cxx build/mythes/mythes.cxx if (!pdfile) { return 0; } -@@ -370,3 +375,17 @@ +@@ -373,3 +378,22 @@ return -1; } @@ -41,9 +41,14 @@ diff -u mythes/mythes.cxx build/mythes/mythes.cxx + if (strncmp(path, WIN32_LONG_PATH_PREFIX, 4) == 0) { + int len = MultiByteToWideChar(CP_UTF8, 0, path, -1, NULL, 0); + wchar_t *buff = (wchar_t *) malloc(len * sizeof(wchar_t)); ++ wchar_t *buff2 = (wchar_t *) malloc(len * sizeof(wchar_t)); ++ FILE * f = NULL; + MultiByteToWideChar(CP_UTF8, 0, path, -1, buff, len); -+ FILE * f = _wfopen(buff, (strcmp(mode, "r") == 0) ? L"r" : L"rb"); ++ if (_wfullpath( buff2, buff, len ) != NULL) { ++ f = _wfopen(buff2, (strcmp(mode, "r") == 0) ? L"r" : L"rb"); ++ } + free(buff); ++ free(buff2); + return f; + } +#endif |