summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2020-02-07 15:23:35 (GMT)
committerKitware Robot <kwrobot@kitware.com>2020-02-07 15:23:44 (GMT)
commitad17c37d345cd143a131e4b5f26196e0e749ec0e (patch)
treea6f4389e5eeb91cae4c65fa13a5f91c5a402b77f
parent135378fd187d5d246b200197dab917c81e6c0351 (diff)
parent16e31523ba9d4c53a38f6420b83561b4ca56cc79 (diff)
downloadCMake-ad17c37d345cd143a131e4b5f26196e0e749ec0e.zip
CMake-ad17c37d345cd143a131e4b5f26196e0e749ec0e.tar.gz
CMake-ad17c37d345cd143a131e4b5f26196e0e749ec0e.tar.bz2
Merge topic 'libarchive-win-codepage' into release-3.17
16e31523ba libarchive: Add support for UTF-8 locale on Windows f7c54d2049 libarchive: Fix WideCharToMultiByte output buffer size Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4332
-rw-r--r--Utilities/cmlibarchive/libarchive/archive_string.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/Utilities/cmlibarchive/libarchive/archive_string.c b/Utilities/cmlibarchive/libarchive/archive_string.c
index 554533e..85594cc 100644
--- a/Utilities/cmlibarchive/libarchive/archive_string.c
+++ b/Utilities/cmlibarchive/libarchive/archive_string.c
@@ -735,7 +735,8 @@ archive_string_append_from_wcs_in_codepage(struct archive_string *as,
else
dp = &defchar_used;
count = WideCharToMultiByte(to_cp, 0, ws, wslen,
- as->s + as->length, (int)as->buffer_length-1, NULL, dp);
+ as->s + as->length,
+ (int)as->buffer_length - as->length - 1, NULL, dp);
if (count == 0 &&
GetLastError() == ERROR_INSUFFICIENT_BUFFER) {
/* Expand the MBS buffer and retry. */
@@ -1512,8 +1513,10 @@ get_current_codepage(void)
p = strrchr(locale, '.');
if (p == NULL)
return (GetACP());
+ if (strcmp(p+1, "utf8") == 0)
+ return CP_UTF8;
cp = my_atoi(p+1);
- if (cp <= 0)
+ if ((int)cp <= 0)
return (GetACP());
return (cp);
}