summaryrefslogtreecommitdiff
path: root/Ports
diff options
context:
space:
mode:
authorTim Schumacher <timschumi@gmx.de>2021-12-21 19:33:40 +0100
committerBrian Gianforcaro <b.gianfo@gmail.com>2021-12-21 20:35:52 -0800
commite6c90a30482e2b4fe9964042f49fa872d0675953 (patch)
treef54dd51d0cef97d6333344f3eab5540e262610d9 /Ports
parentdfc682dc4082fabb57e4f1dc82eded1d550cfdfd (diff)
downloadserenity-e6c90a30482e2b4fe9964042f49fa872d0675953.zip
Ports: Remove the cmake wstring patch
Diffstat (limited to 'Ports')
-rw-r--r--Ports/cmake/patches/0000-no_wide_string.patch6873
-rw-r--r--Ports/cmake/patches/ReadMe.md11
2 files changed, 0 insertions, 6884 deletions
diff --git a/Ports/cmake/patches/0000-no_wide_string.patch b/Ports/cmake/patches/0000-no_wide_string.patch
deleted file mode 100644
index b15ea56a8e..0000000000
--- a/Ports/cmake/patches/0000-no_wide_string.patch
+++ /dev/null
@@ -1,6873 +0,0 @@
-diff -urp a/Source/cmCallVisualStudioMacro.cxx b/Source/cmCallVisualStudioMacro.cxx
---- a/Source/cmCallVisualStudioMacro.cxx 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/cmCallVisualStudioMacro.cxx 2021-02-11 18:43:33.119174973 +0330
-@@ -61,7 +61,7 @@ HRESULT InstanceCallMacro(IDispatch* vsI
-
- if (0 != vsIDE) {
- DISPID dispid = (DISPID)-1;
-- wchar_t execute_command[] = L"ExecuteCommand";
-+ char execute_command[] = "ExecuteCommand";
- OLECHAR* name = execute_command;
-
- hr =
-@@ -147,7 +147,7 @@ HRESULT GetSolutionObject(IDispatch* vsI
-
- if (0 != vsIDE) {
- DISPID dispid = (DISPID)-1;
-- wchar_t solution[] = L"Solution";
-+ char solution[] = "Solution";
- OLECHAR* name = solution;
-
- hr =
-@@ -191,7 +191,7 @@ HRESULT GetSolutionFullName(IDispatch* v
-
- if (0 != vsSolution) {
- DISPID dispid = (DISPID)-1;
-- wchar_t full_name[] = L"FullName";
-+ char full_name[] = "FullName";
- OLECHAR* name = full_name;
-
- hr = vsSolution->GetIDsOfNames(IID_NULL, &name, 1, LOCALE_USER_DEFAULT,
-
-diff -urp a/Source/cmCMakePath.cxx b/Source/cmCMakePath.cxx
---- a/Source/cmCMakePath.cxx 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/cmCMakePath.cxx 2021-02-12 14:39:55.144860522 +0330
-@@ -123,24 +123,3 @@ void cmCMakePath::GetNativePath(std::str
-
- path = tmp.string();
- }
--void cmCMakePath::GetNativePath(std::wstring& path) const
--{
-- cm::filesystem::path tmp(this->Path);
-- tmp.make_preferred();
--
-- path = tmp.wstring();
--
--#if defined(_WIN32)
-- // Windows long filename
-- static std::wstring UNC(L"\\\\?\\UNC");
-- static std::wstring PREFIX(L"\\\\?\\");
--
-- if (this->IsAbsolute() && path.length() > _MAX_PATH - 12) {
-- if (this->HasRootName() && path[0] == L'\\') {
-- path = UNC + path.substr(1);
-- } else {
-- path = PREFIX + path;
-- }
-- }
--#endif
--}
-diff -urp a/Source/cmCMakePath.h b/Source/cmCMakePath.h
---- a/Source/cmCMakePath.h 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/cmCMakePath.h 2021-02-12 14:39:55.144860522 +0330
-@@ -296,7 +296,7 @@ public:
-
- // Observers
- std::string String() const { return this->Path.string(); }
-- std::wstring WString() const { return this->Path.wstring(); }
-+ std::string WString() const { return this->Path.wstring(); }
-
- string_type Native() const
- {
-@@ -312,15 +312,15 @@ public:
-
- return path;
- }
-- std::wstring NativeWString() const
-+ std::string NativeWString() const
- {
-- std::wstring path;
-+ std::string path;
- this->GetNativePath(path);
-
- return path;
- }
- std::string GenericString() const { return this->Path.generic_string(); }
-- std::wstring GenericWString() const { return this->Path.generic_wstring(); }
-+ std::string GenericWString() const { return this->Path.generic_wstring(); }
-
- // Decomposition
- cmCMakePath GetRootName() const { return this->Path.root_name(); }
-@@ -449,7 +449,6 @@ private:
- }
-
- void GetNativePath(std::string& path) const;
-- void GetNativePath(std::wstring& path) const;
-
- cm::filesystem::path Path;
- };
-diff -urp a/Source/cm_codecvt.cxx b/Source/cm_codecvt.cxx
---- a/Source/cm_codecvt.cxx 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/cm_codecvt.cxx 2021-02-11 18:43:32.705835074 +0330
-@@ -159,7 +159,7 @@ std::codecvt_base::result codecvt::Decod
- buf[lstate.buffered] = *from_next;
-
- // Convert the encoding.
-- wchar_t wbuf[2];
-+ char wbuf[2];
- int wlen =
- MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, buf, size, wbuf, 2);
- if (wlen <= 0) {
-@@ -194,7 +194,7 @@ std::codecvt_base::result codecvt::Decod
- State& lstate = reinterpret_cast<State&>(state);
-
- // Try converting the partial codepoint.
-- wchar_t wbuf[2];
-+ char wbuf[2];
- int wlen = MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, lstate.partial,
- lstate.buffered, wbuf, 2);
- if (wlen <= 0) {
-diff -urp a/Source/cmExportCommand.cxx b/Source/cmExportCommand.cxx
---- a/Source/cmExportCommand.cxx 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/cmExportCommand.cxx 2021-02-11 18:43:33.069174181 +0330
-@@ -316,7 +316,7 @@ static void ReportRegistryError(cmMakefi
- std::ostringstream e;
- e << msg << "\n"
- << " HKEY_CURRENT_USER\\" << key << "\n";
-- wchar_t winmsg[1024];
-+ char winmsg[1024];
- if (FormatMessageW(
- FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, 0, err,
- MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), winmsg, 1024, 0) > 0) {
-@@ -339,11 +339,11 @@ static void StorePackageRegistry(cmMakef
- return;
- }
-
-- std::wstring wcontent = cmsys::Encoding::ToWide(content);
-+ std::string wcontent = cmsys::Encoding::ToWide(content);
- err =
- RegSetValueExW(hKey, cmsys::Encoding::ToWide(hash).c_str(), 0, REG_SZ,
- (BYTE const*)wcontent.c_str(),
-- static_cast<DWORD>(wcontent.size() + 1) * sizeof(wchar_t));
-+ static_cast<DWORD>(wcontent.size() + 1) * sizeof(char));
- RegCloseKey(hKey);
- if (err != ERROR_SUCCESS) {
- std::ostringstream msg;
-diff -urp a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx
---- a/Source/cmFileCommand.cxx 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/cmFileCommand.cxx 2021-02-12 14:39:59.851186324 +0330
-@@ -80,7 +80,7 @@ std::string fix_file_url_windows(const s
- {
- std::string ret = url;
- if (strncmp(url.c_str(), "file://", 7) == 0) {
-- std::wstring wurl = cmsys::Encoding::ToWide(url);
-+ std::string wurl = cmsys::Encoding::ToWide(url);
- if (!wurl.empty()) {
- int mblen =
- WideCharToMultiByte(CP_ACP, 0, wurl.c_str(), -1, NULL, 0, NULL, NULL);
-diff -urp a/Source/cmFindPackageCommand.cxx b/Source/cmFindPackageCommand.cxx
---- a/Source/cmFindPackageCommand.cxx 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/cmFindPackageCommand.cxx 2021-02-11 18:43:32.892504710 +0330
-@@ -1514,15 +1514,15 @@ void cmFindPackageCommand::LoadPackageRe
- void cmFindPackageCommand::LoadPackageRegistryWin(bool user, unsigned int view,
- cmSearchPath& outPaths)
- {
-- std::wstring key = L"Software\\Kitware\\CMake\\Packages\\";
-+ std::string key = "Software\\Kitware\\CMake\\Packages\\";
- key += cmsys::Encoding::ToWide(this->Name);
-- std::set<std::wstring> bad;
-+ std::set<std::string> bad;
- HKEY hKey;
- if (RegOpenKeyExW(user ? HKEY_CURRENT_USER : HKEY_LOCAL_MACHINE, key.c_str(),
- 0, KEY_QUERY_VALUE | view, &hKey) == ERROR_SUCCESS) {
- DWORD valueType = REG_NONE;
-- wchar_t name[16383]; // RegEnumValue docs limit name to 32767 _bytes_
-- std::vector<wchar_t> data(512);
-+ char name[16383]; // RegEnumValue docs limit name to 32767 _bytes_
-+ std::vector<char> data(512);
- bool done = false;
- DWORD index = 0;
- while (!done) {
-@@ -1557,7 +1557,7 @@ void cmFindPackageCommand::LoadPackageRe
- if (user && !bad.empty() &&
- RegOpenKeyExW(HKEY_CURRENT_USER, key.c_str(), 0, KEY_SET_VALUE | view,
- &hKey) == ERROR_SUCCESS) {
-- for (std::wstring const& v : bad) {
-+ for (std::string const& v : bad) {
- RegDeleteValueW(hKey, v.c_str());
- }
- RegCloseKey(hKey);
-diff -urp a/Source/cmGccDepfileLexerHelper.cxx b/Source/cmGccDepfileLexerHelper.cxx
---- a/Source/cmGccDepfileLexerHelper.cxx 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/cmGccDepfileLexerHelper.cxx 2021-02-11 18:43:33.049173864 +0330
-@@ -18,8 +18,8 @@
- bool cmGccDepfileLexerHelper::readFile(const char* filePath)
- {
- #ifdef _WIN32
-- wchar_t* wpath = cmsysEncoding_DupToWide(filePath);
-- FILE* file = _wfopen(wpath, L"rb");
-+ char* wpath = cmsysEncoding_DupToWide(filePath);
-+ FILE* file = _wfopen(wpath, "rb");
- free(wpath);
- #else
- FILE* file = fopen(filePath, "r");
-diff -urp a/Source/cmGlobalVisualStudio8Generator.cxx b/Source/cmGlobalVisualStudio8Generator.cxx
---- a/Source/cmGlobalVisualStudio8Generator.cxx 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/cmGlobalVisualStudio8Generator.cxx 2021-02-11 18:43:32.972505982 +0330
-@@ -380,10 +380,10 @@ static cmVS7FlagTable cmVS8ExtraFlagTabl
- { "EnablePREfast", "analyze-", "", "false", 0 },
-
- // Language options
-- { "TreatWChar_tAsBuiltInType", "Zc:wchar_t", "wchar_t is a built-in type",
-+ { "TreatWChar_tAsBuiltInType", "Zc:char", "char is a built-in type",
- "true", 0 },
-- { "TreatWChar_tAsBuiltInType", "Zc:wchar_t-",
-- "wchar_t is not a built-in type", "false", 0 },
-+ { "TreatWChar_tAsBuiltInType", "Zc:char-",
-+ "char is not a built-in type", "false", 0 },
-
- { "", "", "", "", 0 }
- };
-diff -urp a/Source/cmGlobalVisualStudioGenerator.cxx b/Source/cmGlobalVisualStudioGenerator.cxx
---- a/Source/cmGlobalVisualStudioGenerator.cxx 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/cmGlobalVisualStudioGenerator.cxx 2021-02-11 18:43:33.135841903 +0330
-@@ -552,9 +552,9 @@ bool IsVisualStudioMacrosFileRegistered(
- 0, KEY_READ, &hkey);
- if (ERROR_SUCCESS == result) {
- // Iterate the subkeys and look for the values of interest in each subkey:
-- wchar_t subkeyname[256];
-+ char subkeyname[256];
- DWORD cch_subkeyname = cm::size(subkeyname);
-- wchar_t keyclass[256];
-+ char keyclass[256];
- DWORD cch_keyclass = cm::size(keyclass);
- FILETIME lastWriteTime;
- lastWriteTime.dwHighDateTime = 0;
-@@ -568,19 +568,19 @@ bool IsVisualStudioMacrosFileRegistered(
- result = RegOpenKeyExW(hkey, subkeyname, 0, KEY_READ, &hsubkey);
- if (ERROR_SUCCESS == result) {
- DWORD valueType = REG_SZ;
-- wchar_t data1[256];
-+ char data1[256];
- DWORD cch_data1 = sizeof(data1);
-- RegQueryValueExW(hsubkey, L"Path", 0, &valueType, (LPBYTE)data1,
-+ RegQueryValueExW(hsubkey, "Path", 0, &valueType, (LPBYTE)data1,
- &cch_data1);
-
- DWORD data2 = 0;
- DWORD cch_data2 = sizeof(data2);
-- RegQueryValueExW(hsubkey, L"Security", 0, &valueType, (LPBYTE)&data2,
-+ RegQueryValueExW(hsubkey, "Security", 0, &valueType, (LPBYTE)&data2,
- &cch_data2);
-
- DWORD data3 = 0;
- DWORD cch_data3 = sizeof(data3);
-- RegQueryValueExW(hsubkey, L"StorageFormat", 0, &valueType,
-+ RegQueryValueExW(hsubkey, "StorageFormat", 0, &valueType,
- (LPBYTE)&data3, &cch_data3);
-
- s2 = cmSystemTools::LowerCase(cmsys::Encoding::ToNarrow(data1));
-@@ -643,18 +643,18 @@ bool IsVisualStudioMacrosFileRegistered(
- 0, KEY_READ, &hkey);
- if (ERROR_SUCCESS == result) {
- DWORD valueType = REG_SZ;
-- wchar_t data1[256];
-+ char data1[256];
- DWORD cch_data1 = sizeof(data1);
-- RegQueryValueExW(hkey, L"Path", 0, &valueType, (LPBYTE)data1, &cch_data1);
-+ RegQueryValueExW(hkey, "Path", 0, &valueType, (LPBYTE)data1, &cch_data1);
-
- DWORD data2 = 0;
- DWORD cch_data2 = sizeof(data2);
-- RegQueryValueExW(hkey, L"Security", 0, &valueType, (LPBYTE)&data2,
-+ RegQueryValueExW(hkey, "Security", 0, &valueType, (LPBYTE)&data2,
- &cch_data2);
-
- DWORD data3 = 0;
- DWORD cch_data3 = sizeof(data3);
-- RegQueryValueExW(hkey, L"StorageFormat", 0, &valueType, (LPBYTE)&data3,
-+ RegQueryValueExW(hkey, "StorageFormat", 0, &valueType, (LPBYTE)&data3,
- &cch_data3);
-
- s2 = cmSystemTools::LowerCase(cmsys::Encoding::ToNarrow(data1));
-@@ -690,7 +690,7 @@ void WriteVSMacrosFileRegistryEntry(cons
- if (ERROR_SUCCESS == result) {
- // Create the subkey and set the values of interest:
- HKEY hsubkey = NULL;
-- wchar_t lpClass[] = L"";
-+ char lpClass[] = "";
- result = RegCreateKeyExW(
- hkey, cmsys::Encoding::ToWide(nextAvailableSubKeyName).c_str(), 0,
- lpClass, 0, KEY_READ | KEY_WRITE, 0, &hsubkey, 0);
-@@ -699,11 +699,11 @@ void WriteVSMacrosFileRegistryEntry(cons
-
- std::string s(macrosFile);
- std::replace(s.begin(), s.end(), '/', '\\');
-- std::wstring ws = cmsys::Encoding::ToWide(s);
-+ std::string ws = cmsys::Encoding::ToWide(s);
-
- result =
-- RegSetValueExW(hsubkey, L"Path", 0, REG_SZ, (LPBYTE)ws.c_str(),
-- static_cast<DWORD>(ws.size() + 1) * sizeof(wchar_t));
-+ RegSetValueExW(hsubkey, "Path", 0, REG_SZ, (LPBYTE)ws.c_str(),
-+ static_cast<DWORD>(ws.size() + 1) * sizeof(char));
- if (ERROR_SUCCESS != result) {
- std::cout << "error result 1: " << result << std::endl;
- std::cout << std::endl;
-@@ -712,7 +712,7 @@ void WriteVSMacrosFileRegistryEntry(cons
- // Security value is always "1" for sample macros files (seems to be "2"
- // if you put the file somewhere outside the standard VSMacros folder)
- dw = 1;
-- result = RegSetValueExW(hsubkey, L"Security", 0, REG_DWORD, (LPBYTE)&dw,
-+ result = RegSetValueExW(hsubkey, "Security", 0, REG_DWORD, (LPBYTE)&dw,
- sizeof(DWORD));
- if (ERROR_SUCCESS != result) {
- std::cout << "error result 2: " << result << std::endl;
-@@ -721,7 +721,7 @@ void WriteVSMacrosFileRegistryEntry(cons
-
- // StorageFormat value is always "0" for sample macros files
- dw = 0;
-- result = RegSetValueExW(hsubkey, L"StorageFormat", 0, REG_DWORD,
-+ result = RegSetValueExW(hsubkey, "StorageFormat", 0, REG_DWORD,
- (LPBYTE)&dw, sizeof(DWORD));
- if (ERROR_SUCCESS != result) {
- std::cout << "error result 3: " << result << std::endl;
-diff -urp a/Source/cmProcessOutput.cxx b/Source/cmProcessOutput.cxx
---- a/Source/cmProcessOutput.cxx 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/cmProcessOutput.cxx 2021-02-11 18:43:32.995839686 +0330
-@@ -91,7 +91,7 @@ bool cmProcessOutput::DecodeText(std::st
- } else {
- bool restoreDecoded = false;
- std::string firstDecoded = decoded;
-- wchar_t lastChar = 0;
-+ char lastChar = 0;
- for (UINT i = 0; i < cpinfo.MaxCharSize; i++) {
- success = DoDecodeText(raw, decoded, &lastChar);
- if (success && lastChar != 0) {
-@@ -141,12 +141,12 @@ bool cmProcessOutput::DecodeText(std::ve
-
- #if defined(_WIN32)
- bool cmProcessOutput::DoDecodeText(std::string raw, std::string& decoded,
-- wchar_t* lastChar)
-+ char* lastChar)
- {
- bool success = false;
- const int wlength =
- MultiByteToWideChar(codepage, 0, raw.c_str(), int(raw.size()), NULL, 0);
-- auto wdata = cm::make_unique<wchar_t[]>(wlength);
-+ auto wdata = cm::make_unique<char[]>(wlength);
- int r = MultiByteToWideChar(codepage, 0, raw.c_str(), int(raw.size()),
- wdata.get(), wlength);
- if (r > 0) {
-diff -urp a/Source/cmProcessOutput.h b/Source/cmProcessOutput.h
---- a/Source/cmProcessOutput.h 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/cmProcessOutput.h 2021-02-11 18:43:33.152508833 +0330
-@@ -80,6 +80,6 @@ private:
- unsigned int codepage;
- unsigned int bufferSize;
- std::vector<std::string> rawparts;
-- bool DoDecodeText(std::string raw, std::string& decoded, wchar_t* lastChar);
-+ bool DoDecodeText(std::string raw, std::string& decoded, char* lastChar);
- #endif
- };
-diff -urp a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx
---- a/Source/cmSystemTools.cxx 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/cmSystemTools.cxx 2021-02-11 18:43:33.025840162 +0330
-@@ -128,7 +128,7 @@ static int cm_archive_read_open_file(str
- int block_size)
- {
- # if cmsys_STL_HAS_WSTRING
-- std::wstring wfile = cmsys::Encoding::ToWide(file);
-+ std::string wfile = cmsys::Encoding::ToWide(file);
- return archive_read_open_filename_w(a, wfile.c_str(), block_size);
- # else
- return archive_read_open_filename(a, file, block_size);
-@@ -759,7 +759,7 @@ namespace {
- class SaveRestoreFileAttributes
- {
- public:
-- SaveRestoreFileAttributes(std::wstring const& path,
-+ SaveRestoreFileAttributes(std::string const& path,
- uint32_t file_attrs_to_set);
- ~SaveRestoreFileAttributes();
-
-@@ -767,15 +767,15 @@ public:
- SaveRestoreFileAttributes& operator=(SaveRestoreFileAttributes const&) =
- delete;
-
-- void SetPath(std::wstring const& path) { path_ = path; }
-+ void SetPath(std::string const& path) { path_ = path; }
-
- private:
-- std::wstring path_;
-+ std::string path_;
- uint32_t original_attr_bits_;
- };
-
- SaveRestoreFileAttributes::SaveRestoreFileAttributes(
-- std::wstring const& path, uint32_t file_attrs_to_set)
-+ std::string const& path, uint32_t file_attrs_to_set)
- : path_(path)
- , original_attr_bits_(0)
- {
-@@ -809,14 +809,14 @@ struct WindowsFileRetryInit
- bool Explicit;
- };
-
--WindowsFileRetryInit InitWindowsFileRetry(wchar_t const* const values[2],
-+WindowsFileRetryInit InitWindowsFileRetry(char const* const values[2],
- unsigned int const defaults[2])
- {
- unsigned int data[2] = { 0, 0 };
- HKEY const keys[2] = { HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE };
- for (int k = 0; k < 2; ++k) {
- HKEY hKey;
-- if (RegOpenKeyExW(keys[k], L"Software\\Kitware\\CMake\\Config", 0,
-+ if (RegOpenKeyExW(keys[k], "Software\\Kitware\\CMake\\Config", 0,
- KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS) {
- for (int v = 0; v < 2; ++v) {
- DWORD dwData, dwType, dwSize = 4;
-@@ -839,16 +839,16 @@ WindowsFileRetryInit InitWindowsFileRetr
-
- WindowsFileRetryInit InitWindowsFileRetry()
- {
-- static wchar_t const* const values[2] = { L"FilesystemRetryCount",
-- L"FilesystemRetryDelay" };
-+ static char const* const values[2] = { "FilesystemRetryCount",
-+ "FilesystemRetryDelay" };
- static unsigned int const defaults[2] = { 5, 500 };
- return InitWindowsFileRetry(values, defaults);
- }
-
- WindowsFileRetryInit InitWindowsDirectoryRetry()
- {
-- static wchar_t const* const values[2] = { L"FilesystemDirectoryRetryCount",
-- L"FilesystemDirectoryRetryDelay" };
-+ static char const* const values[2] = { "FilesystemDirectoryRetryCount",
-+ "FilesystemDirectoryRetryDelay" };
- static unsigned int const defaults[2] = { 120, 500 };
- WindowsFileRetryInit dirInit = InitWindowsFileRetry(values, defaults);
- if (dirInit.Explicit) {
-@@ -861,7 +861,7 @@ WindowsFileRetryInit InitWindowsDirector
- return dirInit;
- }
-
--cmSystemTools::WindowsFileRetry GetWindowsRetry(std::wstring const& path)
-+cmSystemTools::WindowsFileRetry GetWindowsRetry(std::string const& path)
- {
- // If we are performing a directory operation, then try and get the
- // appropriate timing info.
-@@ -946,7 +946,7 @@ void cmSystemTools::InitializeLibUV()
-
- #ifdef _WIN32
- namespace {
--bool cmMoveFile(std::wstring const& oldname, std::wstring const& newname)
-+bool cmMoveFile(std::string const& oldname, std::string const& newname)
- {
- // Not only ignore any previous error, but clear any memory of it.
- SetLastError(0);
-@@ -965,9 +965,9 @@ bool cmSystemTools::RenameFile(const std
- # ifndef INVALID_FILE_ATTRIBUTES
- # define INVALID_FILE_ATTRIBUTES ((DWORD)-1)
- # endif
-- std::wstring const oldname_wstr =
-+ std::string const oldname_wstr =
- SystemTools::ConvertToWindowsExtendedPath(oldname);
-- std::wstring const newname_wstr =
-+ std::string const newname_wstr =
- SystemTools::ConvertToWindowsExtendedPath(newname);
-
- /* Windows MoveFileEx may not replace read-only or in-use files. If it
-@@ -2082,7 +2082,7 @@ void cmSystemTools::FindCMakeResources(c
- std::string exe_dir;
- #if defined(_WIN32) && !defined(__CYGWIN__)
- (void)argv0; // ignore this on windows
-- wchar_t modulepath[_MAX_PATH];
-+ char modulepath[_MAX_PATH];
- ::GetModuleFileNameW(NULL, modulepath, sizeof(modulepath));
- std::string path = cmsys::Encoding::ToNarrow(modulepath);
- std::string realPath =
-diff -urp a/Source/cmVSSetupHelper.cxx b/Source/cmVSSetupHelper.cxx
---- a/Source/cmVSSetupHelper.cxx 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/cmVSSetupHelper.cxx 2021-02-12 14:39:59.854519416 +0330
-@@ -47,10 +47,10 @@ const CLSID CLSID_SetupConfiguration = {
- #endif
-
- const WCHAR* Win10SDKComponent =
-- L"Microsoft.VisualStudio.Component.Windows10SDK";
-+ "Microsoft.VisualStudio.Component.Windows10SDK";
- const WCHAR* Win81SDKComponent =
-- L"Microsoft.VisualStudio.Component.Windows81SDK";
--const WCHAR* ComponentType = L"Component";
-+ "Microsoft.VisualStudio.Component.Windows81SDK";
-+const WCHAR* ComponentType = "Component";
-
- std::string VSInstanceInfo::GetInstallLocation() const
- {
-@@ -124,13 +124,13 @@ bool cmVSSetupAPIHelper::CheckInstalledC
- return ret;
- }
-
-- std::wstring id = std::wstring(bstrId);
-- std::wstring type = std::wstring(bstrType);
-+ std::string id = std::string(bstrId);
-+ std::string type = std::string(bstrType);
-
- // Checks for any version of Win10 SDK. The version is appended at the end of
- // the
- // component name ex: Microsoft.VisualStudio.Component.Windows10SDK.10240
-- if (id.find(Win10SDKComponent) != std::wstring::npos &&
-+ if (id.find(Win10SDKComponent) != std::string::npos &&
- type.compare(ComponentType) == 0) {
- bWin10SDK = true;
- ret = true;
-@@ -154,7 +154,7 @@ bool cmVSSetupAPIHelper::GetVSInstanceIn
-
- SmartBSTR bstrId;
- if (SUCCEEDED(pInstance->GetInstanceId(&bstrId))) {
-- vsInstanceInfo.InstanceId = std::wstring(bstrId);
-+ vsInstanceInfo.InstanceId = std::string(bstrId);
- } else {
- return false;
- }
-@@ -169,7 +169,7 @@ bool cmVSSetupAPIHelper::GetVSInstanceIn
- if (FAILED(pInstance->GetInstallationVersion(&bstrVersion))) {
- return false;
- } else {
-- vsInstanceInfo.Version = std::wstring(bstrVersion);
-+ vsInstanceInfo.Version = std::string(bstrVersion);
- if (FAILED(setupHelper->ParseVersion(bstrVersion, &ullVersion))) {
- vsInstanceInfo.ullVersion = 0;
- } else {
-@@ -183,7 +183,7 @@ bool cmVSSetupAPIHelper::GetVSInstanceIn
- if (FAILED(pInstance->GetInstallationPath(&bstrInstallationPath))) {
- return false;
- } else {
-- vsInstanceInfo.VSInstallLocation = std::wstring(bstrInstallationPath);
-+ vsInstanceInfo.VSInstallLocation = std::string(bstrInstallationPath);
- }
- }
-
-@@ -300,7 +300,7 @@ bool cmVSSetupAPIHelper::IsEWDKEnabled()
- bool cmVSSetupAPIHelper::EnumerateAndChooseVSInstance()
- {
- bool isVSInstanceExists = false;
-- if (chosenInstanceInfo.VSInstallLocation.compare(L"") != 0) {
-+ if (chosenInstanceInfo.VSInstallLocation.compare("") != 0) {
- return true;
- }
-
-@@ -314,9 +314,9 @@ bool cmVSSetupAPIHelper::EnumerateAndCho
- return false;
-
- chosenInstanceInfo.VSInstallLocation =
-- std::wstring(envVsInstallDir.begin(), envVsInstallDir.end());
-+ std::string(envVsInstallDir.begin(), envVsInstallDir.end());
- chosenInstanceInfo.Version =
-- std::wstring(envVSVersion.begin(), envVSVersion.end());
-+ std::string(envVSVersion.begin(), envVSVersion.end());
- chosenInstanceInfo.VCToolsetVersion = envVSVersion;
- chosenInstanceInfo.ullVersion = std::stoi(envVSVersion);
- chosenInstanceInfo.IsWin10SDKInstalled = true;
-@@ -345,7 +345,7 @@ bool cmVSSetupAPIHelper::EnumerateAndCho
- return false;
- }
-
-- std::wstring const wantVersion = std::to_wstring(this->Version) + L'.';
-+ std::string const wantVersion = std::to_wstring(this->Version) + L'.';
-
- SmartCOMPtr<ISetupInstance> instance;
- while (SUCCEEDED(enumInstances->Next(1, &instance, NULL)) && instance) {
-diff -urp a/Source/cmVSSetupHelper.h b/Source/cmVSSetupHelper.h
---- a/Source/cmVSSetupHelper.h 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/cmVSSetupHelper.h 2021-02-11 18:43:33.159175606 +0330
-@@ -84,9 +84,9 @@ private:
-
- struct VSInstanceInfo
- {
-- std::wstring InstanceId;
-- std::wstring VSInstallLocation;
-- std::wstring Version;
-+ std::string InstanceId;
-+ std::string VSInstallLocation;
-+ std::string Version;
- std::string VCToolsetVersion;
- ULONGLONG ullVersion = 0;
- bool IsWin10SDKInstalled = false;
-diff -urp a/Source/CPack/WiX/cmCPackWIXGenerator.cxx b/Source/CPack/WiX/cmCPackWIXGenerator.cxx
---- a/Source/CPack/WiX/cmCPackWIXGenerator.cxx 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/CPack/WiX/cmCPackWIXGenerator.cxx 2021-02-11 18:43:33.145842061 +0330
-@@ -1008,7 +1008,7 @@ std::string cmCPackWIXGenerator::Generat
- UuidToStringW(&guid, &tmp);
-
- std::string result =
-- cmsys::Encoding::ToNarrow(reinterpret_cast<wchar_t*>(tmp));
-+ cmsys::Encoding::ToNarrow(reinterpret_cast<char*>(tmp));
- RpcStringFreeW(&tmp);
- #else
- uuid_t guid;
-diff -urp a/Source/kwsys/ConsoleBuf.hxx.in b/Source/kwsys/ConsoleBuf.hxx.in
---- a/Source/kwsys/ConsoleBuf.hxx.in 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/kwsys/ConsoleBuf.hxx.in 2021-02-11 18:43:32.755835869 +0330
-@@ -111,7 +111,7 @@ protected:
- success = false;
- }
- if (m_hOutput && !m_obuffer.empty()) {
-- const std::wstring wbuffer = getBuffer(m_obuffer);
-+ const std::string wbuffer = getBuffer(m_obuffer);
- if (m_isConsoleOutput) {
- DWORD charsWritten;
- success =
-@@ -149,7 +149,7 @@ protected:
- if (m_isConsoleInput) {
- // ReadConsole doesn't tell if there's more input available
- // don't support reading more characters than this
-- wchar_t wbuffer[8192];
-+ char wbuffer[8192];
- DWORD charsRead;
- if (ReadConsoleW(m_hInput, wbuffer,
- (sizeof(wbuffer) / sizeof(wbuffer[0])), &charsRead,
-@@ -158,9 +158,9 @@ protected:
- _setg(true);
- return Traits::eof();
- }
-- setBuffer(std::wstring(wbuffer, charsRead), m_ibuffer);
-+ setBuffer(std::string(wbuffer, charsRead), m_ibuffer);
- } else {
-- std::wstring wbuffer;
-+ std::string wbuffer;
- std::string strbuffer;
- DWORD bytesRead;
- LARGE_INTEGER size;
-@@ -320,7 +320,7 @@ private:
- this->setp((char_type*)m_obuffer.data(),
- (char_type*)m_obuffer.data() + m_obuffer.size());
- }
-- bool encodeOutputBuffer(const std::wstring wbuffer, std::string& buffer)
-+ bool encodeOutputBuffer(const std::string wbuffer, std::string& buffer)
- {
- if (wbuffer.size() == 0) {
- buffer = std::string();
-@@ -340,11 +340,11 @@ private:
- delete[] buf;
- return success;
- }
-- bool decodeInputBuffer(const std::string buffer, std::wstring& wbuffer)
-+ bool decodeInputBuffer(const std::string buffer, std::string& wbuffer)
- {
- size_t length = buffer.length();
- if (length == 0) {
-- wbuffer = std::wstring();
-+ wbuffer = std::string();
- return true;
- }
- int actualCodepage = m_activeInputCodepage;
-@@ -359,30 +359,30 @@ private:
- }
- const size_t wlength = static_cast<size_t>(MultiByteToWideChar(
- actualCodepage, 0, data, static_cast<int>(length), nullptr, 0));
-- wchar_t* wbuf = new wchar_t[wlength];
-+ char* wbuf = new char[wlength];
- const bool success =
- MultiByteToWideChar(actualCodepage, 0, data, static_cast<int>(length),
- wbuf, static_cast<int>(wlength)) > 0
- ? true
- : false;
-- wbuffer = std::wstring(wbuf, wlength);
-+ wbuffer = std::string(wbuf, wlength);
- delete[] wbuf;
- return success;
- }
-- std::wstring getBuffer(const std::basic_string<char> buffer)
-+ std::string getBuffer(const std::basic_string<char> buffer)
- {
- return Encoding::ToWide(buffer);
- }
-- std::wstring getBuffer(const std::basic_string<wchar_t> buffer)
-+ std::string getBuffer(const std::basic_string<char> buffer)
- {
- return buffer;
- }
-- void setBuffer(const std::wstring wbuffer, std::basic_string<char>& target)
-+ void setBuffer(const std::string wbuffer, std::basic_string<char>& target)
- {
- target = Encoding::ToNarrow(wbuffer);
- }
-- void setBuffer(const std::wstring wbuffer,
-- std::basic_string<wchar_t>& target)
-+ void setBuffer(const std::string wbuffer,
-+ std::basic_string<char>& target)
- {
- target = wbuffer;
- }
-@@ -390,7 +390,7 @@ private:
- }; // BasicConsoleBuf class
-
- typedef BasicConsoleBuf<char> ConsoleBuf;
--typedef BasicConsoleBuf<wchar_t> WConsoleBuf;
-+typedef BasicConsoleBuf<char> WConsoleBuf;
-
- #endif
- } // KWSYS_NAMESPACE
-diff -urp a/Source/kwsys/Directory.cxx b/Source/kwsys/Directory.cxx
---- a/Source/kwsys/Directory.cxx 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/kwsys/Directory.cxx 2021-02-11 18:43:32.782502961 +0330
-@@ -117,7 +117,7 @@ bool Directory::Load(const std::string&
-
- // Now put them into the file array
- srchHandle =
-- _wfindfirst((wchar_t*)Encoding::ToWindowsExtendedPath(buf).c_str(), &data);
-+ _wfindfirst((char*)Encoding::ToWindowsExtendedPath(buf).c_str(), &data);
- delete[] buf;
-
- if (srchHandle == -1) {
-@@ -148,7 +148,7 @@ unsigned long Directory::GetNumberOfFile
- struct _wfinddata_t data; // data of current file
-
- // Now put them into the file array
-- srchHandle = _wfindfirst((wchar_t*)Encoding::ToWide(buf).c_str(), &data);
-+ srchHandle = _wfindfirst((char*)Encoding::ToWide(buf).c_str(), &data);
- delete[] buf;
-
- if (srchHandle == -1) {
-diff -urp a/Source/kwsys/DynamicLoader.cxx b/Source/kwsys/DynamicLoader.cxx
---- a/Source/kwsys/DynamicLoader.cxx 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/kwsys/DynamicLoader.cxx 2021-02-11 18:43:32.762502643 +0330
-@@ -263,7 +263,7 @@ DynamicLoader::SymbolPointer DynamicLoad
-
- const char* DynamicLoader::LastError()
- {
-- wchar_t lpMsgBuf[DYNLOAD_ERROR_BUFFER_SIZE + 1];
-+ char lpMsgBuf[DYNLOAD_ERROR_BUFFER_SIZE + 1];
-
- DWORD error = GetLastError();
- DWORD length = FormatMessageW(
-diff -urp a/Source/kwsys/EncodingC.c b/Source/kwsys/EncodingC.c
---- a/Source/kwsys/EncodingC.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/kwsys/EncodingC.c 2021-02-11 18:43:32.749169097 +0330
-@@ -15,7 +15,7 @@
- # include <windows.h>
- #endif
-
--size_t kwsysEncoding_mbstowcs(wchar_t* dest, const char* str, size_t n)
-+size_t kwsysEncoding_mbstowcs(char* dest, const char* str, size_t n)
- {
- if (str == 0) {
- return (size_t)-1;
-@@ -29,12 +29,12 @@ size_t kwsysEncoding_mbstowcs(wchar_t* d
- #endif
- }
-
--wchar_t* kwsysEncoding_DupToWide(const char* str)
-+char* kwsysEncoding_DupToWide(const char* str)
- {
-- wchar_t* ret = NULL;
-+ char* ret = NULL;
- size_t length = kwsysEncoding_mbstowcs(NULL, str, 0) + 1;
- if (length > 0) {
-- ret = (wchar_t*)malloc((length) * sizeof(wchar_t));
-+ ret = (char*)malloc((length) * sizeof(char));
- if (ret) {
- ret[0] = 0;
- kwsysEncoding_mbstowcs(ret, str, length);
-@@ -43,7 +43,7 @@ wchar_t* kwsysEncoding_DupToWide(const c
- return ret;
- }
-
--size_t kwsysEncoding_wcstombs(char* dest, const wchar_t* str, size_t n)
-+size_t kwsysEncoding_wcstombs(char* dest, const char* str, size_t n)
- {
- if (str == 0) {
- return (size_t)-1;
-@@ -57,7 +57,7 @@ size_t kwsysEncoding_wcstombs(char* dest
- #endif
- }
-
--char* kwsysEncoding_DupToNarrow(const wchar_t* str)
-+char* kwsysEncoding_DupToNarrow(const char* str)
- {
- char* ret = NULL;
- size_t length = kwsysEncoding_wcstombs(0, str, 0) + 1;
-diff -urp a/Source/kwsys/EncodingCXX.cxx b/Source/kwsys/EncodingCXX.cxx
---- a/Source/kwsys/EncodingCXX.cxx 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/kwsys/EncodingCXX.cxx 2021-02-12 14:39:55.148193613 +0330
-@@ -68,16 +68,6 @@ Encoding::CommandLineArguments::CommandL
- this->argv_[ac] = nullptr;
- }
-
--Encoding::CommandLineArguments::CommandLineArguments(int ac,
-- wchar_t const* const* av)
--{
-- this->argv_.resize(ac + 1);
-- for (int i = 0; i < ac; i++) {
-- this->argv_[i] = kwsysEncoding_DupToNarrow(av[i]);
-- }
-- this->argv_[ac] = nullptr;
--}
--
- Encoding::CommandLineArguments::~CommandLineArguments()
- {
- for (size_t i = 0; i < this->argv_.size(); i++) {
-@@ -124,19 +114,19 @@ char const* const* Encoding::CommandLine
-
- #if KWSYS_STL_HAS_WSTRING
-
--std::wstring Encoding::ToWide(const std::string& str)
-+std::string Encoding::ToWide(const std::string& str)
- {
-- std::wstring wstr;
-+ std::string wstr;
- # if defined(_WIN32)
- const int wlength =
- MultiByteToWideChar(KWSYS_ENCODING_DEFAULT_CODEPAGE, 0, str.data(),
- int(str.size()), nullptr, 0);
- if (wlength > 0) {
-- wchar_t* wdata = new wchar_t[wlength];
-+ char* wdata = new char[wlength];
- int r = MultiByteToWideChar(KWSYS_ENCODING_DEFAULT_CODEPAGE, 0, str.data(),
- int(str.size()), wdata, wlength);
- if (r > 0) {
-- wstr = std::wstring(wdata, wlength);
-+ wstr = std::string(wdata, wlength);
- }
- delete[] wdata;
- }
-@@ -150,14 +140,14 @@ std::wstring Encoding::ToWide(const std:
- nullPos = str.find('\0', pos);
- if (nullPos != std::string::npos) {
- pos = nullPos + 1;
-- wstr += wchar_t('\0');
-+ wstr += char('\0');
- }
- } while (nullPos != std::string::npos);
- # endif
- return wstr;
- }
-
--std::string Encoding::ToNarrow(const std::wstring& str)
-+std::string Encoding::ToNarrow(const std::string& str)
- {
- std::string nstr;
- # if defined(_WIN32)
-@@ -181,7 +171,7 @@ std::string Encoding::ToNarrow(const std
- if (pos < str.size() && str.at(pos) != '\0') {
- nstr += ToNarrow(str.c_str() + pos);
- }
-- nullPos = str.find(wchar_t('\0'), pos);
-+ nullPos = str.find(char('\0'), pos);
- if (nullPos != std::string::npos) {
- pos = nullPos + 1;
- nstr += '\0';
-@@ -191,12 +181,12 @@ std::string Encoding::ToNarrow(const std
- return nstr;
- }
-
--std::wstring Encoding::ToWide(const char* cstr)
-+std::string Encoding::ToWide(const char* cstr)
- {
-- std::wstring wstr;
-+ std::string wstr;
- size_t length = kwsysEncoding_mbstowcs(nullptr, cstr, 0) + 1;
- if (length > 0) {
-- std::vector<wchar_t> wchars(length);
-+ std::vector<char> wchars(length);
- if (kwsysEncoding_mbstowcs(&wchars[0], cstr, length) > 0) {
- wstr = &wchars[0];
- }
-@@ -204,7 +194,7 @@ std::wstring Encoding::ToWide(const char
- return wstr;
- }
-
--std::string Encoding::ToNarrow(const wchar_t* wcstr)
-+std::string Encoding::ToNarrow(const char* wcstr)
- {
- std::string str;
- size_t length = kwsysEncoding_wcstombs(nullptr, wcstr, 0) + 1;
-@@ -219,19 +209,19 @@ std::string Encoding::ToNarrow(const wch
-
- # if defined(_WIN32)
- // Convert local paths to UNC style paths
--std::wstring Encoding::ToWindowsExtendedPath(std::string const& source)
-+std::string Encoding::ToWindowsExtendedPath(std::string const& source)
- {
- return ToWindowsExtendedPath(ToWide(source));
- }
-
- // Convert local paths to UNC style paths
--std::wstring Encoding::ToWindowsExtendedPath(const char* source)
-+std::string Encoding::ToWindowsExtendedPath(const char* source)
- {
- return ToWindowsExtendedPath(ToWide(source));
- }
-
- // Convert local paths to UNC style paths
--std::wstring Encoding::ToWindowsExtendedPath(std::wstring const& wsource)
-+std::string Encoding::ToWindowsExtendedPath(std::string const& wsource)
- {
- // Resolve any relative paths
- DWORD wfull_len;
-@@ -239,7 +229,7 @@ std::wstring Encoding::ToWindowsExtended
- /* The +3 is a workaround for a bug in some versions of GetFullPathNameW that
- * won't return a large enough buffer size if the input is too small */
- wfull_len = GetFullPathNameW(wsource.c_str(), 0, nullptr, nullptr) + 3;
-- std::vector<wchar_t> wfull(wfull_len);
-+ std::vector<char> wfull(wfull_len);
- GetFullPathNameW(wsource.c_str(), wfull_len, &wfull[0], nullptr);
-
- /* This should get the correct size without any extra padding from the
-@@ -248,7 +238,7 @@ std::wstring Encoding::ToWindowsExtended
-
- if (wfull_len >= 2 && isalpha(wfull[0]) &&
- wfull[1] == L':') { /* C:\Foo\bar\FooBar.txt */
-- return L"\\\\?\\" + std::wstring(&wfull[0]);
-+ return "\\\\?\\" + std::string(&wfull[0]);
- } else if (wfull_len >= 2 && wfull[0] == L'\\' &&
- wfull[1] == L'\\') { /* Starts with \\ */
- if (wfull_len >= 4 && wfull[2] == L'?' &&
-@@ -256,24 +246,24 @@ std::wstring Encoding::ToWindowsExtended
- if (wfull_len >= 8 && wfull[4] == L'U' && wfull[5] == L'N' &&
- wfull[6] == L'C' &&
- wfull[7] == L'\\') { /* \\?\UNC\Foo\bar\FooBar.txt */
-- return std::wstring(&wfull[0]);
-+ return std::string(&wfull[0]);
- } else if (wfull_len >= 6 && isalpha(wfull[4]) &&
- wfull[5] == L':') { /* \\?\C:\Foo\bar\FooBar.txt */
-- return std::wstring(&wfull[0]);
-+ return std::string(&wfull[0]);
- } else if (wfull_len >= 5) { /* \\?\Foo\bar\FooBar.txt */
-- return L"\\\\?\\UNC\\" + std::wstring(&wfull[4]);
-+ return "\\\\?\\UNC\\" + std::string(&wfull[4]);
- }
- } else if (wfull_len >= 4 && wfull[2] == L'.' &&
- wfull[3] == L'\\') { /* Starts with \\.\ a device name */
- if (wfull_len >= 6 && isalpha(wfull[4]) &&
- wfull[5] == L':') { /* \\.\C:\Foo\bar\FooBar.txt */
-- return L"\\\\?\\" + std::wstring(&wfull[4]);
-+ return "\\\\?\\" + std::string(&wfull[4]);
- } else if (wfull_len >=
- 5) { /* \\.\Foo\bar\ Device name is left unchanged */
-- return std::wstring(&wfull[0]);
-+ return std::string(&wfull[0]);
- }
- } else if (wfull_len >= 3) { /* \\Foo\bar\FooBar.txt */
-- return L"\\\\?\\UNC\\" + std::wstring(&wfull[2]);
-+ return "\\\\?\\UNC\\" + std::string(&wfull[2]);
- }
- }
-
-diff -urp a/Source/kwsys/Encoding.h.in b/Source/kwsys/Encoding.h.in
---- a/Source/kwsys/Encoding.h.in 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/kwsys/Encoding.h.in 2021-02-11 18:43:32.759169256 +0330
-@@ -31,22 +31,22 @@ extern "C" {
- On Windows, UTF-8 is assumed, and on other platforms,
- the current locale is assumed.
- */
--kwsysEXPORT size_t kwsysEncoding_mbstowcs(wchar_t* dest, const char* src,
-+kwsysEXPORT size_t kwsysEncoding_mbstowcs(char* dest, const char* src,
- size_t n);
-
- /* Convert a narrow string to a wide string.
- This can return NULL if the conversion fails. */
--kwsysEXPORT wchar_t* kwsysEncoding_DupToWide(const char* src);
-+kwsysEXPORT char* kwsysEncoding_DupToWide(const char* src);
-
- /* Convert a wide string to a narrow string.
- On Windows, UTF-8 is assumed, and on other platforms,
- the current locale is assumed. */
--kwsysEXPORT size_t kwsysEncoding_wcstombs(char* dest, const wchar_t* src,
-+kwsysEXPORT size_t kwsysEncoding_wcstombs(char* dest, const char* src,
- size_t n);
-
- /* Convert a wide string to a narrow string.
- This can return NULL if the conversion fails. */
--kwsysEXPORT char* kwsysEncoding_DupToNarrow(const wchar_t* str);
-+kwsysEXPORT char* kwsysEncoding_DupToNarrow(const char* str);
-
- #if defined(__cplusplus)
- } /* extern "C" */
-diff -urp a/Source/kwsys/Encoding.hxx.in b/Source/kwsys/Encoding.hxx.in
---- a/Source/kwsys/Encoding.hxx.in 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/kwsys/Encoding.hxx.in 2021-02-12 14:39:55.148193613 +0330
-@@ -27,9 +27,6 @@ public:
- // in the encoding used by this module.
- CommandLineArguments(int argc, char const* const* argv);
-
-- // Construct CommandLineArguments with the given
-- // argc and wide argv. This is useful if wmain() is used.
-- CommandLineArguments(int argc, wchar_t const* const* argv);
- ~CommandLineArguments();
- CommandLineArguments(const CommandLineArguments&);
- CommandLineArguments& operator=(const CommandLineArguments&);
-@@ -42,7 +39,7 @@ public:
- };
-
- /**
-- * Convert between char and wchar_t
-+ * Convert between char and char
- */
-
- #if @KWSYS_NAMESPACE@_STL_HAS_WSTRING
-@@ -50,14 +47,14 @@ public:
- // Convert a narrow string to a wide string.
- // On Windows, UTF-8 is assumed, and on other platforms,
- // the current locale is assumed.
-- static std::wstring ToWide(const std::string& str);
-- static std::wstring ToWide(const char* str);
-+ static std::string ToWide(const std::string& str);
-+ static std::string ToWide(const char* str);
-
- // Convert a wide string to a narrow string.
- // On Windows, UTF-8 is assumed, and on other platforms,
- // the current locale is assumed.
-- static std::string ToNarrow(const std::wstring& str);
-- static std::string ToNarrow(const wchar_t* str);
-+ static std::string ToNarrow(const std::string& str);
-+ static std::string ToNarrow(const char* str);
-
- # if defined(_WIN32)
- /**
-@@ -67,9 +64,8 @@ public:
- * will be prefixed with \\?\UNC\. All output will also be converted to
- * absolute paths with Windows-style backslashes.
- **/
-- static std::wstring ToWindowsExtendedPath(std::string const&);
-- static std::wstring ToWindowsExtendedPath(const char* source);
-- static std::wstring ToWindowsExtendedPath(std::wstring const& wsource);
-+ static std::string ToWindowsExtendedPath(std::string const&);
-+ static std::string ToWindowsExtendedPath(const char* source);
- # endif
-
- #endif // @KWSYS_NAMESPACE@_STL_HAS_WSTRING
-diff -urp a/Source/kwsys/FStream.hxx.in b/Source/kwsys/FStream.hxx.in
---- a/Source/kwsys/FStream.hxx.in 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/kwsys/FStream.hxx.in 2021-02-11 18:43:32.765836028 +0330
-@@ -33,7 +33,7 @@ public:
- typedef std::basic_filebuf<CharType, Traits> my_base_type;
- basic_filebuf* open(char const* s, std::ios_base::openmode mode)
- {
-- const std::wstring wstr = Encoding::ToWindowsExtendedPath(s);
-+ const std::string wstr = Encoding::ToWindowsExtendedPath(s);
- return static_cast<basic_filebuf*>(my_base_type::open(wstr.c_str(), mode));
- }
- # endif
-@@ -41,28 +41,28 @@ public:
-
- # else
-
--inline std::wstring getcmode(const std::ios_base::openmode mode)
-+inline std::string getcmode(const std::ios_base::openmode mode)
- {
-- std::wstring cmode;
-+ std::string cmode;
- bool plus = false;
- if (mode & std::ios_base::app) {
-- cmode += L"a";
-+ cmode += "a";
- plus = mode & std::ios_base::in ? true : false;
- } else if (mode & std::ios_base::trunc ||
- (mode & std::ios_base::out && (mode & std::ios_base::in) == 0)) {
-- cmode += L"w";
-+ cmode += "w";
- plus = mode & std::ios_base::in ? true : false;
- } else {
-- cmode += L"r";
-+ cmode += "r";
- plus = mode & std::ios_base::out ? true : false;
- }
- if (plus) {
-- cmode += L"+";
-+ cmode += "+";
- }
- if (mode & std::ios_base::binary) {
-- cmode += L"b";
-+ cmode += "b";
- } else {
-- cmode += L"t";
-+ cmode += "t";
- }
- return cmode;
- };
-@@ -93,9 +93,9 @@ public:
- # if defined(_MSC_VER)
- const bool success = buf_->open(file_name, mode) != 0;
- # else
-- const std::wstring wstr = Encoding::ToWindowsExtendedPath(file_name);
-+ const std::string wstr = Encoding::ToWindowsExtendedPath(file_name);
- bool success = false;
-- std::wstring cmode = getcmode(mode);
-+ std::string cmode = getcmode(mode);
- file_ = _wfopen(wstr.c_str(), cmode.c_str());
- if (file_) {
- if (buf_) {
-diff -urp a/Source/kwsys/kwsysPlatformTestsCXX.cxx b/Source/kwsys/kwsysPlatformTestsCXX.cxx
---- a/Source/kwsys/kwsysPlatformTestsCXX.cxx 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/kwsys/kwsysPlatformTestsCXX.cxx 2021-02-12 14:39:59.854519416 +0330
-@@ -156,7 +156,7 @@ int main()
-
- #ifdef TEST_KWSYS_STL_HAS_WSTRING
- # include <string>
--void f(std::wstring*)
-+void f(std::string*)
- {
- }
- int main()
-diff -urp a/Source/kwsys/ProcessWin32.c b/Source/kwsys/ProcessWin32.c
---- a/Source/kwsys/ProcessWin32.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/kwsys/ProcessWin32.c 2021-02-11 18:43:32.785836347 +0330
-@@ -202,14 +202,14 @@ struct kwsysProcess_s
- int State;
-
- /* The command lines to execute. */
-- wchar_t** Commands;
-+ char** Commands;
- int NumberOfCommands;
-
- /* The exit code of each command. */
- DWORD* CommandExitCodes;
-
- /* The working directory for the child process. */
-- wchar_t* WorkingDirectory;
-+ char* WorkingDirectory;
-
- /* Whether to create the child as a detached process. */
- int OptionDetach;
-@@ -301,7 +301,7 @@ struct kwsysProcess_s
-
- /* Real working directory of our own process. */
- DWORD RealWorkingDirectoryLength;
-- wchar_t* RealWorkingDirectory;
-+ char* RealWorkingDirectory;
-
- /* Own handles for the child's ends of the pipes in the parent process.
- Used temporarily during process creation. */
-@@ -549,7 +549,7 @@ int kwsysProcess_SetCommand(kwsysProcess
- int kwsysProcess_AddCommand(kwsysProcess* cp, char const* const* command)
- {
- int newNumberOfCommands;
-- wchar_t** newCommands;
-+ char** newCommands;
-
- /* Make sure we have a command to add. */
- if (!cp || !command || !*command) {
-@@ -559,7 +559,7 @@ int kwsysProcess_AddCommand(kwsysProcess
- /* Allocate a new array for command pointers. */
- newNumberOfCommands = cp->NumberOfCommands + 1;
- if (!(newCommands =
-- (wchar_t**)malloc(sizeof(wchar_t*) * newNumberOfCommands))) {
-+ (char**)malloc(sizeof(char*) * newNumberOfCommands))) {
- /* Out of memory. */
- return 0;
- }
-@@ -664,11 +664,11 @@ int kwsysProcess_SetWorkingDirectory(kws
- cp->WorkingDirectory = 0;
- }
- if (dir && dir[0]) {
-- wchar_t* wdir = kwsysEncoding_DupToWide(dir);
-+ char* wdir = kwsysEncoding_DupToWide(dir);
- /* We must convert the working directory to a full path. */
- DWORD length = GetFullPathNameW(wdir, 0, 0, 0);
- if (length > 0) {
-- wchar_t* work_dir = malloc(length * sizeof(wchar_t));
-+ char* work_dir = malloc(length * sizeof(char));
- if (!work_dir) {
- free(wdir);
- return 0;
-@@ -968,7 +968,7 @@ void kwsysProcess_Execute(kwsysProcess*
- /* Setup the stdin pipe for the first process. */
- if (cp->PipeFileSTDIN) {
- /* Create a handle to read a file for stdin. */
-- wchar_t* wstdin = kwsysEncoding_DupToWide(cp->PipeFileSTDIN);
-+ char* wstdin = kwsysEncoding_DupToWide(cp->PipeFileSTDIN);
- DWORD error;
- cp->PipeChildStd[0] =
- CreateFileW(wstdin, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, 0,
-@@ -1630,7 +1630,7 @@ int kwsysProcessInitialize(kwsysProcess*
- cp->RealWorkingDirectoryLength = GetCurrentDirectoryW(0, 0);
- if (cp->RealWorkingDirectoryLength > 0) {
- cp->RealWorkingDirectory =
-- malloc(cp->RealWorkingDirectoryLength * sizeof(wchar_t));
-+ malloc(cp->RealWorkingDirectoryLength * sizeof(char));
- if (!cp->RealWorkingDirectory) {
- return 0;
- }
-@@ -1796,7 +1796,7 @@ void kwsysProcessDestroy(kwsysProcess* c
- DWORD kwsysProcessSetupOutputPipeFile(PHANDLE phandle, const char* name)
- {
- HANDLE fout;
-- wchar_t* wname;
-+ char* wname;
- DWORD error;
- if (!name) {
- return ERROR_INVALID_PARAMETER;
-@@ -1857,7 +1857,7 @@ void kwsysProcessCleanup(kwsysProcess* c
- /* Construct an error message if one has not been provided already. */
- if (cp->ErrorMessage[0] == 0) {
- /* Format the error message. */
-- wchar_t err_msg[KWSYSPE_PIPE_BUFFER_SIZE];
-+ char err_msg[KWSYSPE_PIPE_BUFFER_SIZE];
- DWORD length = FormatMessageW(
- FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, 0, error,
- MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), err_msg,
-@@ -2347,7 +2347,7 @@ static int kwsysProcess_List__New_NT4(kw
- loaded in this program. This does not actually increment the
- reference count to the module so we do not need to close the
- handle. */
-- HMODULE hNT = GetModuleHandleW(L"ntdll.dll");
-+ HMODULE hNT = GetModuleHandleW("ntdll.dll");
- if (hNT) {
- /* Get pointers to the needed API functions. */
- self->P_ZwQuerySystemInformation =
-@@ -2428,7 +2428,7 @@ static int kwsysProcess_List__New_Snapsh
- loaded in this program. This does not actually increment the
- reference count to the module so we do not need to close the
- handle. */
-- HMODULE hKernel = GetModuleHandleW(L"kernel32.dll");
-+ HMODULE hKernel = GetModuleHandleW("kernel32.dll");
- if (hKernel) {
- self->P_CreateToolhelp32Snapshot =
- ((CreateToolhelp32SnapshotType)GetProcAddress(
-diff -urp a/Source/kwsys/SystemInformation.cxx b/Source/kwsys/SystemInformation.cxx
---- a/Source/kwsys/SystemInformation.cxx 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/kwsys/SystemInformation.cxx 2021-02-12 14:39:59.854519416 +0330
-@@ -2559,7 +2559,7 @@ bool SystemInformationImplementation::Re
- HKEY hKey = nullptr;
- LONG err =
- RegOpenKeyExW(HKEY_LOCAL_MACHINE,
-- L"HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0", 0,
-+ "HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0", 0,
- KEY_READ, &hKey);
-
- if (ERROR_SUCCESS == err) {
-@@ -2568,7 +2568,7 @@ bool SystemInformationImplementation::Re
- DWORD dwSize = sizeof(DWORD);
-
- err =
-- RegQueryValueExW(hKey, L"~MHz", 0, &dwType, (LPBYTE)&data, &dwSize);
-+ RegQueryValueExW(hKey, "~MHz", 0, &dwType, (LPBYTE)&data, &dwSize);
-
- if (ERROR_SUCCESS == err) {
- this->CPUSpeedInMHz = (float)data;
-@@ -3836,7 +3836,7 @@ double SystemInformationImplementation::
- typedef BOOL(WINAPI * GetSystemTimesType)(LPFILETIME, LPFILETIME,
- LPFILETIME);
- static GetSystemTimesType pGetSystemTimes =
-- (GetSystemTimesType)GetProcAddress(GetModuleHandleW(L"kernel32"),
-+ (GetSystemTimesType)GetProcAddress(GetModuleHandleW("kernel32"),
- "GetSystemTimes");
- FILETIME idleTime, kernelTime, userTime;
- if (pGetSystemTimes && pGetSystemTimes(&idleTime, &kernelTime, &userTime)) {
-@@ -4383,7 +4383,7 @@ void SystemInformationImplementation::CP
- PSYSTEM_LOGICAL_PROCESSOR_INFORMATION, PDWORD);
- static GetLogicalProcessorInformationType pGetLogicalProcessorInformation =
- (GetLogicalProcessorInformationType)GetProcAddress(
-- GetModuleHandleW(L"kernel32"), "GetLogicalProcessorInformation");
-+ GetModuleHandleW("kernel32"), "GetLogicalProcessorInformation");
-
- if (!pGetLogicalProcessorInformation) {
- // Fallback to approximate implementation on ancient Windows versions.
-@@ -5267,21 +5267,21 @@ bool SystemInformationImplementation::Qu
- # endif // VER_NT_WORKSTATION
- {
- HKEY hKey;
-- wchar_t szProductType[80];
-+ char szProductType[80];
- DWORD dwBufLen;
-
- // Query the registry to retrieve information.
- RegOpenKeyExW(HKEY_LOCAL_MACHINE,
-- L"SYSTEM\\CurrentControlSet\\Control\\ProductOptions", 0,
-+ "SYSTEM\\CurrentControlSet\\Control\\ProductOptions", 0,
- KEY_QUERY_VALUE, &hKey);
-- RegQueryValueExW(hKey, L"ProductType", nullptr, nullptr,
-+ RegQueryValueExW(hKey, "ProductType", nullptr, nullptr,
- (LPBYTE)szProductType, &dwBufLen);
- RegCloseKey(hKey);
-
-- if (lstrcmpiW(L"WINNT", szProductType) == 0) {
-+ if (lstrcmpiW("WINNT", szProductType) == 0) {
- this->OSRelease += " Professional";
- }
-- if (lstrcmpiW(L"LANMANNT", szProductType) == 0) {
-+ if (lstrcmpiW("LANMANNT", szProductType) == 0) {
- // Decide between Windows 2000 Advanced Server and Windows .NET
- // Enterprise Server.
- if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1) {
-@@ -5290,7 +5290,7 @@ bool SystemInformationImplementation::Qu
- this->OSRelease += " Server";
- }
- }
-- if (lstrcmpiW(L"SERVERNT", szProductType) == 0) {
-+ if (lstrcmpiW("SERVERNT", szProductType) == 0) {
- // Decide between Windows 2000 Advanced Server and Windows .NET
- // Enterprise Server.
- if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1) {
-@@ -5315,7 +5315,7 @@ bool SystemInformationImplementation::Qu
- LPFNPROC DLLProc;
-
- // Load the Kernel32 DLL.
-- hKernelDLL = LoadLibraryW(L"kernel32");
-+ hKernelDLL = LoadLibraryW("kernel32");
- if (hKernelDLL != nullptr) {
- // Only XP and .NET Server support IsWOW64Process so... Load
- // dynamically!
-diff -urp a/Source/kwsys/SystemTools.cxx b/Source/kwsys/SystemTools.cxx
---- a/Source/kwsys/SystemTools.cxx 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/kwsys/SystemTools.cxx 2021-02-12 14:39:59.854519416 +0330
-@@ -223,7 +223,7 @@ inline int Rmdir(const std::string& dir)
- }
- inline const char* Getcwd(char* buf, unsigned int len)
- {
-- std::vector<wchar_t> w_buf(len);
-+ std::vector<char> w_buf(len);
- if (_wgetcwd(&w_buf[0], len)) {
- size_t nlen = kwsysEncoding_wcstombs(buf, &w_buf[0], len);
- if (nlen == static_cast<size_t>(-1)) {
-@@ -246,9 +246,9 @@ inline int Chdir(const std::string& dir)
- inline void Realpath(const std::string& path, std::string& resolved_path,
- std::string* errorMessage = 0)
- {
-- std::wstring tmp = KWSYS_NAMESPACE::Encoding::ToWide(path);
-- wchar_t* ptemp;
-- wchar_t fullpath[MAX_PATH];
-+ std::string tmp = KWSYS_NAMESPACE::Encoding::ToWide(path);
-+ char* ptemp;
-+ char fullpath[MAX_PATH];
- DWORD bufferLen = GetFullPathNameW(
- tmp.c_str(), sizeof(fullpath) / sizeof(fullpath[0]), fullpath, &ptemp);
- if (bufferLen < sizeof(fullpath) / sizeof(fullpath[0])) {
-@@ -351,7 +351,7 @@ double SystemTools::GetTime()
-
- /* Type of character storing the environment. */
- #if defined(_WIN32)
--typedef wchar_t envchar;
-+typedef char envchar;
- #else
- using envchar = char;
- #endif
-@@ -362,8 +362,8 @@ struct kwsysEnvCompare
- bool operator()(const envchar* l, const envchar* r) const
- {
- #if defined(_WIN32)
-- const wchar_t* leq = wcschr(l, L'=');
-- const wchar_t* req = wcschr(r, L'=');
-+ const char* leq = wcschr(l, L'=');
-+ const char* req = wcschr(r, L'=');
- size_t llen = leq ? (leq - l) : wcslen(l);
- size_t rlen = req ? (req - r) : wcslen(r);
- if (llen == rlen) {
-@@ -642,8 +642,8 @@ const char* SystemTools::GetEnv(const st
- bool SystemTools::GetEnv(const char* key, std::string& result)
- {
- #if defined(_WIN32)
-- const std::wstring wkey = Encoding::ToWide(key);
-- const wchar_t* wv = _wgetenv(wkey.c_str());
-+ const std::string wkey = Encoding::ToWide(key);
-+ const char* wv = _wgetenv(wkey.c_str());
- if (wv) {
- result = Encoding::ToNarrow(wv);
- return true;
-@@ -666,8 +666,8 @@ bool SystemTools::GetEnv(const std::stri
- bool SystemTools::HasEnv(const char* key)
- {
- #if defined(_WIN32)
-- const std::wstring wkey = Encoding::ToWide(key);
-- const wchar_t* v = _wgetenv(wkey.c_str());
-+ const std::string wkey = Encoding::ToWide(key);
-+ const char* v = _wgetenv(wkey.c_str());
- #else
- const char* v = getenv(key);
- #endif
-@@ -733,11 +733,11 @@ static kwsysEnvSet kwsysUnPutEnvSet;
-
- static int kwsysUnPutEnv(std::string const& env)
- {
-- std::wstring wEnv = Encoding::ToWide(env);
-+ std::string wEnv = Encoding::ToWide(env);
- size_t const pos = wEnv.find('=');
- size_t const len = pos == std::string::npos ? wEnv.size() : pos;
- wEnv.resize(len + 1, L'=');
-- wchar_t* newEnv = _wcsdup(wEnv.c_str());
-+ char* newEnv = _wcsdup(wEnv.c_str());
- if (!newEnv) {
- return -1;
- }
-@@ -820,8 +820,8 @@ public:
- bool Put(const char* env)
- {
- # if defined(_WIN32)
-- const std::wstring wEnv = Encoding::ToWide(env);
-- wchar_t* newEnv = _wcsdup(wEnv.c_str());
-+ const std::string wEnv = Encoding::ToWide(env);
-+ char* newEnv = _wcsdup(wEnv.c_str());
- # else
- char* newEnv = strdup(env);
- # endif
-@@ -836,7 +836,7 @@ public:
- bool UnPut(const char* env)
- {
- # if defined(_WIN32)
-- const std::wstring wEnv = Encoding::ToWide(env);
-+ const std::string wEnv = Encoding::ToWide(env);
- Free oldEnv(this->Release(wEnv.c_str()));
- # else
- Free oldEnv(this->Release(env));
-@@ -872,7 +872,7 @@ FILE* SystemTools::Fopen(const std::stri
- {
- #ifdef _WIN32
- // Remove any 'e', which is supported on UNIX, but not Windows.
-- std::wstring trimmedMode = Encoding::ToWide(mode);
-+ std::string trimmedMode = Encoding::ToWide(mode);
- trimmedMode.erase(std::remove(trimmedMode.begin(), trimmedMode.end(), L'e'),
- trimmedMode.end());
- return _wfopen(Encoding::ToWindowsExtendedPath(file).c_str(),
-@@ -1005,7 +1005,7 @@ static bool hasPrefix(const std::string&
- }
-
- static bool SystemToolsParseRegistryKey(const std::string& key,
-- HKEY& primaryKey, std::wstring& second,
-+ HKEY& primaryKey, std::string& second,
- std::string* valuename)
- {
- size_t start = key.find('\\');
-@@ -1040,7 +1040,7 @@ static DWORD SystemToolsMakeRegistryMode
- {
- // only add the modes when on a system that supports Wow64.
- static FARPROC wow64p =
-- GetProcAddress(GetModuleHandleW(L"kernel32"), "IsWow64Process");
-+ GetProcAddress(GetModuleHandleW("kernel32"), "IsWow64Process");
- if (wow64p == nullptr) {
- return mode;
- }
-@@ -1060,7 +1060,7 @@ bool SystemTools::GetRegistrySubKeys(con
- KeyWOW64 view)
- {
- HKEY primaryKey = HKEY_CURRENT_USER;
-- std::wstring second;
-+ std::string second;
- if (!SystemToolsParseRegistryKey(key, primaryKey, second, nullptr)) {
- return false;
- }
-@@ -1071,7 +1071,7 @@ bool SystemTools::GetRegistrySubKeys(con
- &hKey) != ERROR_SUCCESS) {
- return false;
- } else {
-- wchar_t name[1024];
-+ char name[1024];
- DWORD dwNameSize = sizeof(name) / sizeof(name[0]);
-
- DWORD i = 0;
-@@ -1106,7 +1106,7 @@ bool SystemTools::ReadRegistryValue(cons
- {
- bool valueset = false;
- HKEY primaryKey = HKEY_CURRENT_USER;
-- std::wstring second;
-+ std::string second;
- std::string valuename;
- if (!SystemToolsParseRegistryKey(key, primaryKey, second, &valuename)) {
- return false;
-@@ -1120,14 +1120,14 @@ bool SystemTools::ReadRegistryValue(cons
- } else {
- DWORD dwType, dwSize;
- dwSize = 1023;
-- wchar_t data[1024];
-+ char data[1024];
- if (RegQueryValueExW(hKey, Encoding::ToWide(valuename).c_str(), nullptr,
- &dwType, (BYTE*)data, &dwSize) == ERROR_SUCCESS) {
- if (dwType == REG_SZ) {
- value = Encoding::ToNarrow(data);
- valueset = true;
- } else if (dwType == REG_EXPAND_SZ) {
-- wchar_t expanded[1024];
-+ char expanded[1024];
- DWORD dwExpandedSize = sizeof(expanded) / sizeof(expanded[0]);
- if (ExpandEnvironmentStringsW(data, expanded, dwExpandedSize)) {
- value = Encoding::ToNarrow(expanded);
-@@ -1160,7 +1160,7 @@ bool SystemTools::WriteRegistryValue(con
- const std::string& value, KeyWOW64 view)
- {
- HKEY primaryKey = HKEY_CURRENT_USER;
-- std::wstring second;
-+ std::string second;
- std::string valuename;
- if (!SystemToolsParseRegistryKey(key, primaryKey, second, &valuename)) {
- return false;
-@@ -1168,7 +1168,7 @@ bool SystemTools::WriteRegistryValue(con
-
- HKEY hKey;
- DWORD dwDummy;
-- wchar_t lpClass[] = L"";
-+ char lpClass[] = "";
- if (RegCreateKeyExW(primaryKey, second.c_str(), 0, lpClass,
- REG_OPTION_NON_VOLATILE,
- SystemToolsMakeRegistryMode(KEY_WRITE, view), nullptr,
-@@ -1176,10 +1176,10 @@ bool SystemTools::WriteRegistryValue(con
- return false;
- }
-
-- std::wstring wvalue = Encoding::ToWide(value);
-+ std::string wvalue = Encoding::ToWide(value);
- if (RegSetValueExW(hKey, Encoding::ToWide(valuename).c_str(), 0, REG_SZ,
- (CONST BYTE*)wvalue.c_str(),
-- (DWORD)(sizeof(wchar_t) * (wvalue.size() + 1))) ==
-+ (DWORD)(sizeof(char) * (wvalue.size() + 1))) ==
- ERROR_SUCCESS) {
- return true;
- }
-@@ -1204,7 +1204,7 @@ bool SystemTools::WriteRegistryValue(con
- bool SystemTools::DeleteRegistryValue(const std::string& key, KeyWOW64 view)
- {
- HKEY primaryKey = HKEY_CURRENT_USER;
-- std::wstring second;
-+ std::string second;
- std::string valuename;
- if (!SystemToolsParseRegistryKey(key, primaryKey, second, &valuename)) {
- return false;
-@@ -1404,7 +1404,7 @@ int SystemTools::Stat(const std::string&
- // Ideally we should use Encoding::ToWindowsExtendedPath to support
- // long paths, but _wstat64 rejects paths with '?' in them, thinking
- // they are wildcards.
-- std::wstring const& wpath = Encoding::ToWide(path);
-+ std::string const& wpath = Encoding::ToWide(path);
- return _wstat64(wpath.c_str(), buf);
- #else
- return stat(path.c_str(), buf);
-@@ -2035,7 +2035,7 @@ void SystemTools::ConvertToUnixSlashes(s
- }
-
- #ifdef _WIN32
--std::wstring SystemTools::ConvertToWindowsExtendedPath(
-+std::string SystemTools::ConvertToWindowsExtendedPath(
- const std::string& source)
- {
- return Encoding::ToWindowsExtendedPath(source);
-@@ -2556,7 +2556,7 @@ std::string SystemTools::GetLastSystemEr
- bool SystemTools::RemoveFile(const std::string& source)
- {
- #ifdef _WIN32
-- std::wstring const& ws = Encoding::ToWindowsExtendedPath(source);
-+ std::string const& ws = Encoding::ToWindowsExtendedPath(source);
- if (DeleteFileW(ws.c_str())) {
- return true;
- }
-@@ -2960,7 +2960,7 @@ bool SystemTools::FileIsExecutable(const
- bool SystemTools::FileIsSymlink(const std::string& name)
- {
- #if defined(_WIN32)
-- std::wstring path = Encoding::ToWindowsExtendedPath(name);
-+ std::string path = Encoding::ToWindowsExtendedPath(name);
- DWORD attr = GetFileAttributesW(path.c_str());
- if (attr != INVALID_FILE_ATTRIBUTES) {
- if ((attr & FILE_ATTRIBUTE_REPARSE_POINT) != 0) {
-@@ -3971,9 +3971,9 @@ bool SystemTools::GetShortPath(const std
- tempPath.erase(0, 1);
- }
-
-- std::wstring wtempPath = Encoding::ToWide(tempPath);
-+ std::string wtempPath = Encoding::ToWide(tempPath);
- DWORD ret = GetShortPathNameW(wtempPath.c_str(), nullptr, 0);
-- std::vector<wchar_t> buffer(ret);
-+ std::vector<char> buffer(ret);
- if (ret != 0) {
- ret = GetShortPathNameW(wtempPath.c_str(), &buffer[0],
- static_cast<DWORD>(buffer.size()));
-@@ -4368,19 +4368,19 @@ std::string SystemTools::GetOperatingSys
- else {
- HKEY hKey;
- # define BUFSIZE 80
-- wchar_t szProductType[BUFSIZE];
-+ char szProductType[BUFSIZE];
- DWORD dwBufLen = BUFSIZE;
- LONG lRet;
-
- lRet =
- RegOpenKeyExW(HKEY_LOCAL_MACHINE,
-- L"SYSTEM\\CurrentControlSet\\Control\\ProductOptions",
-+ "SYSTEM\\CurrentControlSet\\Control\\ProductOptions",
- 0, KEY_QUERY_VALUE, &hKey);
- if (lRet != ERROR_SUCCESS) {
- return 0;
- }
-
-- lRet = RegQueryValueExW(hKey, L"ProductType", nullptr, nullptr,
-+ lRet = RegQueryValueExW(hKey, "ProductType", nullptr, nullptr,
- (LPBYTE)szProductType, &dwBufLen);
-
- if ((lRet != ERROR_SUCCESS) || (dwBufLen > BUFSIZE)) {
-@@ -4389,13 +4389,13 @@ std::string SystemTools::GetOperatingSys
-
- RegCloseKey(hKey);
-
-- if (lstrcmpiW(L"WINNT", szProductType) == 0) {
-+ if (lstrcmpiW("WINNT", szProductType) == 0) {
- res += " Workstation";
- }
-- if (lstrcmpiW(L"LANMANNT", szProductType) == 0) {
-+ if (lstrcmpiW("LANMANNT", szProductType) == 0) {
- res += " Server";
- }
-- if (lstrcmpiW(L"SERVERNT", szProductType) == 0) {
-+ if (lstrcmpiW("SERVERNT", szProductType) == 0) {
- res += " Advanced Server";
- }
-
-@@ -4418,7 +4418,7 @@ std::string SystemTools::GetOperatingSys
-
- lRet = RegOpenKeyExW(
- HKEY_LOCAL_MACHINE,
-- L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Hotfix\\Q246009",
-+ "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Hotfix\\Q246009",
- 0, KEY_QUERY_VALUE, &hKey);
-
- if (lRet == ERROR_SUCCESS) {
-diff -urp a/Source/kwsys/SystemTools.hxx.in b/Source/kwsys/SystemTools.hxx.in
---- a/Source/kwsys/SystemTools.hxx.in 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/kwsys/SystemTools.hxx.in 2021-02-11 18:43:32.762502643 +0330
-@@ -258,7 +258,7 @@ public:
-
- #ifdef _WIN32
- /** Calls Encoding::ToWindowsExtendedPath. */
-- static std::wstring ConvertToWindowsExtendedPath(const std::string&);
-+ static std::string ConvertToWindowsExtendedPath(const std::string&);
- #endif
-
- /**
-diff -urp a/Source/kwsys/testConsoleBufChild.cxx b/Source/kwsys/testConsoleBufChild.cxx
---- a/Source/kwsys/testConsoleBufChild.cxx 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/kwsys/testConsoleBufChild.cxx 2021-02-11 18:43:32.759169256 +0330
-@@ -27,8 +27,8 @@ int main(int argc, const char* argv[])
- std::cout << argv[1] << std::endl;
- std::cerr << argv[1] << std::endl;
- } else {
-- std::string str = kwsys::Encoding::ToNarrow(std::wstring(
-- UnicodeTestString, sizeof(UnicodeTestString) / sizeof(wchar_t) - 1));
-+ std::string str = kwsys::Encoding::ToNarrow(std::string(
-+ UnicodeTestString, sizeof(UnicodeTestString) / sizeof(char) - 1));
- std::cout << str << std::endl;
- std::cerr << str << std::endl;
- }
-diff -urp a/Source/kwsys/testConsoleBuf.cxx b/Source/kwsys/testConsoleBuf.cxx
---- a/Source/kwsys/testConsoleBuf.cxx 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/kwsys/testConsoleBuf.cxx 2021-02-11 18:43:32.759169256 +0330
-@@ -33,7 +33,7 @@
- # endif
- // يونيكود
- static const WCHAR UnicodeInputTestString[] =
-- L"\u064A\u0648\u0646\u064A\u0643\u0648\u062F!";
-+ "\u064A\u0648\u0646\u064A\u0643\u0648\u062F!";
- static UINT TestCodepage = KWSYS_ENCODING_DEFAULT_CODEPAGE;
-
- static const DWORD waitTimeout = 10 * 1000;
-@@ -68,7 +68,7 @@ std::basic_streambuf<char>* errstream(co
- return std::cerr.rdbuf();
- }
-
--std::basic_streambuf<wchar_t>* errstream(const wchar_t* unused)
-+std::basic_streambuf<char>* errstream(const char* unused)
- {
- static_cast<void>(unused);
- return std::wcerr.rdbuf();
-@@ -133,7 +133,7 @@ static bool createProcess(HANDLE hIn, HA
- p--;
- *(p + 1) = 0;
- wcscat(cmd, cmdConsoleBufChild);
-- wcscat(cmd, L".exe");
-+ wcscat(cmd, ".exe");
-
- bool success =
- CreateProcessW(nullptr, // No module name (use command line)
-@@ -374,9 +374,9 @@ static int testFile()
- HANDLE outFile = INVALID_HANDLE_VALUE;
- HANDLE errFile = INVALID_HANDLE_VALUE;
- try {
-- if ((inFile = createFile(L"stdinFile.txt")) == INVALID_HANDLE_VALUE ||
-- (outFile = createFile(L"stdoutFile.txt")) == INVALID_HANDLE_VALUE ||
-- (errFile = createFile(L"stderrFile.txt")) == INVALID_HANDLE_VALUE) {
-+ if ((inFile = createFile("stdinFile.txt")) == INVALID_HANDLE_VALUE ||
-+ (outFile = createFile("stdoutFile.txt")) == INVALID_HANDLE_VALUE ||
-+ (errFile = createFile("stderrFile.txt")) == INVALID_HANDLE_VALUE) {
- throw std::runtime_error("createFile failed!");
- }
- DWORD bytesWritten = 0;
-@@ -488,7 +488,7 @@ static int testConsole()
- bool newConsole = false;
- bool forceNewConsole = false;
- bool restoreConsole = false;
-- LPCWSTR TestFaceName = L"Lucida Console";
-+ LPCWSTR TestFaceName = "Lucida Console";
- const DWORD TestFontFamily = 0x00000036;
- const DWORD TestFontSize = 0x000c0000;
- HKEY hConsoleKey;
-@@ -518,23 +518,23 @@ static int testConsole()
- # endif
- # endif
- if (!isVistaOrGreater) {
-- if (RegOpenKeyExW(HKEY_CURRENT_USER, L"Console", 0, KEY_READ | KEY_WRITE,
-+ if (RegOpenKeyExW(HKEY_CURRENT_USER, "Console", 0, KEY_READ | KEY_WRITE,
- &hConsoleKey) == ERROR_SUCCESS) {
- DWORD dwordSize = sizeof(DWORD);
-- if (RegQueryValueExW(hConsoleKey, L"FontFamily", nullptr, nullptr,
-+ if (RegQueryValueExW(hConsoleKey, "FontFamily", nullptr, nullptr,
- (LPBYTE)&FontFamily, &dwordSize) == ERROR_SUCCESS) {
- if (FontFamily != TestFontFamily) {
-- RegQueryValueExW(hConsoleKey, L"FaceName", nullptr, nullptr,
-+ RegQueryValueExW(hConsoleKey, "FaceName", nullptr, nullptr,
- (LPBYTE)FaceName, &FaceNameSize);
-- RegQueryValueExW(hConsoleKey, L"FontSize", nullptr, nullptr,
-+ RegQueryValueExW(hConsoleKey, "FontSize", nullptr, nullptr,
- (LPBYTE)&FontSize, &dwordSize);
-
-- RegSetValueExW(hConsoleKey, L"FontFamily", 0, REG_DWORD,
-+ RegSetValueExW(hConsoleKey, "FontFamily", 0, REG_DWORD,
- (BYTE*)&TestFontFamily, sizeof(TestFontFamily));
-- RegSetValueExW(hConsoleKey, L"FaceName", 0, REG_SZ,
-+ RegSetValueExW(hConsoleKey, "FaceName", 0, REG_SZ,
- (BYTE*)TestFaceName,
- (DWORD)((wcslen(TestFaceName) + 1) * sizeof(WCHAR)));
-- RegSetValueExW(hConsoleKey, L"FontSize", 0, REG_DWORD,
-+ RegSetValueExW(hConsoleKey, "FontSize", 0, REG_DWORD,
- (BYTE*)&TestFontSize, sizeof(TestFontSize));
-
- restoreConsole = true;
-@@ -560,7 +560,7 @@ static int testConsole()
- securityAttributes.nLength = sizeof(SECURITY_ATTRIBUTES);
- securityAttributes.bInheritHandle = TRUE;
- securityAttributes.lpSecurityDescriptor = nullptr;
-- hIn = CreateFileW(L"CONIN$", GENERIC_READ | GENERIC_WRITE,
-+ hIn = CreateFileW("CONIN$", GENERIC_READ | GENERIC_WRITE,
- FILE_SHARE_READ | FILE_SHARE_WRITE, &securityAttributes,
- OPEN_EXISTING, 0, nullptr);
- if (hIn == INVALID_HANDLE_VALUE) {
-@@ -568,7 +568,7 @@ static int testConsole()
- std::cerr << "CreateFile(CONIN$)" << std::endl;
- displayError(lastError);
- }
-- hOut = CreateFileW(L"CONOUT$", GENERIC_READ | GENERIC_WRITE,
-+ hOut = CreateFileW("CONOUT$", GENERIC_READ | GENERIC_WRITE,
- FILE_SHARE_READ | FILE_SHARE_WRITE, &securityAttributes,
- OPEN_EXISTING, 0, nullptr);
- if (hOut == INVALID_HANDLE_VALUE) {
-@@ -587,7 +587,7 @@ static int testConsole()
- CONSOLE_FONT_INFOEX consoleFont;
- memset(&consoleFont, 0, sizeof(consoleFont));
- consoleFont.cbSize = sizeof(consoleFont);
-- HMODULE kernel32 = LoadLibraryW(L"kernel32.dll");
-+ HMODULE kernel32 = LoadLibraryW("kernel32.dll");
- typedef BOOL(WINAPI * GetCurrentConsoleFontExFunc)(
- HANDLE hConsoleOutput, BOOL bMaximumWindow,
- PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx);
-@@ -614,17 +614,17 @@ static int testConsole()
- } else {
- # endif
- if (restoreConsole &&
-- RegOpenKeyExW(HKEY_CURRENT_USER, L"Console", 0, KEY_WRITE,
-+ RegOpenKeyExW(HKEY_CURRENT_USER, "Console", 0, KEY_WRITE,
- &hConsoleKey) == ERROR_SUCCESS) {
-- RegSetValueExW(hConsoleKey, L"FontFamily", 0, REG_DWORD,
-+ RegSetValueExW(hConsoleKey, "FontFamily", 0, REG_DWORD,
- (BYTE*)&FontFamily, sizeof(FontFamily));
- if (FaceName[0] != 0) {
-- RegSetValueExW(hConsoleKey, L"FaceName", 0, REG_SZ, (BYTE*)FaceName,
-+ RegSetValueExW(hConsoleKey, "FaceName", 0, REG_SZ, (BYTE*)FaceName,
- FaceNameSize);
- } else {
-- RegDeleteValueW(hConsoleKey, L"FaceName");
-+ RegDeleteValueW(hConsoleKey, "FaceName");
- }
-- RegSetValueExW(hConsoleKey, L"FontSize", 0, REG_DWORD, (BYTE*)&FontSize,
-+ RegSetValueExW(hConsoleKey, "FontSize", 0, REG_DWORD, (BYTE*)&FontSize,
- sizeof(FontSize));
- RegCloseKey(hConsoleKey);
- }
-@@ -690,34 +690,34 @@ static int testConsole()
- delete[] outputBuffer;
- throw std::runtime_error("ReadConsoleOutputCharacter failed!");
- }
-- std::wstring wideTestString = kwsys::Encoding::ToWide(encodedTestString);
-+ std::string wideTestString = kwsys::Encoding::ToWide(encodedTestString);
- std::replace(wideTestString.begin(), wideTestString.end(), '\0', ' ');
-- std::wstring wideInputTestString =
-+ std::string wideInputTestString =
- kwsys::Encoding::ToWide(encodedInputTestString);
- if (memcmp(outputBuffer, wideTestString.c_str(),
-- wideTestString.size() * sizeof(wchar_t)) == 0 &&
-+ wideTestString.size() * sizeof(char)) == 0 &&
- memcmp(outputBuffer + screenBufferInfo.dwSize.X * 1,
- wideTestString.c_str(),
-- wideTestString.size() * sizeof(wchar_t)) == 0 &&
-+ wideTestString.size() * sizeof(char)) == 0 &&
- memcmp(outputBuffer + screenBufferInfo.dwSize.X * 2,
- UnicodeInputTestString,
- sizeof(UnicodeInputTestString) - sizeof(WCHAR)) == 0 &&
- memcmp(outputBuffer + screenBufferInfo.dwSize.X * 3,
- wideInputTestString.c_str(),
-- (wideInputTestString.size() - 1) * sizeof(wchar_t)) == 0) {
-+ (wideInputTestString.size() - 1) * sizeof(char)) == 0) {
- didFail = 0;
- } else {
- std::cerr << "Console's output didn't match expected output!"
- << std::endl;
-- dumpBuffers<wchar_t>(wideTestString.c_str(), outputBuffer,
-+ dumpBuffers<char>(wideTestString.c_str(), outputBuffer,
- wideTestString.size());
-- dumpBuffers<wchar_t>(wideTestString.c_str(),
-+ dumpBuffers<char>(wideTestString.c_str(),
- outputBuffer + screenBufferInfo.dwSize.X * 1,
- wideTestString.size());
-- dumpBuffers<wchar_t>(
-+ dumpBuffers<char>(
- UnicodeInputTestString, outputBuffer + screenBufferInfo.dwSize.X * 2,
- (sizeof(UnicodeInputTestString) - 1) / sizeof(WCHAR));
-- dumpBuffers<wchar_t>(wideInputTestString.c_str(),
-+ dumpBuffers<char>(wideInputTestString.c_str(),
- outputBuffer + screenBufferInfo.dwSize.X * 3,
- wideInputTestString.size() - 1);
- }
-@@ -763,11 +763,11 @@ int testConsoleBuf(int, char* [])
- return 1;
- }
-
-- encodedTestString = kwsys::Encoding::ToNarrow(std::wstring(
-- UnicodeTestString, sizeof(UnicodeTestString) / sizeof(wchar_t) - 1));
-+ encodedTestString = kwsys::Encoding::ToNarrow(std::string(
-+ UnicodeTestString, sizeof(UnicodeTestString) / sizeof(char) - 1));
- encodedInputTestString = kwsys::Encoding::ToNarrow(
-- std::wstring(UnicodeInputTestString,
-- sizeof(UnicodeInputTestString) / sizeof(wchar_t) - 1));
-+ std::string(UnicodeInputTestString,
-+ sizeof(UnicodeInputTestString) / sizeof(char) - 1));
- encodedInputTestString += "\n";
-
- ret |= testPipe();
-diff -urp a/Source/kwsys/testConsoleBuf.hxx b/Source/kwsys/testConsoleBuf.hxx
---- a/Source/kwsys/testConsoleBuf.hxx 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/kwsys/testConsoleBuf.hxx 2021-02-11 18:43:32.762502643 +0330
-@@ -3,15 +3,15 @@
- #ifndef testConsoleBuf_hxx
- #define testConsoleBuf_hxx
-
--static const wchar_t cmdConsoleBufChild[] = L"testConsoleBufChild";
-+static const char cmdConsoleBufChild[] = "testConsoleBufChild";
-
--static const wchar_t BeforeInputEventName[] = L"BeforeInputEvent";
--static const wchar_t AfterOutputEventName[] = L"AfterOutputEvent";
-+static const char BeforeInputEventName[] = "BeforeInputEvent";
-+static const char AfterOutputEventName[] = "AfterOutputEvent";
-
- // यूनिकोड είναι здорово!
--static const wchar_t UnicodeTestString[] =
-- L"\u092F\u0942\u0928\u093F\u0915\u094B\u0921 "
-- L"\u03B5\u03AF\u03BD\0\u03B1\u03B9 "
-- L"\u0437\u0434\u043E\u0440\u043E\u0432\u043E!";
-+static const char UnicodeTestString[] =
-+ "\u092F\u0942\u0928\u093F\u0915\u094B\u0921 "
-+ "\u03B5\u03AF\u03BD\0\u03B1\u03B9 "
-+ "\u0437\u0434\u043E\u0440\u043E\u0432\u043E!";
-
- #endif
-diff -urp a/Source/kwsys/testEncoding.cxx b/Source/kwsys/testEncoding.cxx
---- a/Source/kwsys/testEncoding.cxx 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/kwsys/testEncoding.cxx 2021-02-11 18:43:32.815836824 +0330
-@@ -55,9 +55,9 @@ static int testHelloWorldEncoding()
- for (int i = 0; helloWorldStrings[i][0] != 0; i++) {
- std::string str = reinterpret_cast<const char*>(helloWorldStrings[i]);
- std::cout << str << std::endl;
-- std::wstring wstr = kwsys::Encoding::ToWide(str);
-+ std::string wstr = kwsys::Encoding::ToWide(str);
- std::string str2 = kwsys::Encoding::ToNarrow(wstr);
-- wchar_t* c_wstr = kwsysEncoding_DupToWide(str.c_str());
-+ char* c_wstr = kwsysEncoding_DupToWide(str.c_str());
- char* c_str2 = kwsysEncoding_DupToNarrow(c_wstr);
- if (!wstr.empty() && (str != str2 || strcmp(c_str2, str.c_str()) != 0)) {
- std::cout << "converted string was different: " << str2 << std::endl;
-@@ -82,11 +82,11 @@ static int testRobustEncoding()
- int ret = 0;
- char cstr[] = { (char)-1, 0 };
- // this conversion could fail
-- std::wstring wstr = kwsys::Encoding::ToWide(cstr);
-+ std::string wstr = kwsys::Encoding::ToWide(cstr);
-
- wstr = kwsys::Encoding::ToWide(nullptr);
- if (!wstr.empty()) {
-- const wchar_t* wcstr = wstr.c_str();
-+ const char* wcstr = wstr.c_str();
- std::cout << "ToWide(NULL) returned";
- for (size_t i = 0; i < wstr.size(); i++) {
- std::cout << " " << std::hex << (int)wcstr[i];
-@@ -96,7 +96,7 @@ static int testRobustEncoding()
- }
- wstr = kwsys::Encoding::ToWide("");
- if (!wstr.empty()) {
-- const wchar_t* wcstr = wstr.c_str();
-+ const char* wcstr = wstr.c_str();
- std::cout << "ToWide(\"\") returned";
- for (size_t i = 0; i < wstr.size(); i++) {
- std::cout << " " << std::hex << (int)wcstr[i];
-@@ -106,8 +106,8 @@ static int testRobustEncoding()
- }
-
- #ifdef _WIN32
-- // 16 bit wchar_t - we make an invalid surrogate pair
-- wchar_t cwstr[] = { 0xD801, 0xDA00, 0 };
-+ // 16 bit char - we make an invalid surrogate pair
-+ char cwstr[] = { 0xD801, 0xDA00, 0 };
- // this conversion could fail
- std::string win_str = kwsys::Encoding::ToNarrow(cwstr);
- #endif
-@@ -118,7 +118,7 @@ static int testRobustEncoding()
- ret++;
- }
-
-- str = kwsys::Encoding::ToNarrow(L"");
-+ str = kwsys::Encoding::ToNarrow("");
- if (!wstr.empty()) {
- std::cout << "ToNarrow(\"\") returned " << str << std::endl;
- ret++;
-@@ -141,7 +141,7 @@ static int testWithNulls()
- strings.push_back(std::string("\0\0\0\0", 4) + "lmn" +
- std::string("\0\0\0\0", 4));
- for (auto& string : strings) {
-- std::wstring wstr = kwsys::Encoding::ToWide(string);
-+ std::string wstr = kwsys::Encoding::ToWide(string);
- std::string str = kwsys::Encoding::ToNarrow(wstr);
- std::string s(string);
- std::replace(s.begin(), s.end(), '\0', ' ');
-@@ -188,7 +188,7 @@ static int testToWindowsExtendedPath()
- int ret = 0;
- if (kwsys::Encoding::ToWindowsExtendedPath(
- "L:\\Local Mojo\\Hex Power Pack\\Iffy Voodoo") !=
-- L"\\\\?\\L:\\Local Mojo\\Hex Power Pack\\Iffy Voodoo") {
-+ "\\\\?\\L:\\Local Mojo\\Hex Power Pack\\Iffy Voodoo") {
- std::cout << "Problem with ToWindowsExtendedPath "
- << "\"L:\\Local Mojo\\Hex Power Pack\\Iffy Voodoo\""
- << std::endl;
-@@ -197,7 +197,7 @@ static int testToWindowsExtendedPath()
-
- if (kwsys::Encoding::ToWindowsExtendedPath(
- "L:/Local Mojo/Hex Power Pack/Iffy Voodoo") !=
-- L"\\\\?\\L:\\Local Mojo\\Hex Power Pack\\Iffy Voodoo") {
-+ "\\\\?\\L:\\Local Mojo\\Hex Power Pack\\Iffy Voodoo") {
- std::cout << "Problem with ToWindowsExtendedPath "
- << "\"L:/Local Mojo/Hex Power Pack/Iffy Voodoo\"" << std::endl;
- ++ret;
-@@ -205,7 +205,7 @@ static int testToWindowsExtendedPath()
-
- if (kwsys::Encoding::ToWindowsExtendedPath(
- "\\\\Foo\\Local Mojo\\Hex Power Pack\\Iffy Voodoo") !=
-- L"\\\\?\\UNC\\Foo\\Local Mojo\\Hex Power Pack\\Iffy Voodoo") {
-+ "\\\\?\\UNC\\Foo\\Local Mojo\\Hex Power Pack\\Iffy Voodoo") {
- std::cout << "Problem with ToWindowsExtendedPath "
- << "\"\\\\Foo\\Local Mojo\\Hex Power Pack\\Iffy Voodoo\""
- << std::endl;
-@@ -214,40 +214,40 @@ static int testToWindowsExtendedPath()
-
- if (kwsys::Encoding::ToWindowsExtendedPath(
- "//Foo/Local Mojo/Hex Power Pack/Iffy Voodoo") !=
-- L"\\\\?\\UNC\\Foo\\Local Mojo\\Hex Power Pack\\Iffy Voodoo") {
-+ "\\\\?\\UNC\\Foo\\Local Mojo\\Hex Power Pack\\Iffy Voodoo") {
- std::cout << "Problem with ToWindowsExtendedPath "
- << "\"//Foo/Local Mojo/Hex Power Pack/Iffy Voodoo\""
- << std::endl;
- ++ret;
- }
-
-- if (kwsys::Encoding::ToWindowsExtendedPath("//") != L"//") {
-+ if (kwsys::Encoding::ToWindowsExtendedPath("//") != "//") {
- std::cout << "Problem with ToWindowsExtendedPath "
- << "\"//\"" << std::endl;
- ++ret;
- }
-
-- if (kwsys::Encoding::ToWindowsExtendedPath("\\\\.\\") != L"\\\\.\\") {
-+ if (kwsys::Encoding::ToWindowsExtendedPath("\\\\.\\") != "\\\\.\\") {
- std::cout << "Problem with ToWindowsExtendedPath "
- << "\"\\\\.\\\"" << std::endl;
- ++ret;
- }
-
-- if (kwsys::Encoding::ToWindowsExtendedPath("\\\\.\\X") != L"\\\\.\\X") {
-+ if (kwsys::Encoding::ToWindowsExtendedPath("\\\\.\\X") != "\\\\.\\X") {
- std::cout << "Problem with ToWindowsExtendedPath "
- << "\"\\\\.\\X\"" << std::endl;
- ++ret;
- }
-
-- if (kwsys::Encoding::ToWindowsExtendedPath("\\\\.\\X:") != L"\\\\?\\X:") {
-+ if (kwsys::Encoding::ToWindowsExtendedPath("\\\\.\\X:") != "\\\\?\\X:") {
- std::cout << "Problem with ToWindowsExtendedPath "
- << "\"\\\\.\\X:\"" << std::endl;
- ++ret;
- }
-
- if (kwsys::Encoding::ToWindowsExtendedPath("\\\\.\\X:\\") !=
-- L"\\\\?\\X:\\") {
-+ "\\\\?\\X:\\") {
- std::cout << "Problem with ToWindowsExtendedPath "
- << "\"\\\\.\\X:\\\"" << std::endl;
- ++ret;
- }
-diff -urp a/Source/LexerParser/cmListFileLexer.c b/Source/LexerParser/cmListFileLexer.c
---- a/Source/LexerParser/cmListFileLexer.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/LexerParser/cmListFileLexer.c 2021-02-11 18:43:32.715835234 +0330
-@@ -2746,8 +2746,8 @@ int cmListFileLexer_SetFileName(cmListFi
- cmListFileLexerDestroy(lexer);
- if (name) {
- #ifdef _WIN32
-- wchar_t* wname = cmsysEncoding_DupToWide(name);
-- lexer->file = _wfopen(wname, L"rb");
-+ char* wname = cmsysEncoding_DupToWide(name);
-+ lexer->file = _wfopen(wname, "rb");
- free(wname);
- #else
- lexer->file = fopen(name, "rb");
-diff -urp a/Source/LexerParser/cmListFileLexer.in.l b/Source/LexerParser/cmListFileLexer.in.l
---- a/Source/LexerParser/cmListFileLexer.in.l 2021-01-28 18:58:45.000000000 +0330
-+++ b/Source/LexerParser/cmListFileLexer.in.l 2021-02-11 18:43:32.725835393 +0330
-@@ -459,8 +459,8 @@ int cmListFileLexer_SetFileName(cmListFi
- cmListFileLexerDestroy(lexer);
- if (name) {
- #ifdef _WIN32
-- wchar_t* wname = cmsysEncoding_DupToWide(name);
-- lexer->file = _wfopen(wname, L"rb");
-+ char* wname = cmsysEncoding_DupToWide(name);
-+ lexer->file = _wfopen(wname, "rb");
- free(wname);
- #else
- lexer->file = fopen(name, "rb");
-diff -urp a/Templates/MSBuild/FlagTables/v10_CL.json b/Templates/MSBuild/FlagTables/v10_CL.json
---- a/Templates/MSBuild/FlagTables/v10_CL.json 2021-01-28 18:58:45.000000000 +0330
-+++ b/Templates/MSBuild/FlagTables/v10_CL.json 2021-02-11 18:43:34.969204192 +0330
-@@ -678,14 +678,14 @@
- },
- {
- "name": "TreatWChar_tAsBuiltInType",
-- "switch": "Zc:wchar_t-",
-+ "switch": "Zc:char-",
- "comment": "Treat WChar_t As Built in Type",
- "value": "false",
- "flags": []
- },
- {
- "name": "TreatWChar_tAsBuiltInType",
-- "switch": "Zc:wchar_t",
-+ "switch": "Zc:char",
- "comment": "Treat WChar_t As Built in Type",
- "value": "true",
- "flags": []
-diff -urp a/Templates/MSBuild/FlagTables/v11_CL.json b/Templates/MSBuild/FlagTables/v11_CL.json
---- a/Templates/MSBuild/FlagTables/v11_CL.json 2021-01-28 18:58:45.000000000 +0330
-+++ b/Templates/MSBuild/FlagTables/v11_CL.json 2021-02-11 18:43:34.969204192 +0330
-@@ -741,14 +741,14 @@
- },
- {
- "name": "TreatWChar_tAsBuiltInType",
-- "switch": "Zc:wchar_t-",
-+ "switch": "Zc:char-",
- "comment": "Treat WChar_t As Built in Type",
- "value": "false",
- "flags": []
- },
- {
- "name": "TreatWChar_tAsBuiltInType",
-- "switch": "Zc:wchar_t",
-+ "switch": "Zc:char",
- "comment": "Treat WChar_t As Built in Type",
- "value": "true",
- "flags": []
-diff -urp a/Templates/MSBuild/FlagTables/v12_CL.json b/Templates/MSBuild/FlagTables/v12_CL.json
---- a/Templates/MSBuild/FlagTables/v12_CL.json 2021-01-28 18:58:45.000000000 +0330
-+++ b/Templates/MSBuild/FlagTables/v12_CL.json 2021-02-11 18:43:34.955870650 +0330
-@@ -755,14 +755,14 @@
- },
- {
- "name": "TreatWChar_tAsBuiltInType",
-- "switch": "Zc:wchar_t-",
-+ "switch": "Zc:char-",
- "comment": "Treat WChar_t As Built in Type",
- "value": "false",
- "flags": []
- },
- {
- "name": "TreatWChar_tAsBuiltInType",
-- "switch": "Zc:wchar_t",
-+ "switch": "Zc:char",
- "comment": "Treat WChar_t As Built in Type",
- "value": "true",
- "flags": []
-diff -urp a/Templates/MSBuild/FlagTables/v140_CL.json b/Templates/MSBuild/FlagTables/v140_CL.json
---- a/Templates/MSBuild/FlagTables/v140_CL.json 2021-01-28 18:58:45.000000000 +0330
-+++ b/Templates/MSBuild/FlagTables/v140_CL.json 2021-02-11 18:43:34.965870807 +0330
-@@ -762,14 +762,14 @@
- },
- {
- "name": "TreatWChar_tAsBuiltInType",
-- "switch": "Zc:wchar_t-",
-+ "switch": "Zc:char-",
- "comment": "Treat WChar_t As Built in Type",
- "value": "false",
- "flags": []
- },
- {
- "name": "TreatWChar_tAsBuiltInType",
-- "switch": "Zc:wchar_t",
-+ "switch": "Zc:char",
- "comment": "Treat WChar_t As Built in Type",
- "value": "true",
- "flags": []
-diff -urp a/Templates/MSBuild/FlagTables/v141_CL.json b/Templates/MSBuild/FlagTables/v141_CL.json
---- a/Templates/MSBuild/FlagTables/v141_CL.json 2021-01-28 18:58:45.000000000 +0330
-+++ b/Templates/MSBuild/FlagTables/v141_CL.json 2021-02-11 18:43:34.969204192 +0330
-@@ -825,14 +825,14 @@
- },
- {
- "name": "TreatWChar_tAsBuiltInType",
-- "switch": "Zc:wchar_t-",
-+ "switch": "Zc:char-",
- "comment": "Treat WChar_t As Built in Type",
- "value": "false",
- "flags": []
- },
- {
- "name": "TreatWChar_tAsBuiltInType",
-- "switch": "Zc:wchar_t",
-+ "switch": "Zc:char",
- "comment": "Treat WChar_t As Built in Type",
- "value": "true",
- "flags": []
-diff -urp a/Templates/MSBuild/FlagTables/v142_CL.json b/Templates/MSBuild/FlagTables/v142_CL.json
---- a/Templates/MSBuild/FlagTables/v142_CL.json 2021-01-28 18:58:45.000000000 +0330
-+++ b/Templates/MSBuild/FlagTables/v142_CL.json 2021-02-11 18:43:34.965870807 +0330
-@@ -860,14 +860,14 @@
- },
- {
- "name": "TreatWChar_tAsBuiltInType",
-- "switch": "Zc:wchar_t-",
-+ "switch": "Zc:char-",
- "comment": "Treat WChar_t As Built in Type",
- "value": "false",
- "flags": []
- },
- {
- "name": "TreatWChar_tAsBuiltInType",
-- "switch": "Zc:wchar_t",
-+ "switch": "Zc:char",
- "comment": "Treat WChar_t As Built in Type",
- "value": "true",
- "flags": []
-diff -urp a/Tests/CMakeLib/testCMFilesystemPath.cxx b/Tests/CMakeLib/testCMFilesystemPath.cxx
---- a/Tests/CMakeLib/testCMFilesystemPath.cxx 2021-01-28 18:58:45.000000000 +0330
-+++ b/Tests/CMakeLib/testCMFilesystemPath.cxx 2021-02-11 18:43:30.792471215 +0330
-@@ -66,7 +66,7 @@ bool testConstructors()
- #endif
- }
- {
-- std::wstring s(L"/a/b/c");
-+ std::string s("/a/b/c");
- fs::path p1(s);
- fs::path p2(s.begin(), s.end());
- if (p1 != p2) {
-@@ -76,7 +76,7 @@ bool testConstructors()
- result = false;
- }
- #if CM_FILESYSTEM_SOURCE_TRAITS_ITERATOR
-- std::wstring s2(s);
-+ std::string s2(s);
- s2 += L'\0';
- fs::path p3(s2.begin());
- if (p1 != p3 || p3.wstring() != s) {
-@@ -276,7 +276,7 @@ bool testObservers()
- }
- {
- std::string s("a//b//c");
-- std::wstring ws(L"a//b//c");
-+ std::string ws("a//b//c");
- fs::path p(s);
- if (p.string() != s || p.wstring() != ws) {
- result = false;
-@@ -284,9 +284,9 @@ bool testObservers()
- }
- {
- std::string s("a/b/c");
-- std::wstring ws;
-+ std::string ws;
- for (auto c : s) {
-- ws += static_cast<std::wstring::value_type>(c);
-+ ws += static_cast<std::string::value_type>(c);
- }
- std::string ns(s);
- std::replace(
-@@ -861,7 +861,7 @@ bool testIterators()
- {
- fs::path p("/a/b/");
- #if defined(_WIN32)
-- std::vector<fs::path::string_type> ref{ L"/", L"a", L"b", L"" };
-+ std::vector<fs::path::string_type> ref{ "/", "a", "b", "" };
- #else
- std::vector<fs::path::string_type> ref{ "/", "a", "b", "" };
- #endif
-@@ -883,7 +883,7 @@ bool testIterators()
- {
- fs::path p("/a/b/");
- #if defined(_WIN32)
-- std::vector<fs::path::string_type> ref{ L"", L"b", L"a", L"/" };
-+ std::vector<fs::path::string_type> ref{ "", "b", "a", "/" };
- #else
- std::vector<fs::path::string_type> ref{ "", "b", "a", "/" };
- #endif
-diff -urp a/Tests/FindPython/display_time.c b/Tests/FindPython/display_time.c
---- a/Tests/FindPython/display_time.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Tests/FindPython/display_time.c 2021-02-11 18:43:30.875805885 +0330
-@@ -9,7 +9,7 @@
- void display_time()
- {
- #if defined(PYTHON3)
-- wchar_t* program = Py_DecodeLocale("display_time", NULL);
-+ char* program = Py_DecodeLocale("display_time", NULL);
- if (program == NULL) {
- fprintf(stderr, "Fatal error: cannot decode argv[0]\n");
- exit(1);
-diff -urp a/Tests/Plugin/src/DynamicLoader.cxx b/Tests/Plugin/src/DynamicLoader.cxx
---- a/Tests/Plugin/src/DynamicLoader.cxx 2021-01-28 18:58:45.000000000 +0330
-+++ b/Tests/Plugin/src/DynamicLoader.cxx 2021-02-11 18:43:30.512466723 +0330
-@@ -94,7 +94,7 @@ DynamicLoader::LibraryHandle DynamicLoad
- {
- DynamicLoader::LibraryHandle lh;
- int length = MultiByteToWideChar(CP_UTF8, 0, libname.c_str(), -1, NULL, 0);
-- wchar_t* wchars = new wchar_t[length + 1];
-+ char* wchars = new char[length + 1];
- wchars[0] = '\0';
- MultiByteToWideChar(CP_UTF8, 0, libname.c_str(), -1, wchars, length);
- lh = LoadLibraryW(wchars);
-diff -urp a/Tests/VSWindowsFormsResx/WindowsFormsResx/MyForm.h b/Tests/VSWindowsFormsResx/WindowsFormsResx/MyForm.h
---- a/Tests/VSWindowsFormsResx/WindowsFormsResx/MyForm.h 2021-01-28 18:58:45.000000000 +0330
-+++ b/Tests/VSWindowsFormsResx/WindowsFormsResx/MyForm.h 2021-02-11 18:43:32.605833485 +0330
-@@ -58,10 +58,10 @@ private:
- // button1
- //
- this->button1->Location = System::Drawing::Point(13, 13);
-- this->button1->Name = L"button1";
-+ this->button1->Name = "button1";
- this->button1->Size = System::Drawing::Size(75, 23);
- this->button1->TabIndex = 0;
-- this->button1->Text = L"button1";
-+ this->button1->Text = "button1";
- this->button1->UseVisualStyleBackColor = true;
- //
- // MyForm
-@@ -70,8 +70,8 @@ private:
- this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
- this->ClientSize = System::Drawing::Size(284, 261);
- this->Controls->Add(this->button1);
-- this->Name = L"MyForm";
-- this->Text = L"MyForm";
-+ this->Name = "MyForm";
-+ this->Text = "MyForm";
- this->ResumeLayout(false);
- }
- #pragma endregion
-diff -urp a/Utilities/cmcurl/lib/curl_multibyte.c b/Utilities/cmcurl/lib/curl_multibyte.c
---- a/Utilities/cmcurl/lib/curl_multibyte.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmcurl/lib/curl_multibyte.c 2021-02-11 18:43:33.732518016 +0330
-@@ -34,15 +34,15 @@
- * MultiByte conversions using Windows kernel32 library.
- */
-
--wchar_t *curlx_convert_UTF8_to_wchar(const char *str_utf8)
-+char *curlx_convert_UTF8_to_wchar(const char *str_utf8)
- {
-- wchar_t *str_w = NULL;
-+ char *str_w = NULL;
-
- if(str_utf8) {
- int str_w_len = MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS,
- str_utf8, -1, NULL, 0);
- if(str_w_len > 0) {
-- str_w = malloc(str_w_len * sizeof(wchar_t));
-+ str_w = malloc(str_w_len * sizeof(char));
- if(str_w) {
- if(MultiByteToWideChar(CP_UTF8, 0, str_utf8, -1, str_w,
- str_w_len) == 0) {
-@@ -56,7 +56,7 @@ wchar_t *curlx_convert_UTF8_to_wchar(con
- return str_w;
- }
-
--char *curlx_convert_wchar_to_UTF8(const wchar_t *str_w)
-+char *curlx_convert_charo_UTF8(const char *str_w)
- {
- char *str_utf8 = NULL;
-
-@@ -86,8 +86,8 @@ FILE *curlx_win32_fopen(const char *file
- {
- #ifdef _UNICODE
- FILE *result = NULL;
-- wchar_t *filename_w = curlx_convert_UTF8_to_wchar(filename);
-- wchar_t *mode_w = curlx_convert_UTF8_to_wchar(mode);
-+ char *filename_w = curlx_convert_UTF8_to_wchar(filename);
-+ char *mode_w = curlx_convert_UTF8_to_wchar(mode);
- if(filename_w && mode_w)
- result = _wfopen(filename_w, mode_w);
- free(filename_w);
-@@ -103,7 +103,7 @@ int curlx_win32_stat(const char *path, s
- {
- int result = -1;
- #ifdef _UNICODE
-- wchar_t *path_w = curlx_convert_UTF8_to_wchar(path);
-+ char *path_w = curlx_convert_UTF8_to_wchar(path);
- #endif /* _UNICODE */
-
- #if defined(USE_WIN32_SMALL_FILES)
-@@ -133,7 +133,7 @@ int curlx_win32_access(const char *path,
- {
- int result = -1;
- #ifdef _UNICODE
-- wchar_t *path_w = curlx_convert_UTF8_to_wchar(path);
-+ char *path_w = curlx_convert_UTF8_to_wchar(path);
- #endif /* _UNICODE */
-
- #if defined(_UNICODE)
-diff -urp a/Utilities/cmcurl/lib/curl_multibyte.h b/Utilities/cmcurl/lib/curl_multibyte.h
---- a/Utilities/cmcurl/lib/curl_multibyte.h 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmcurl/lib/curl_multibyte.h 2021-02-11 18:43:33.832519600 +0330
-@@ -29,8 +29,8 @@
- * MultiByte conversions using Windows kernel32 library.
- */
-
--wchar_t *curlx_convert_UTF8_to_wchar(const char *str_utf8);
--char *curlx_convert_wchar_to_UTF8(const wchar_t *str_w);
-+char *curlx_convert_UTF8_to_wchar(const char *str_utf8);
-+char *curlx_convert_charo_UTF8(const char *str_w);
-
- #endif /* WIN32 */
-
-@@ -55,7 +55,7 @@ char *curlx_convert_wchar_to_UTF8(const
- #if defined(UNICODE) && defined(WIN32)
-
- #define curlx_convert_UTF8_to_tchar(ptr) curlx_convert_UTF8_to_wchar((ptr))
--#define curlx_convert_tchar_to_UTF8(ptr) curlx_convert_wchar_to_UTF8((ptr))
-+#define curlx_convert_tchar_to_UTF8(ptr) curlx_convert_charo_UTF8((ptr))
- #define curlx_unicodefree(ptr) \
- do { \
- if(ptr) { \
-diff -urp a/Utilities/cmcurl/lib/curl_setup_once.h b/Utilities/cmcurl/lib/curl_setup_once.h
---- a/Utilities/cmcurl/lib/curl_setup_once.h 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmcurl/lib/curl_setup_once.h 2021-02-11 18:43:33.869186847 +0330
-@@ -482,7 +482,7 @@ typedef int sig_atomic_t;
- #ifdef __VMS
- #define argv_item_t __char_ptr32
- #elif defined(_UNICODE)
--#define argv_item_t wchar_t *
-+#define argv_item_t char *
- #else
- #define argv_item_t char *
- #endif
-diff -urp a/Utilities/cmcurl/lib/curl_sspi.c b/Utilities/cmcurl/lib/curl_sspi.c
---- a/Utilities/cmcurl/lib/curl_sspi.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmcurl/lib/curl_sspi.c 2021-02-11 18:43:33.792518966 +0330
-@@ -41,7 +41,7 @@ typedef PSecurityFunctionTable (APIENTRY
- /* See definition of SECURITY_ENTRYPOINT in sspi.h */
- #ifdef UNICODE
- # ifdef _WIN32_WCE
--# define SECURITYENTRYPOINT L"InitSecurityInterfaceW"
-+# define SECURITYENTRYPOINT "InitSecurityInterfaceW"
- # else
- # define SECURITYENTRYPOINT "InitSecurityInterfaceW"
- # endif
-diff -urp a/Utilities/cmcurl/lib/curlx.h b/Utilities/cmcurl/lib/curlx.h
---- a/Utilities/cmcurl/lib/curlx.h 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmcurl/lib/curlx.h 2021-02-11 18:43:33.722517857 +0330
-@@ -57,7 +57,7 @@
- /* "curl_multibyte.h" provides these functions and macros:
-
- curlx_convert_UTF8_to_wchar()
-- curlx_convert_wchar_to_UTF8()
-+ curlx_convert_charo_UTF8()
- curlx_convert_UTF8_to_tchar()
- curlx_convert_tchar_to_UTF8()
- curlx_unicodefree()
-diff -urp a/Utilities/cmcurl/lib/idn_win32.c b/Utilities/cmcurl/lib/idn_win32.c
---- a/Utilities/cmcurl/lib/idn_win32.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmcurl/lib/idn_win32.c 2021-02-11 18:43:33.875853618 +0330
-@@ -72,13 +72,13 @@ bool curl_win32_idn_to_ascii(const char
- {
- bool success = FALSE;
-
-- wchar_t *in_w = curlx_convert_UTF8_to_wchar(in);
-+ char *in_w = curlx_convert_UTF8_to_wchar(in);
- if(in_w) {
-- wchar_t punycode[IDN_MAX_LENGTH];
-+ char punycode[IDN_MAX_LENGTH];
- int chars = IdnToAscii(0, in_w, -1, punycode, IDN_MAX_LENGTH);
- free(in_w);
- if(chars) {
-- *out = curlx_convert_wchar_to_UTF8(punycode);
-+ *out = curlx_convert_charo_UTF8(punycode);
- if(*out)
- success = TRUE;
- }
-@@ -91,15 +91,15 @@ bool curl_win32_ascii_to_idn(const char
- {
- bool success = FALSE;
-
-- wchar_t *in_w = curlx_convert_UTF8_to_wchar(in);
-+ char *in_w = curlx_convert_UTF8_to_wchar(in);
- if(in_w) {
- size_t in_len = wcslen(in_w) + 1;
-- wchar_t unicode[IDN_MAX_LENGTH];
-+ char unicode[IDN_MAX_LENGTH];
- int chars = IdnToUnicode(0, in_w, curlx_uztosi(in_len),
- unicode, IDN_MAX_LENGTH);
- free(in_w);
- if(chars) {
-- *out = curlx_convert_wchar_to_UTF8(unicode);
-+ *out = curlx_convert_charo_UTF8(unicode);
- if(*out)
- success = TRUE;
- }
-diff -urp a/Utilities/cmcurl/lib/memdebug.c b/Utilities/cmcurl/lib/memdebug.c
---- a/Utilities/cmcurl/lib/memdebug.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmcurl/lib/memdebug.c 2021-02-11 18:43:33.732518016 +0330
-@@ -238,9 +238,9 @@ char *curl_dbg_strdup(const char *str, i
- }
-
- #if defined(WIN32) && defined(UNICODE)
--wchar_t *curl_dbg_wcsdup(const wchar_t *str, int line, const char *source)
-+char *curl_dbg_wcsdup(const char *str, int line, const char *source)
- {
-- wchar_t *mem;
-+ char *mem;
- size_t wsiz, bsiz;
-
- DEBUGASSERT(str != NULL);
-@@ -249,7 +249,7 @@ wchar_t *curl_dbg_wcsdup(const wchar_t *
- return NULL;
-
- wsiz = wcslen(str) + 1;
-- bsiz = wsiz * sizeof(wchar_t);
-+ bsiz = wsiz * sizeof(char);
-
- mem = curl_dbg_malloc(bsiz, 0, NULL); /* NULL prevents logging */
- if(mem)
-diff -urp a/Utilities/cmcurl/lib/memdebug.h b/Utilities/cmcurl/lib/memdebug.h
---- a/Utilities/cmcurl/lib/memdebug.h 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmcurl/lib/memdebug.h 2021-02-11 18:43:33.832519600 +0330
-@@ -41,7 +41,7 @@ CURL_EXTERN void *curl_dbg_realloc(void
- CURL_EXTERN void curl_dbg_free(void *ptr, int line, const char *source);
- CURL_EXTERN char *curl_dbg_strdup(const char *str, int line, const char *src);
- #if defined(WIN32) && defined(UNICODE)
--CURL_EXTERN wchar_t *curl_dbg_wcsdup(const wchar_t *str, int line,
-+CURL_EXTERN char *curl_dbg_wcsdup(const char *str, int line,
- const char *source);
- #endif
-
-diff -urp a/Utilities/cmcurl/lib/setup-win32.h b/Utilities/cmcurl/lib/setup-win32.h
---- a/Utilities/cmcurl/lib/setup-win32.h 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmcurl/lib/setup-win32.h 2021-02-11 18:43:33.872520232 +0330
-@@ -54,7 +54,7 @@
- # endif
- # include <tchar.h>
- # ifdef UNICODE
-- typedef wchar_t *(*curl_wcsdup_callback)(const wchar_t *str);
-+ typedef char *(*curl_wcsdup_callback)(const char *str);
- # endif
- #endif
-
-diff -urp a/Utilities/cmcurl/lib/strerror.c b/Utilities/cmcurl/lib/strerror.c
---- a/Utilities/cmcurl/lib/strerror.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmcurl/lib/strerror.c 2021-02-11 18:43:33.752518332 +0330
-@@ -660,12 +660,12 @@ get_winapi_error(int err, char *buf, siz
-
- #ifdef _WIN32_WCE
- {
-- wchar_t wbuf[256];
-+ char wbuf[256];
- wbuf[0] = L'\0';
-
- if(FormatMessage((FORMAT_MESSAGE_FROM_SYSTEM |
- FORMAT_MESSAGE_IGNORE_INSERTS), NULL, err,
-- LANG_NEUTRAL, wbuf, sizeof(wbuf)/sizeof(wchar_t), NULL)) {
-+ LANG_NEUTRAL, wbuf, sizeof(wbuf)/sizeof(char), NULL)) {
- size_t written = wcstombs(buf, wbuf, buflen - 1);
- if(written != (size_t)-1)
- buf[written] = '\0';
-diff -urp a/Utilities/cmcurl/lib/system_win32.c b/Utilities/cmcurl/lib/system_win32.c
---- a/Utilities/cmcurl/lib/system_win32.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmcurl/lib/system_win32.c 2021-02-11 18:43:33.832519600 +0330
-@@ -152,7 +152,7 @@ typedef HMODULE (APIENTRY *LOADLIBRARYEX
- /* See function definitions in winbase.h */
- #ifdef UNICODE
- # ifdef _WIN32_WCE
--# define LOADLIBARYEX L"LoadLibraryExW"
-+# define LOADLIBARYEX "LoadLibraryExW"
- # else
- # define LOADLIBARYEX "LoadLibraryExW"
- # endif
-diff -urp a/Utilities/cmcurl/lib/vtls/schannel.c b/Utilities/cmcurl/lib/vtls/schannel.c
---- a/Utilities/cmcurl/lib/vtls/schannel.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmcurl/lib/vtls/schannel.c 2021-02-11 18:43:33.765851877 +0330
-@@ -70,7 +70,7 @@
- #endif
-
- #ifndef UNISP_NAME_W
--#define UNISP_NAME_W L"Microsoft Unified Security Protocol Provider"
-+#define UNISP_NAME_W "Microsoft Unified Security Protocol Provider"
- #endif
-
- #ifndef UNISP_NAME
-diff -urp a/Utilities/cmcurl/lib/vtls/schannel_verify.c b/Utilities/cmcurl/lib/vtls/schannel_verify.c
---- a/Utilities/cmcurl/lib/vtls/schannel_verify.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmcurl/lib/vtls/schannel_verify.c 2021-02-11 18:43:33.769185263 +0330
-@@ -384,7 +384,7 @@ static DWORD cert_get_name_string(struct
- /* Iterate over the alternate names and populate host_names. */
- for(i = 0; i < alt_name_info->cAltEntry; i++) {
- const CERT_ALT_NAME_ENTRY *entry = &alt_name_info->rgAltEntry[i];
-- wchar_t *dns_w = NULL;
-+ char *dns_w = NULL;
- size_t current_length = 0;
-
- if(entry->dwAltNameChoice != CERT_ALT_NAME_DNS_NAME) {
-diff -urp a/Utilities/cmexpat/lib/expat_external.h b/Utilities/cmexpat/lib/expat_external.h
---- a/Utilities/cmexpat/lib/expat_external.h 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmexpat/lib/expat_external.h 2021-02-11 18:43:34.099190481 +0330
-@@ -129,14 +129,14 @@ extern "C" {
- # define XML_UNICODE
- # endif
- # if defined(__SIZEOF_WCHAR_T__) && (__SIZEOF_WCHAR_T__ != 2)
--# error "sizeof(wchar_t) != 2; Need -fshort-wchar for both Expat and libc"
-+# error "sizeof(char) != 2; Need -fshort-wchar for both Expat and libc"
- # endif
- #endif
-
- #ifdef XML_UNICODE /* Information is UTF-16 encoded. */
- # ifdef XML_UNICODE_WCHAR_T
--typedef wchar_t XML_Char;
--typedef wchar_t XML_LChar;
-+typedef char XML_Char;
-+typedef char XML_LChar;
- # else
- typedef unsigned short XML_Char;
- typedef char XML_LChar;
-diff -urp a/Utilities/cmexpat/lib/xmlparse.c b/Utilities/cmexpat/lib/xmlparse.c
---- a/Utilities/cmexpat/lib/xmlparse.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmexpat/lib/xmlparse.c 2021-02-11 18:43:34.095857094 +0330
-@@ -157,7 +157,7 @@ typedef char ICHAR;
- #ifdef XML_UNICODE
-
- # ifdef XML_UNICODE_WCHAR_T
--# define XML_T(x) (const wchar_t) x
-+# define XML_T(x) (const char) x
- # define XML_L(x) L##x
- # else
- # define XML_T(x) (const unsigned short)x
-diff -urp a/Utilities/cmexpat/README.md b/Utilities/cmexpat/README.md
---- a/Utilities/cmexpat/README.md 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmexpat/README.md 2021-02-11 18:43:34.062523237 +0330
-@@ -99,7 +99,7 @@ support this mode of compilation (yet):
- 1. For UTF-16 output as unsigned short (and version/error strings as char),
- run:<br/>
- `./configure CPPFLAGS=-DXML_UNICODE --without-xmlwf`<br/>
-- For UTF-16 output as `wchar_t` (incl. version/error strings), run:<br/>
-+ For UTF-16 output as `char` (incl. version/error strings), run:<br/>
- `./configure CFLAGS="-g -O2 -fshort-wchar" CPPFLAGS=-DXML_UNICODE_WCHAR_T
- --without-xmlwf`
- <br/>Note: The latter requires libc compiled with `-fshort-wchar`, as well.
-@@ -165,7 +165,7 @@ EXPAT_BUILD_TESTS:BOOL=ON
- // build the xmlwf tool for expat library
- EXPAT_BUILD_TOOLS:BOOL=ON
-
--// Character type to use (char|ushort|wchar_t) [default=char]
-+// Character type to use (char|ushort|char) [default=char]
- EXPAT_CHAR_TYPE:STRING=char
-
- // install expat files in cmake install target
-diff -urp a/Utilities/cmlibarchive/build/cmake/config.h.in b/Utilities/cmlibarchive/build/cmake/config.h.in
---- a/Utilities/cmlibarchive/build/cmake/config.h.in 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/build/cmake/config.h.in 2021-02-12 14:39:59.857852509 +0330
-@@ -931,7 +931,7 @@
- /* Define to 1 if you have the <wchar.h> header file. */
- #cmakedefine HAVE_WCHAR_H 1
-
--/* Define to 1 if the system has the type `wchar_t'. */
-+/* Define to 1 if the system has the type `char'. */
- #cmakedefine HAVE_WCHAR_T 1
-
- /* Define to 1 if you have the `wcrtomb' function. */
-@@ -1027,7 +1027,7 @@
- /* Define to 1 if your C compiler doesn't accept -c and -o together. */
- #cmakedefine NO_MINUS_C_MINUS_O 1
-
--/* The size of `wchar_t', as computed by sizeof. */
-+/* The size of `char', as computed by sizeof. */
- #cmakedefine SIZEOF_WCHAR_T ${SIZEOF_WCHAR_T}
-
- /* Define to 1 if strerror_r returns char *. */
-diff -urp a/Utilities/cmlibarchive/CMakeLists.txt b/Utilities/cmlibarchive/CMakeLists.txt
---- a/Utilities/cmlibarchive/CMakeLists.txt 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/CMakeLists.txt 2021-02-12 14:39:59.857852509 +0330
-@@ -1612,7 +1612,7 @@ IF(NOT HAVE_PID_T)
- ENDIF(WIN32)
- ENDIF(NOT HAVE_PID_T)
- #
--CHECK_TYPE_SIZE(wchar_t SIZEOF_WCHAR_T)
-+CHECK_TYPE_SIZE(char SIZEOF_WCHAR_T)
- IF(HAVE_SIZEOF_WCHAR_T)
- SET(HAVE_WCHAR_T 1)
- ENDIF(HAVE_SIZEOF_WCHAR_T)
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_acl.c b/Utilities/cmlibarchive/libarchive/archive_acl.c
---- a/Utilities/cmlibarchive/libarchive/archive_acl.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_acl.c 2021-02-11 18:43:34.425862296 +0330
-@@ -46,7 +46,7 @@ __FBSDID("$FreeBSD$");
-
- #ifndef HAVE_WMEMCMP
- /* Good enough for simple equality testing, but not for sorting. */
--#define wmemcmp(a,b,i) memcmp((a), (b), (i) * sizeof(wchar_t))
-+#define wmemcmp(a,b,i) memcmp((a), (b), (i) * sizeof(char))
- #endif
-
- static int acl_special(struct archive_acl *acl,
-@@ -60,17 +60,17 @@ static int archive_acl_text_want_type(st
- static ssize_t archive_acl_text_len(struct archive_acl *acl, int want_type,
- int flags, int wide, struct archive *a,
- struct archive_string_conv *sc);
--static int isint_w(const wchar_t *start, const wchar_t *end, int *result);
--static int ismode_w(const wchar_t *start, const wchar_t *end, int *result);
--static int is_nfs4_flags_w(const wchar_t *start, const wchar_t *end,
-+static int isint_w(const char *start, const char *end, int *result);
-+static int ismode_w(const char *start, const char *end, int *result);
-+static int is_nfs4_flags_w(const char *start, const char *end,
- int *result);
--static int is_nfs4_perms_w(const wchar_t *start, const wchar_t *end,
-+static int is_nfs4_perms_w(const char *start, const char *end,
- int *result);
--static void next_field_w(const wchar_t **wp, const wchar_t **start,
-- const wchar_t **end, wchar_t *sep);
--static void append_entry_w(wchar_t **wp, const wchar_t *prefix, int type,
-- int tag, int flags, const wchar_t *wname, int perm, int id);
--static void append_id_w(wchar_t **wp, int id);
-+static void next_field_w(const char **wp, const char **start,
-+ const char **end, char *sep);
-+static void append_entry_w(char **wp, const char *prefix, int type,
-+ int tag, int flags, const char *wname, int perm, int id);
-+static void append_id_w(char **wp, int id);
- static int isint(const char *start, const char *end, int *result);
- static int ismode(const char *start, const char *end, int *result);
- static int is_nfs4_flags(const char *start, const char *end,
-@@ -86,7 +86,7 @@ static void append_id(char **p, int id);
- static const struct {
- const int perm;
- const char c;
-- const wchar_t wc;
-+ const char wc;
- } nfsv4_acl_perm_map[] = {
- { ARCHIVE_ENTRY_ACL_READ_DATA | ARCHIVE_ENTRY_ACL_LIST_DIRECTORY, 'r',
- L'r' },
-@@ -113,7 +113,7 @@ static const int nfsv4_acl_perm_map_size
- static const struct {
- const int perm;
- const char c;
-- const wchar_t wc;
-+ const char wc;
- } nfsv4_acl_flag_map[] = {
- { ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT, 'f', L'f' },
- { ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT, 'd', L'd' },
-@@ -187,7 +187,7 @@ archive_acl_add_entry(struct archive_acl
-
- int
- archive_acl_add_entry_w_len(struct archive_acl *acl,
-- int type, int permset, int tag, int id, const wchar_t *name, size_t len)
-+ int type, int permset, int tag, int id, const char *name, size_t len)
- {
- struct archive_acl_entry *ap;
-
-@@ -534,7 +534,7 @@ archive_acl_text_len(struct archive_acl
- int wide, struct archive *a, struct archive_string_conv *sc) {
- struct archive_acl_entry *ap;
- const char *name;
-- const wchar_t *wname;
-+ const char *wname;
- int count, idlen, tmp, r;
- ssize_t length;
- size_t len;
-@@ -660,19 +660,19 @@ archive_acl_text_len(struct archive_acl
- * Generate a wide text version of the ACL. The flags parameter controls
- * the type and style of the generated ACL.
- */
--wchar_t *
-+char *
- archive_acl_to_text_w(struct archive_acl *acl, ssize_t *text_len, int flags,
- struct archive *a)
- {
- int count;
- ssize_t length;
- size_t len;
-- const wchar_t *wname;
-- const wchar_t *prefix;
-- wchar_t separator;
-+ const char *wname;
-+ const char *prefix;
-+ char separator;
- struct archive_acl_entry *ap;
- int id, r, want_type;
-- wchar_t *wp, *ws;
-+ char *wp, *ws;
-
- want_type = archive_acl_text_want_type(acl, flags);
-
-@@ -694,7 +694,7 @@ archive_acl_to_text_w(struct archive_acl
- separator = L'\n';
-
- /* Now, allocate the string and actually populate it. */
-- wp = ws = (wchar_t *)malloc(length * sizeof(wchar_t));
-+ wp = ws = (char *)malloc(length * sizeof(char));
- if (wp == NULL) {
- if (errno == ENOMEM)
- __archive_errx(1, "No memory");
-@@ -731,7 +731,7 @@ archive_acl_to_text_w(struct archive_acl
- continue;
- if (ap->type == ARCHIVE_ENTRY_ACL_TYPE_DEFAULT &&
- (flags & ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT) != 0)
-- prefix = L"default:";
-+ prefix = "default:";
- else
- prefix = NULL;
- r = archive_mstring_get_wcs(a, &ap->name, &wname);
-@@ -766,18 +766,18 @@ archive_acl_to_text_w(struct archive_acl
- }
-
- static void
--append_id_w(wchar_t **wp, int id)
-+append_id_w(char **wp, int id)
- {
- if (id < 0)
- id = 0;
- if (id > 9)
- append_id_w(wp, id / 10);
-- *(*wp)++ = L"0123456789"[id % 10];
-+ *(*wp)++ = "0123456789"[id % 10];
- }
-
- static void
--append_entry_w(wchar_t **wp, const wchar_t *prefix, int type,
-- int tag, int flags, const wchar_t *wname, int perm, int id)
-+append_entry_w(char **wp, const char *prefix, int type,
-+ int tag, int flags, const char *wname, int perm, int id)
- {
- int i;
-
-@@ -790,36 +790,36 @@ append_entry_w(wchar_t **wp, const wchar
- wname = NULL;
- id = -1;
- if ((type & ARCHIVE_ENTRY_ACL_TYPE_NFS4) != 0) {
-- wcscpy(*wp, L"owner@");
-+ wcscpy(*wp, "owner@");
- break;
- }
- /* FALLTHROUGH */
- case ARCHIVE_ENTRY_ACL_USER:
-- wcscpy(*wp, L"user");
-+ wcscpy(*wp, "user");
- break;
- case ARCHIVE_ENTRY_ACL_GROUP_OBJ:
- wname = NULL;
- id = -1;
- if ((type & ARCHIVE_ENTRY_ACL_TYPE_NFS4) != 0) {
-- wcscpy(*wp, L"group@");
-+ wcscpy(*wp, "group@");
- break;
- }
- /* FALLTHROUGH */
- case ARCHIVE_ENTRY_ACL_GROUP:
-- wcscpy(*wp, L"group");
-+ wcscpy(*wp, "group");
- break;
- case ARCHIVE_ENTRY_ACL_MASK:
-- wcscpy(*wp, L"mask");
-+ wcscpy(*wp, "mask");
- wname = NULL;
- id = -1;
- break;
- case ARCHIVE_ENTRY_ACL_OTHER:
-- wcscpy(*wp, L"other");
-+ wcscpy(*wp, "other");
- wname = NULL;
- id = -1;
- break;
- case ARCHIVE_ENTRY_ACL_EVERYONE:
-- wcscpy(*wp, L"everyone@");
-+ wcscpy(*wp, "everyone@");
- wname = NULL;
- id = -1;
- break;
-@@ -867,16 +867,16 @@ append_entry_w(wchar_t **wp, const wchar
- *(*wp)++ = L':';
- switch (type) {
- case ARCHIVE_ENTRY_ACL_TYPE_ALLOW:
-- wcscpy(*wp, L"allow");
-+ wcscpy(*wp, "allow");
- break;
- case ARCHIVE_ENTRY_ACL_TYPE_DENY:
-- wcscpy(*wp, L"deny");
-+ wcscpy(*wp, "deny");
- break;
- case ARCHIVE_ENTRY_ACL_TYPE_AUDIT:
-- wcscpy(*wp, L"audit");
-+ wcscpy(*wp, "audit");
- break;
- case ARCHIVE_ENTRY_ACL_TYPE_ALARM:
-- wcscpy(*wp, L"alarm");
-+ wcscpy(*wp, "alarm");
- break;
- default:
- break;
-@@ -1134,20 +1134,20 @@ append_entry(char **p, const char *prefi
- * ARCHIVE_ENTRY_ACL_TYPE_DEFAULT unless type is ARCHIVE_ENTRY_ACL_TYPE_NFS4
- */
- int
--archive_acl_from_text_w(struct archive_acl *acl, const wchar_t *text,
-+archive_acl_from_text_w(struct archive_acl *acl, const char *text,
- int want_type)
- {
- struct {
-- const wchar_t *start;
-- const wchar_t *end;
-+ const char *start;
-+ const char *end;
- } field[6], name;
-
-- const wchar_t *s, *st;
-+ const char *s, *st;
-
- int numfields, fields, n, r, sol, ret;
- int type, types, tag, permset, id;
- size_t len;
-- wchar_t sep;
-+ char sep;
-
- ret = ARCHIVE_OK;
- types = 0;
-@@ -1174,7 +1174,7 @@ archive_acl_from_text_w(struct archive_a
- */
- fields = 0;
- do {
-- const wchar_t *start, *end;
-+ const char *start, *end;
- next_field_w(&text, &start, &end, &sep);
- if (fields < numfields) {
- field[fields].start = start;
-@@ -1211,7 +1211,7 @@ archive_acl_from_text_w(struct archive_a
- s = field[0].start;
- len = field[0].end - field[0].start;
- if (*s == L'd' && (len == 1 || (len >= 7
-- && wmemcmp((s + 1), L"efault", 6) == 0))) {
-+ && wmemcmp((s + 1), "efault", 6) == 0))) {
- type = ARCHIVE_ENTRY_ACL_TYPE_DEFAULT;
- if (len > 7)
- field[0].start += 7;
-@@ -1235,22 +1235,22 @@ archive_acl_from_text_w(struct archive_a
- switch (*s) {
- case L'u':
- if (len == 1 || (len == 4
-- && wmemcmp(st, L"ser", 3) == 0))
-+ && wmemcmp(st, "ser", 3) == 0))
- tag = ARCHIVE_ENTRY_ACL_USER_OBJ;
- break;
- case L'g':
- if (len == 1 || (len == 5
-- && wmemcmp(st, L"roup", 4) == 0))
-+ && wmemcmp(st, "roup", 4) == 0))
- tag = ARCHIVE_ENTRY_ACL_GROUP_OBJ;
- break;
- case L'o':
- if (len == 1 || (len == 5
-- && wmemcmp(st, L"ther", 4) == 0))
-+ && wmemcmp(st, "ther", 4) == 0))
- tag = ARCHIVE_ENTRY_ACL_OTHER;
- break;
- case L'm':
- if (len == 1 || (len == 4
-- && wmemcmp(st, L"ask", 3) == 0))
-+ && wmemcmp(st, "ask", 3) == 0))
- tag = ARCHIVE_ENTRY_ACL_MASK;
- break;
- default:
-@@ -1308,21 +1308,21 @@ archive_acl_from_text_w(struct archive_a
-
- switch (len) {
- case 4:
-- if (wmemcmp(s, L"user", 4) == 0)
-+ if (wmemcmp(s, "user", 4) == 0)
- tag = ARCHIVE_ENTRY_ACL_USER;
- break;
- case 5:
-- if (wmemcmp(s, L"group", 5) == 0)
-+ if (wmemcmp(s, "group", 5) == 0)
- tag = ARCHIVE_ENTRY_ACL_GROUP;
- break;
- case 6:
-- if (wmemcmp(s, L"owner@", 6) == 0)
-+ if (wmemcmp(s, "owner@", 6) == 0)
- tag = ARCHIVE_ENTRY_ACL_USER_OBJ;
-- else if (wmemcmp(s, L"group@", len) == 0)
-+ else if (wmemcmp(s, "group@", len) == 0)
- tag = ARCHIVE_ENTRY_ACL_GROUP_OBJ;
- break;
- case 9:
-- if (wmemcmp(s, L"everyone@", 9) == 0)
-+ if (wmemcmp(s, "everyone@", 9) == 0)
- tag = ARCHIVE_ENTRY_ACL_EVERYONE;
- default:
- break;
-@@ -1356,14 +1356,14 @@ archive_acl_from_text_w(struct archive_a
- len = field[3 + n].end - field[3 + n].start;
- type = 0;
- if (len == 4) {
-- if (wmemcmp(s, L"deny", 4) == 0)
-+ if (wmemcmp(s, "deny", 4) == 0)
- type = ARCHIVE_ENTRY_ACL_TYPE_DENY;
- } else if (len == 5) {
-- if (wmemcmp(s, L"allow", 5) == 0)
-+ if (wmemcmp(s, "allow", 5) == 0)
- type = ARCHIVE_ENTRY_ACL_TYPE_ALLOW;
-- else if (wmemcmp(s, L"audit", 5) == 0)
-+ else if (wmemcmp(s, "audit", 5) == 0)
- type = ARCHIVE_ENTRY_ACL_TYPE_AUDIT;
-- else if (wmemcmp(s, L"alarm", 5) == 0)
-+ else if (wmemcmp(s, "alarm", 5) == 0)
- type = ARCHIVE_ENTRY_ACL_TYPE_ALARM;
- }
- if (type == 0) {
-@@ -1396,7 +1396,7 @@ archive_acl_from_text_w(struct archive_a
- * false otherwise.
- */
- static int
--isint_w(const wchar_t *start, const wchar_t *end, int *result)
-+isint_w(const char *start, const char *end, int *result)
- {
- int n = 0;
- if (start >= end)
-@@ -1423,9 +1423,9 @@ isint_w(const wchar_t *start, const wcha
- * false otherwise.
- */
- static int
--ismode_w(const wchar_t *start, const wchar_t *end, int *permset)
-+ismode_w(const char *start, const char *end, int *permset)
- {
-- const wchar_t *p;
-+ const char *p;
-
- if (start >= end)
- return (0);
-@@ -1457,9 +1457,9 @@ ismode_w(const wchar_t *start, const wch
- * permission characters, false otherwise
- */
- static int
--is_nfs4_perms_w(const wchar_t *start, const wchar_t *end, int *permset)
-+is_nfs4_perms_w(const char *start, const char *end, int *permset)
- {
-- const wchar_t *p = start;
-+ const char *p = start;
-
- while (p < end) {
- switch (*p++) {
-@@ -1520,9 +1520,9 @@ is_nfs4_perms_w(const wchar_t *start, co
- * flag characters, false otherwise
- */
- static int
--is_nfs4_flags_w(const wchar_t *start, const wchar_t *end, int *permset)
-+is_nfs4_flags_w(const char *start, const char *end, int *permset)
- {
-- const wchar_t *p = start;
-+ const char *p = start;
-
- while (p < end) {
- switch(*p++) {
-@@ -1566,8 +1566,8 @@ is_nfs4_flags_w(const wchar_t *start, co
- * whitespace.
- */
- static void
--next_field_w(const wchar_t **wp, const wchar_t **start,
-- const wchar_t **end, wchar_t *sep)
-+next_field_w(const char **wp, const char **start,
-+ const char **end, char *sep)
- {
- /* Skip leading whitespace to find start of field. */
- while (**wp == L' ' || **wp == L'\t' || **wp == L'\n') {
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_acl_private.h b/Utilities/cmlibarchive/libarchive/archive_acl_private.h
---- a/Utilities/cmlibarchive/libarchive/archive_acl_private.h 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_acl_private.h 2021-02-11 18:43:34.392528437 +0330
-@@ -48,7 +48,7 @@ struct archive_acl {
- struct archive_acl_entry *acl_head;
- struct archive_acl_entry *acl_p;
- int acl_state; /* See acl_next for details. */
-- wchar_t *acl_text_w;
-+ char *acl_text_w;
- char *acl_text;
- int acl_types;
- };
-@@ -63,11 +63,11 @@ int archive_acl_next(struct archive *, s
-
- int archive_acl_add_entry(struct archive_acl *, int, int, int, int, const char *);
- int archive_acl_add_entry_w_len(struct archive_acl *,
-- int, int, int, int, const wchar_t *, size_t);
-+ int, int, int, int, const char *, size_t);
- int archive_acl_add_entry_len(struct archive_acl *,
- int, int, int, int, const char *, size_t);
-
--wchar_t *archive_acl_to_text_w(struct archive_acl *, ssize_t *, int,
-+char *archive_acl_to_text_w(struct archive_acl *, ssize_t *, int,
- struct archive *);
- char *archive_acl_to_text_l(struct archive_acl *, ssize_t *, int,
- struct archive_string_conv *);
-@@ -75,7 +75,7 @@ char *archive_acl_to_text_l(struct archi
- /*
- * ACL text parser.
- */
--int archive_acl_from_text_w(struct archive_acl *, const wchar_t * /* wtext */,
-+int archive_acl_from_text_w(struct archive_acl *, const char * /* wtext */,
- int /* type */);
- int archive_acl_from_text_l(struct archive_acl *, const char * /* text */,
- int /* type */, struct archive_string_conv *);
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_entry_acl.3 b/Utilities/cmlibarchive/libarchive/archive_entry_acl.3
---- a/Utilities/cmlibarchive/libarchive/archive_entry_acl.3 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_entry_acl.3 2021-02-11 18:43:34.399195209 +0330
-@@ -59,7 +59,7 @@ Streaming Archive Library (libarchive, -
- .Fa "int permset"
- .Fa "int tag"
- .Fa "int qualifier"
--.Fa "const wchar_t *name"
-+.Fa "const char *name"
- .Fc
- .Ft void
- .Fn archive_entry_acl_clear "struct archive_entry *a"
-@@ -74,7 +74,7 @@ Streaming Archive Library (libarchive, -
- .Ft int
- .Fo archive_entry_acl_from_text_w
- .Fa "struct archive_entry *a"
--.Fa "const wchar_t *text"
-+.Fa "const char *text"
- .Fa "int type"
- .Fc
- .Ft int
-@@ -95,7 +95,7 @@ Streaming Archive Library (libarchive, -
- .Fa "ssize_t *len_p"
- .Fa "int flags"
- .Fc
--.Ft wchar_t *
-+.Ft char *
- .Fo archive_entry_acl_to_text_w
- .Fa "struct archive_entry *a"
- .Fa "ssize_t *len_p"
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_entry.c b/Utilities/cmlibarchive/libarchive/archive_entry.c
---- a/Utilities/cmlibarchive/libarchive/archive_entry.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_entry.c 2021-02-11 18:43:34.392528437 +0330
-@@ -117,24 +117,24 @@ __FBSDID("$FreeBSD: head/lib/libarchive/
- } while (0)
-
- static char * ae_fflagstostr(unsigned long bitset, unsigned long bitclear);
--static const wchar_t *ae_wcstofflags(const wchar_t *stringp,
-+static const char *ae_wcstofflags(const char *stringp,
- unsigned long *setp, unsigned long *clrp);
- static const char *ae_strtofflags(const char *stringp,
- unsigned long *setp, unsigned long *clrp);
-
- #ifndef HAVE_WCSCPY
--static wchar_t * wcscpy(wchar_t *s1, const wchar_t *s2)
-+static char * wcscpy(char *s1, const char *s2)
- {
-- wchar_t *dest = s1;
-+ char *dest = s1;
- while ((*s1 = *s2) != L'\0')
- ++s1, ++s2;
- return dest;
- }
- #endif
- #ifndef HAVE_WCSLEN
--static size_t wcslen(const wchar_t *s)
-+static size_t wcslen(const char *s)
- {
-- const wchar_t *p = s;
-+ const char *p = s;
- while (*p != L'\0')
- ++p;
- return p - s;
-@@ -142,7 +142,7 @@ static size_t wcslen(const wchar_t *s)
- #endif
- #ifndef HAVE_WMEMCMP
- /* Good enough for simple equality testing, but not for sorting. */
--#define wmemcmp(a,b,i) memcmp((a), (b), (i) * sizeof(wchar_t))
-+#define wmemcmp(a,b,i) memcmp((a), (b), (i) * sizeof(char))
- #endif
-
- /****************************************************************************
-@@ -435,10 +435,10 @@ archive_entry_gname_utf8(struct archive_
- }
-
-
--const wchar_t *
-+const char *
- archive_entry_gname_w(struct archive_entry *entry)
- {
-- const wchar_t *p;
-+ const char *p;
- if (archive_mstring_get_wcs(entry->archive, &entry->ae_gname, &p) == 0)
- return (p);
- if (errno == ENOMEM)
-@@ -481,10 +481,10 @@ archive_entry_hardlink_utf8(struct archi
- return (NULL);
- }
-
--const wchar_t *
-+const char *
- archive_entry_hardlink_w(struct archive_entry *entry)
- {
-- const wchar_t *p;
-+ const char *p;
- if ((entry->ae_set & AE_SET_HARDLINK) == 0)
- return (NULL);
- if (archive_mstring_get_wcs(
-@@ -579,10 +579,10 @@ archive_entry_pathname_utf8(struct archi
- return (NULL);
- }
-
--const wchar_t *
-+const char *
- archive_entry_pathname_w(struct archive_entry *entry)
- {
-- const wchar_t *p;
-+ const char *p;
- if (archive_mstring_get_wcs(
- entry->archive, &entry->ae_pathname, &p) == 0)
- return (p);
-@@ -656,10 +656,10 @@ archive_entry_sourcepath(struct archive_
- return (NULL);
- }
-
--const wchar_t *
-+const char *
- archive_entry_sourcepath_w(struct archive_entry *entry)
- {
-- const wchar_t *p;
-+ const char *p;
- if (archive_mstring_get_wcs(
- entry->archive, &entry->ae_sourcepath, &p) == 0)
- return (p);
-@@ -700,10 +700,10 @@ archive_entry_symlink_utf8(struct archiv
- return (NULL);
- }
-
--const wchar_t *
-+const char *
- archive_entry_symlink_w(struct archive_entry *entry)
- {
-- const wchar_t *p;
-+ const char *p;
- if ((entry->ae_set & AE_SET_SYMLINK) == 0)
- return (NULL);
- if (archive_mstring_get_wcs(
-@@ -754,10 +754,10 @@ archive_entry_uname_utf8(struct archive_
- return (NULL);
- }
-
--const wchar_t *
-+const char *
- archive_entry_uname_w(struct archive_entry *entry)
- {
-- const wchar_t *p;
-+ const char *p;
- if (archive_mstring_get_wcs(entry->archive, &entry->ae_uname, &p) == 0)
- return (p);
- if (errno == ENOMEM)
-@@ -820,9 +820,9 @@ archive_entry_copy_fflags_text(struct ar
- &entry->ae_fflags_set, &entry->ae_fflags_clear));
- }
-
--const wchar_t *
-+const char *
- archive_entry_copy_fflags_text_w(struct archive_entry *entry,
-- const wchar_t *flags)
-+ const char *flags)
- {
- archive_mstring_copy_wcs(&entry->ae_fflags_text, flags);
- return (ae_wcstofflags(flags,
-@@ -855,7 +855,7 @@ archive_entry_copy_gname(struct archive_
- }
-
- void
--archive_entry_copy_gname_w(struct archive_entry *entry, const wchar_t *name)
-+archive_entry_copy_gname_w(struct archive_entry *entry, const char *name)
- {
- archive_mstring_copy_wcs(&entry->ae_gname, name);
- }
-@@ -925,7 +925,7 @@ archive_entry_copy_hardlink(struct archi
- }
-
- void
--archive_entry_copy_hardlink_w(struct archive_entry *entry, const wchar_t *target)
-+archive_entry_copy_hardlink_w(struct archive_entry *entry, const char *target)
- {
- archive_mstring_copy_wcs(&entry->ae_hardlink, target);
- if (target != NULL)
-@@ -1073,7 +1073,7 @@ archive_entry_copy_link(struct archive_e
-
- /* Set symlink if symlink is already set, else set hardlink. */
- void
--archive_entry_copy_link_w(struct archive_entry *entry, const wchar_t *target)
-+archive_entry_copy_link_w(struct archive_entry *entry, const char *target)
- {
- if (entry->ae_set & AE_SET_SYMLINK)
- archive_mstring_copy_wcs(&entry->ae_symlink, target);
-@@ -1163,7 +1163,7 @@ archive_entry_copy_pathname(struct archi
- }
-
- void
--archive_entry_copy_pathname_w(struct archive_entry *entry, const wchar_t *name)
-+archive_entry_copy_pathname_w(struct archive_entry *entry, const char *name)
- {
- archive_mstring_copy_wcs(&entry->ae_pathname, name);
- }
-@@ -1241,7 +1241,7 @@ archive_entry_copy_sourcepath(struct arc
- }
-
- void
--archive_entry_copy_sourcepath_w(struct archive_entry *entry, const wchar_t *path)
-+archive_entry_copy_sourcepath_w(struct archive_entry *entry, const char *path)
- {
- archive_mstring_copy_wcs(&entry->ae_sourcepath, path);
- }
-@@ -1283,7 +1283,7 @@ archive_entry_copy_symlink(struct archiv
- }
-
- void
--archive_entry_copy_symlink_w(struct archive_entry *entry, const wchar_t *linkname)
-+archive_entry_copy_symlink_w(struct archive_entry *entry, const char *linkname)
- {
- archive_mstring_copy_wcs(&entry->ae_symlink, linkname);
- if (linkname != NULL)
-@@ -1348,7 +1348,7 @@ archive_entry_copy_uname(struct archive_
- }
-
- void
--archive_entry_copy_uname_w(struct archive_entry *entry, const wchar_t *name)
-+archive_entry_copy_uname_w(struct archive_entry *entry, const char *name)
- {
- archive_mstring_copy_wcs(&entry->ae_uname, name);
- }
-@@ -1452,7 +1452,7 @@ archive_entry_acl_add_entry(struct archi
- */
- int
- archive_entry_acl_add_entry_w(struct archive_entry *entry,
-- int type, int permset, int tag, int id, const wchar_t *name)
-+ int type, int permset, int tag, int id, const char *name)
- {
- return archive_acl_add_entry_w_len(&entry->acl,
- type, permset, tag, id, name, wcslen(name));
-@@ -1507,7 +1507,7 @@ archive_entry_acl_next(struct archive_en
- * Generate a text version of the ACL. The flags parameter controls
- * the style of the generated ACL.
- */
--wchar_t *
-+char *
- archive_entry_acl_to_text_w(struct archive_entry *entry, la_ssize_t *len,
- int flags)
- {
-@@ -1534,7 +1534,7 @@ _archive_entry_acl_to_text_l(struct arch
- */
- int
- archive_entry_acl_from_text_w(struct archive_entry *entry,
-- const wchar_t *wtext, int type)
-+ const char *wtext, int type)
- {
- return (archive_acl_from_text_w(&entry->acl, wtext, type));
- }
-@@ -1574,7 +1574,7 @@ archive_entry_acl_text_compat(int *flags
- }
-
- /* Deprecated */
--const wchar_t *
-+const char *
- archive_entry_acl_text_w(struct archive_entry *entry, int flags)
- {
- free(entry->acl.acl_text_w);
-@@ -1696,166 +1696,166 @@ _archive_entry_acl_text_l(struct archive
-
- static const struct flag {
- const char *name;
-- const wchar_t *wname;
-+ const char *wname;
- unsigned long set;
- unsigned long clear;
- } fileflags[] = {
- /* Preferred (shorter) names per flag first, all prefixed by "no" */
- #ifdef SF_APPEND
-- { "nosappnd", L"nosappnd", SF_APPEND, 0},
-- { "nosappend", L"nosappend", SF_APPEND, 0},
-+ { "nosappnd", "nosappnd", SF_APPEND, 0},
-+ { "nosappend", "nosappend", SF_APPEND, 0},
- #endif
- #if defined(FS_APPEND_FL) /* 'a' */
-- { "nosappnd", L"nosappnd", FS_APPEND_FL, 0},
-- { "nosappend", L"nosappend", FS_APPEND_FL, 0},
-+ { "nosappnd", "nosappnd", FS_APPEND_FL, 0},
-+ { "nosappend", "nosappend", FS_APPEND_FL, 0},
- #elif defined(EXT2_APPEND_FL) /* 'a' */
-- { "nosappnd", L"nosappnd", EXT2_APPEND_FL, 0},
-- { "nosappend", L"nosappend", EXT2_APPEND_FL, 0},
-+ { "nosappnd", "nosappnd", EXT2_APPEND_FL, 0},
-+ { "nosappend", "nosappend", EXT2_APPEND_FL, 0},
- #endif
- #ifdef SF_ARCHIVED
-- { "noarch", L"noarch", SF_ARCHIVED, 0},
-- { "noarchived", L"noarchived", SF_ARCHIVED, 0},
-+ { "noarch", "noarch", SF_ARCHIVED, 0},
-+ { "noarchived", "noarchived", SF_ARCHIVED, 0},
- #endif
- #ifdef SF_IMMUTABLE
-- { "noschg", L"noschg", SF_IMMUTABLE, 0},
-- { "noschange", L"noschange", SF_IMMUTABLE, 0},
-- { "nosimmutable", L"nosimmutable", SF_IMMUTABLE, 0},
-+ { "noschg", "noschg", SF_IMMUTABLE, 0},
-+ { "noschange", "noschange", SF_IMMUTABLE, 0},
-+ { "nosimmutable", "nosimmutable", SF_IMMUTABLE, 0},
- #endif
- #if defined(FS_IMMUTABLE_FL) /* 'i' */
-- { "noschg", L"noschg", FS_IMMUTABLE_FL, 0},
-- { "noschange", L"noschange", FS_IMMUTABLE_FL, 0},
-- { "nosimmutable", L"nosimmutable", FS_IMMUTABLE_FL, 0},
-+ { "noschg", "noschg", FS_IMMUTABLE_FL, 0},
-+ { "noschange", "noschange", FS_IMMUTABLE_FL, 0},
-+ { "nosimmutable", "nosimmutable", FS_IMMUTABLE_FL, 0},
- #elif defined(EXT2_IMMUTABLE_FL) /* 'i' */
-- { "noschg", L"noschg", EXT2_IMMUTABLE_FL, 0},
-- { "noschange", L"noschange", EXT2_IMMUTABLE_FL, 0},
-- { "nosimmutable", L"nosimmutable", EXT2_IMMUTABLE_FL, 0},
-+ { "noschg", "noschg", EXT2_IMMUTABLE_FL, 0},
-+ { "noschange", "noschange", EXT2_IMMUTABLE_FL, 0},
-+ { "nosimmutable", "nosimmutable", EXT2_IMMUTABLE_FL, 0},
- #endif
- #ifdef SF_NOUNLINK
-- { "nosunlnk", L"nosunlnk", SF_NOUNLINK, 0},
-- { "nosunlink", L"nosunlink", SF_NOUNLINK, 0},
-+ { "nosunlnk", "nosunlnk", SF_NOUNLINK, 0},
-+ { "nosunlink", "nosunlink", SF_NOUNLINK, 0},
- #endif
- #ifdef UF_APPEND
-- { "nouappnd", L"nouappnd", UF_APPEND, 0},
-- { "nouappend", L"nouappend", UF_APPEND, 0},
-+ { "nouappnd", "nouappnd", UF_APPEND, 0},
-+ { "nouappend", "nouappend", UF_APPEND, 0},
- #endif
- #ifdef UF_IMMUTABLE
-- { "nouchg", L"nouchg", UF_IMMUTABLE, 0},
-- { "nouchange", L"nouchange", UF_IMMUTABLE, 0},
-- { "nouimmutable", L"nouimmutable", UF_IMMUTABLE, 0},
-+ { "nouchg", "nouchg", UF_IMMUTABLE, 0},
-+ { "nouchange", "nouchange", UF_IMMUTABLE, 0},
-+ { "nouimmutable", "nouimmutable", UF_IMMUTABLE, 0},
- #endif
- #ifdef UF_NODUMP
-- { "nodump", L"nodump", 0, UF_NODUMP},
-+ { "nodump", "nodump", 0, UF_NODUMP},
- #endif
- #if defined(FS_NODUMP_FL) /* 'd' */
-- { "nodump", L"nodump", 0, FS_NODUMP_FL},
-+ { "nodump", "nodump", 0, FS_NODUMP_FL},
- #elif defined(EXT2_NODUMP_FL)
-- { "nodump", L"nodump", 0, EXT2_NODUMP_FL},
-+ { "nodump", "nodump", 0, EXT2_NODUMP_FL},
- #endif
- #ifdef UF_OPAQUE
-- { "noopaque", L"noopaque", UF_OPAQUE, 0},
-+ { "noopaque", "noopaque", UF_OPAQUE, 0},
- #endif
- #ifdef UF_NOUNLINK
-- { "nouunlnk", L"nouunlnk", UF_NOUNLINK, 0},
-- { "nouunlink", L"nouunlink", UF_NOUNLINK, 0},
-+ { "nouunlnk", "nouunlnk", UF_NOUNLINK, 0},
-+ { "nouunlink", "nouunlink", UF_NOUNLINK, 0},
- #endif
- #ifdef UF_COMPRESSED
- /* Mac OS */
-- { "nocompressed", L"nocompressed", UF_COMPRESSED, 0},
-+ { "nocompressed", "nocompressed", UF_COMPRESSED, 0},
- #endif
- #ifdef UF_HIDDEN
-- { "nohidden", L"nohidden", UF_HIDDEN, 0},
-- { "nouhidden", L"nouhidden", UF_HIDDEN, 0},
-+ { "nohidden", "nohidden", UF_HIDDEN, 0},
-+ { "nouhidden", "nouhidden", UF_HIDDEN, 0},
- #endif
- #ifdef FILE_ATTRIBUTE_HIDDEN
-- { "nohidden", L"nohidden", FILE_ATTRIBUTE_HIDDEN, 0},
-- { "nouhidden", L"nouhidden", FILE_ATTRIBUTE_HIDDEN, 0},
-+ { "nohidden", "nohidden", FILE_ATTRIBUTE_HIDDEN, 0},
-+ { "nouhidden", "nouhidden", FILE_ATTRIBUTE_HIDDEN, 0},
- #endif
- #ifdef UF_OFFLINE
-- { "nooffline", L"nooffline", UF_OFFLINE, 0},
-- { "nouoffline", L"nouoffline", UF_OFFLINE, 0},
-+ { "nooffline", "nooffline", UF_OFFLINE, 0},
-+ { "nouoffline", "nouoffline", UF_OFFLINE, 0},
- #endif
- #ifdef UF_READONLY
-- { "nordonly", L"nordonly", UF_READONLY, 0},
-- { "nourdonly", L"nourdonly", UF_READONLY, 0},
-- { "noreadonly", L"noreadonly", UF_READONLY, 0},
-+ { "nordonly", "nordonly", UF_READONLY, 0},
-+ { "nourdonly", "nourdonly", UF_READONLY, 0},
-+ { "noreadonly", "noreadonly", UF_READONLY, 0},
- #endif
- #ifdef FILE_ATTRIBUTE_READONLY
-- { "nordonly", L"nordonly", FILE_ATTRIBUTE_READONLY, 0},
-- { "nourdonly", L"nourdonly", FILE_ATTRIBUTE_READONLY, 0},
-- { "noreadonly", L"noreadonly", FILE_ATTRIBUTE_READONLY, 0},
-+ { "nordonly", "nordonly", FILE_ATTRIBUTE_READONLY, 0},
-+ { "nourdonly", "nourdonly", FILE_ATTRIBUTE_READONLY, 0},
-+ { "noreadonly", "noreadonly", FILE_ATTRIBUTE_READONLY, 0},
- #endif
- #ifdef UF_SPARSE
-- { "nosparse", L"nosparse", UF_SPARSE, 0},
-- { "nousparse", L"nousparse", UF_SPARSE, 0},
-+ { "nosparse", "nosparse", UF_SPARSE, 0},
-+ { "nousparse", "nousparse", UF_SPARSE, 0},
- #endif
- #ifdef UF_REPARSE
-- { "noreparse", L"noreparse", UF_REPARSE, 0},
-- { "noureparse", L"noureparse", UF_REPARSE, 0},
-+ { "noreparse", "noreparse", UF_REPARSE, 0},
-+ { "noureparse", "noureparse", UF_REPARSE, 0},
- #endif
- #ifdef UF_SYSTEM
-- { "nosystem", L"nosystem", UF_SYSTEM, 0},
-- { "nousystem", L"nousystem", UF_SYSTEM, 0},
-+ { "nosystem", "nosystem", UF_SYSTEM, 0},
-+ { "nousystem", "nousystem", UF_SYSTEM, 0},
- #endif
- #ifdef FILE_ATTRIBUTE_SYSTEM
-- { "nosystem", L"nosystem", FILE_ATTRIBUTE_SYSTEM, 0},
-- { "nousystem", L"nousystem", FILE_ATTRIBUTE_SYSTEM, 0},
-+ { "nosystem", "nosystem", FILE_ATTRIBUTE_SYSTEM, 0},
-+ { "nousystem", "nousystem", FILE_ATTRIBUTE_SYSTEM, 0},
- #endif
- #if defined(FS_UNRM_FL) /* 'u' */
-- { "noundel", L"noundel", FS_UNRM_FL, 0},
-+ { "noundel", "noundel", FS_UNRM_FL, 0},
- #elif defined(EXT2_UNRM_FL)
-- { "noundel", L"noundel", EXT2_UNRM_FL, 0},
-+ { "noundel", "noundel", EXT2_UNRM_FL, 0},
- #endif
-
- #if defined(FS_COMPR_FL) /* 'c' */
-- { "nocompress", L"nocompress", FS_COMPR_FL, 0},
-+ { "nocompress", "nocompress", FS_COMPR_FL, 0},
- #elif defined(EXT2_COMPR_FL)
-- { "nocompress", L"nocompress", EXT2_COMPR_FL, 0},
-+ { "nocompress", "nocompress", EXT2_COMPR_FL, 0},
- #endif
-
- #if defined(FS_NOATIME_FL) /* 'A' */
-- { "noatime", L"noatime", 0, FS_NOATIME_FL},
-+ { "noatime", "noatime", 0, FS_NOATIME_FL},
- #elif defined(EXT2_NOATIME_FL)
-- { "noatime", L"noatime", 0, EXT2_NOATIME_FL},
-+ { "noatime", "noatime", 0, EXT2_NOATIME_FL},
- #endif
- #if defined(FS_DIRSYNC_FL) /* 'D' */
-- { "nodirsync", L"nodirsync", FS_DIRSYNC_FL, 0},
-+ { "nodirsync", "nodirsync", FS_DIRSYNC_FL, 0},
- #elif defined(EXT2_DIRSYNC_FL)
-- { "nodirsync", L"nodirsync", EXT2_DIRSYNC_FL, 0},
-+ { "nodirsync", "nodirsync", EXT2_DIRSYNC_FL, 0},
- #endif
- #if defined(FS_JOURNAL_DATA_FL) /* 'j' */
-- { "nojournal-data",L"nojournal-data", FS_JOURNAL_DATA_FL, 0},
-- { "nojournal", L"nojournal", FS_JOURNAL_DATA_FL, 0},
-+ { "nojournal-data","nojournal-data", FS_JOURNAL_DATA_FL, 0},
-+ { "nojournal", "nojournal", FS_JOURNAL_DATA_FL, 0},
- #elif defined(EXT3_JOURNAL_DATA_FL)
-- { "nojournal-data",L"nojournal-data", EXT3_JOURNAL_DATA_FL, 0},
-- { "nojournal", L"nojournal", EXT3_JOURNAL_DATA_FL, 0},
-+ { "nojournal-data","nojournal-data", EXT3_JOURNAL_DATA_FL, 0},
-+ { "nojournal", "nojournal", EXT3_JOURNAL_DATA_FL, 0},
- #endif
- #if defined(FS_SECRM_FL) /* 's' */
-- { "nosecdel", L"nosecdel", FS_SECRM_FL, 0},
-- { "nosecuredeletion",L"nosecuredeletion",FS_SECRM_FL, 0},
-+ { "nosecdel", "nosecdel", FS_SECRM_FL, 0},
-+ { "nosecuredeletion","nosecuredeletion",FS_SECRM_FL, 0},
- #elif defined(EXT2_SECRM_FL)
-- { "nosecdel", L"nosecdel", EXT2_SECRM_FL, 0},
-- { "nosecuredeletion",L"nosecuredeletion",EXT2_SECRM_FL, 0},
-+ { "nosecdel", "nosecdel", EXT2_SECRM_FL, 0},
-+ { "nosecuredeletion","nosecuredeletion",EXT2_SECRM_FL, 0},
- #endif
- #if defined(FS_SYNC_FL) /* 'S' */
-- { "nosync", L"nosync", FS_SYNC_FL, 0},
-+ { "nosync", "nosync", FS_SYNC_FL, 0},
- #elif defined(EXT2_SYNC_FL)
-- { "nosync", L"nosync", EXT2_SYNC_FL, 0},
-+ { "nosync", "nosync", EXT2_SYNC_FL, 0},
- #endif
- #if defined(FS_NOTAIL_FL) /* 't' */
-- { "notail", L"notail", 0, FS_NOTAIL_FL},
-+ { "notail", "notail", 0, FS_NOTAIL_FL},
- #elif defined(EXT2_NOTAIL_FL)
-- { "notail", L"notail", 0, EXT2_NOTAIL_FL},
-+ { "notail", "notail", 0, EXT2_NOTAIL_FL},
- #endif
- #if defined(FS_TOPDIR_FL) /* 'T' */
-- { "notopdir", L"notopdir", FS_TOPDIR_FL, 0},
-+ { "notopdir", "notopdir", FS_TOPDIR_FL, 0},
- #elif defined(EXT2_TOPDIR_FL)
-- { "notopdir", L"notopdir", EXT2_TOPDIR_FL, 0},
-+ { "notopdir", "notopdir", EXT2_TOPDIR_FL, 0},
- #endif
- #ifdef FS_NOCOW_FL /* 'C' */
-- { "nocow", L"nocow", 0, FS_NOCOW_FL},
-+ { "nocow", "nocow", 0, FS_NOCOW_FL},
- #endif
- #ifdef FS_PROJINHERIT_FL /* 'P' */
-- { "noprojinherit",L"noprojinherit", FS_PROJINHERIT_FL, 0},
-+ { "noprojinherit","noprojinherit", FS_PROJINHERIT_FL, 0},
- #endif
- { NULL, NULL, 0, 0}
- };
-@@ -1987,13 +1987,13 @@ ae_strtofflags(const char *s, unsigned l
- * This version is also const-correct and does not modify the
- * provided string.
- */
--static const wchar_t *
--ae_wcstofflags(const wchar_t *s, unsigned long *setp, unsigned long *clrp)
-+static const char *
-+ae_wcstofflags(const char *s, unsigned long *setp, unsigned long *clrp)
- {
-- const wchar_t *start, *end;
-+ const char *start, *end;
- const struct flag *flag;
- unsigned long set, clear;
-- const wchar_t *failed;
-+ const char *failed;
-
- set = clear = 0;
- start = s;
-@@ -2053,14 +2053,14 @@ main(int argc, char **argv)
- {
- struct archive_entry *entry = archive_entry_new();
- unsigned long set, clear;
-- const wchar_t *remainder;
-+ const char *remainder;
-
-- remainder = archive_entry_copy_fflags_text_w(entry, L"nosappnd dump archive,,,,,,,");
-+ remainder = archive_entry_copy_fflags_text_w(entry, "nosappnd dump archive,,,,,,,");
- archive_entry_fflags(entry, &set, &clear);
-
-- wprintf(L"set=0x%lX clear=0x%lX remainder='%ls'\n", set, clear, remainder);
-+ wprintf("set=0x%lX clear=0x%lX remainder='%ls'\n", set, clear, remainder);
-
-- wprintf(L"new flags='%s'\n", archive_entry_fflags_text(entry));
-+ wprintf("new flags='%s'\n", archive_entry_fflags_text(entry));
- return (0);
- }
- #endif
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_entry.h b/Utilities/cmlibarchive/libarchive/archive_entry.h
---- a/Utilities/cmlibarchive/libarchive/archive_entry.h 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_entry.h 2021-02-11 18:43:34.442529226 +0330
-@@ -41,7 +41,7 @@
- */
-
- #include <sys/types.h>
--#include <stddef.h> /* for wchar_t */
-+#include <stddef.h> /* for char */
- #include <stdint.h>
- #include <time.h>
-
-@@ -253,10 +253,10 @@ __LA_DECL const char *archive_entry_ffla
- __LA_DECL la_int64_t archive_entry_gid(struct archive_entry *);
- __LA_DECL const char *archive_entry_gname(struct archive_entry *);
- __LA_DECL const char *archive_entry_gname_utf8(struct archive_entry *);
--__LA_DECL const wchar_t *archive_entry_gname_w(struct archive_entry *);
-+__LA_DECL const char *archive_entry_gname_w(struct archive_entry *);
- __LA_DECL const char *archive_entry_hardlink(struct archive_entry *);
- __LA_DECL const char *archive_entry_hardlink_utf8(struct archive_entry *);
--__LA_DECL const wchar_t *archive_entry_hardlink_w(struct archive_entry *);
-+__LA_DECL const char *archive_entry_hardlink_w(struct archive_entry *);
- __LA_DECL la_int64_t archive_entry_ino(struct archive_entry *);
- __LA_DECL la_int64_t archive_entry_ino64(struct archive_entry *);
- __LA_DECL int archive_entry_ino_is_set(struct archive_entry *);
-@@ -267,24 +267,24 @@ __LA_DECL int archive_entry_mtime_is_s
- __LA_DECL unsigned int archive_entry_nlink(struct archive_entry *);
- __LA_DECL const char *archive_entry_pathname(struct archive_entry *);
- __LA_DECL const char *archive_entry_pathname_utf8(struct archive_entry *);
--__LA_DECL const wchar_t *archive_entry_pathname_w(struct archive_entry *);
-+__LA_DECL const char *archive_entry_pathname_w(struct archive_entry *);
- __LA_DECL __LA_MODE_T archive_entry_perm(struct archive_entry *);
- __LA_DECL dev_t archive_entry_rdev(struct archive_entry *);
- __LA_DECL dev_t archive_entry_rdevmajor(struct archive_entry *);
- __LA_DECL dev_t archive_entry_rdevminor(struct archive_entry *);
- __LA_DECL const char *archive_entry_sourcepath(struct archive_entry *);
--__LA_DECL const wchar_t *archive_entry_sourcepath_w(struct archive_entry *);
-+__LA_DECL const char *archive_entry_sourcepath_w(struct archive_entry *);
- __LA_DECL la_int64_t archive_entry_size(struct archive_entry *);
- __LA_DECL int archive_entry_size_is_set(struct archive_entry *);
- __LA_DECL const char *archive_entry_strmode(struct archive_entry *);
- __LA_DECL const char *archive_entry_symlink(struct archive_entry *);
- __LA_DECL const char *archive_entry_symlink_utf8(struct archive_entry *);
- __LA_DECL int archive_entry_symlink_type(struct archive_entry *);
--__LA_DECL const wchar_t *archive_entry_symlink_w(struct archive_entry *);
-+__LA_DECL const char *archive_entry_symlink_w(struct archive_entry *);
- __LA_DECL la_int64_t archive_entry_uid(struct archive_entry *);
- __LA_DECL const char *archive_entry_uname(struct archive_entry *);
- __LA_DECL const char *archive_entry_uname_utf8(struct archive_entry *);
--__LA_DECL const wchar_t *archive_entry_uname_w(struct archive_entry *);
-+__LA_DECL const char *archive_entry_uname_w(struct archive_entry *);
- __LA_DECL int archive_entry_is_data_encrypted(struct archive_entry *);
- __LA_DECL int archive_entry_is_metadata_encrypted(struct archive_entry *);
- __LA_DECL int archive_entry_is_encrypted(struct archive_entry *);
-@@ -317,25 +317,25 @@ __LA_DECL void archive_entry_set_fflags(
- /* Note that all recognized tokens are processed, regardless. */
- __LA_DECL const char *archive_entry_copy_fflags_text(struct archive_entry *,
- const char *);
--__LA_DECL const wchar_t *archive_entry_copy_fflags_text_w(struct archive_entry *,
-- const wchar_t *);
-+__LA_DECL const char *archive_entry_copy_fflags_text_w(struct archive_entry *,
-+ const char *);
- __LA_DECL void archive_entry_set_gid(struct archive_entry *, la_int64_t);
- __LA_DECL void archive_entry_set_gname(struct archive_entry *, const char *);
- __LA_DECL void archive_entry_set_gname_utf8(struct archive_entry *, const char *);
- __LA_DECL void archive_entry_copy_gname(struct archive_entry *, const char *);
--__LA_DECL void archive_entry_copy_gname_w(struct archive_entry *, const wchar_t *);
-+__LA_DECL void archive_entry_copy_gname_w(struct archive_entry *, const char *);
- __LA_DECL int archive_entry_update_gname_utf8(struct archive_entry *, const char *);
- __LA_DECL void archive_entry_set_hardlink(struct archive_entry *, const char *);
- __LA_DECL void archive_entry_set_hardlink_utf8(struct archive_entry *, const char *);
- __LA_DECL void archive_entry_copy_hardlink(struct archive_entry *, const char *);
--__LA_DECL void archive_entry_copy_hardlink_w(struct archive_entry *, const wchar_t *);
-+__LA_DECL void archive_entry_copy_hardlink_w(struct archive_entry *, const char *);
- __LA_DECL int archive_entry_update_hardlink_utf8(struct archive_entry *, const char *);
- __LA_DECL void archive_entry_set_ino(struct archive_entry *, la_int64_t);
- __LA_DECL void archive_entry_set_ino64(struct archive_entry *, la_int64_t);
- __LA_DECL void archive_entry_set_link(struct archive_entry *, const char *);
- __LA_DECL void archive_entry_set_link_utf8(struct archive_entry *, const char *);
- __LA_DECL void archive_entry_copy_link(struct archive_entry *, const char *);
--__LA_DECL void archive_entry_copy_link_w(struct archive_entry *, const wchar_t *);
-+__LA_DECL void archive_entry_copy_link_w(struct archive_entry *, const char *);
- __LA_DECL int archive_entry_update_link_utf8(struct archive_entry *, const char *);
- __LA_DECL void archive_entry_set_mode(struct archive_entry *, __LA_MODE_T);
- __LA_DECL void archive_entry_set_mtime(struct archive_entry *, time_t, long);
-@@ -344,7 +344,7 @@ __LA_DECL void archive_entry_set_nlink(s
- __LA_DECL void archive_entry_set_pathname(struct archive_entry *, const char *);
- __LA_DECL void archive_entry_set_pathname_utf8(struct archive_entry *, const char *);
- __LA_DECL void archive_entry_copy_pathname(struct archive_entry *, const char *);
--__LA_DECL void archive_entry_copy_pathname_w(struct archive_entry *, const wchar_t *);
-+__LA_DECL void archive_entry_copy_pathname_w(struct archive_entry *, const char *);
- __LA_DECL int archive_entry_update_pathname_utf8(struct archive_entry *, const char *);
- __LA_DECL void archive_entry_set_perm(struct archive_entry *, __LA_MODE_T);
- __LA_DECL void archive_entry_set_rdev(struct archive_entry *, dev_t);
-@@ -353,18 +353,18 @@ __LA_DECL void archive_entry_set_rdevmin
- __LA_DECL void archive_entry_set_size(struct archive_entry *, la_int64_t);
- __LA_DECL void archive_entry_unset_size(struct archive_entry *);
- __LA_DECL void archive_entry_copy_sourcepath(struct archive_entry *, const char *);
--__LA_DECL void archive_entry_copy_sourcepath_w(struct archive_entry *, const wchar_t *);
-+__LA_DECL void archive_entry_copy_sourcepath_w(struct archive_entry *, const char *);
- __LA_DECL void archive_entry_set_symlink(struct archive_entry *, const char *);
- __LA_DECL void archive_entry_set_symlink_type(struct archive_entry *, int);
- __LA_DECL void archive_entry_set_symlink_utf8(struct archive_entry *, const char *);
- __LA_DECL void archive_entry_copy_symlink(struct archive_entry *, const char *);
--__LA_DECL void archive_entry_copy_symlink_w(struct archive_entry *, const wchar_t *);
-+__LA_DECL void archive_entry_copy_symlink_w(struct archive_entry *, const char *);
- __LA_DECL int archive_entry_update_symlink_utf8(struct archive_entry *, const char *);
- __LA_DECL void archive_entry_set_uid(struct archive_entry *, la_int64_t);
- __LA_DECL void archive_entry_set_uname(struct archive_entry *, const char *);
- __LA_DECL void archive_entry_set_uname_utf8(struct archive_entry *, const char *);
- __LA_DECL void archive_entry_copy_uname(struct archive_entry *, const char *);
--__LA_DECL void archive_entry_copy_uname_w(struct archive_entry *, const wchar_t *);
-+__LA_DECL void archive_entry_copy_uname_w(struct archive_entry *, const char *);
- __LA_DECL int archive_entry_update_uname_utf8(struct archive_entry *, const char *);
- __LA_DECL void archive_entry_set_is_data_encrypted(struct archive_entry *, char is_encrypted);
- __LA_DECL void archive_entry_set_is_metadata_encrypted(struct archive_entry *, char is_encrypted);
-@@ -510,7 +510,7 @@ __LA_DECL int archive_entry_acl_add_ent
- int /* qual */, const char * /* name */);
- __LA_DECL int archive_entry_acl_add_entry_w(struct archive_entry *,
- int /* type */, int /* permset */, int /* tag */,
-- int /* qual */, const wchar_t * /* name */);
-+ int /* qual */, const char * /* name */);
-
- /*
- * To retrieve the ACL, first "reset", then repeatedly ask for the
-@@ -550,12 +550,12 @@ __LA_DECL int archive_entry_acl_next(st
- #define ARCHIVE_ENTRY_ACL_STYLE_SEPARATOR_COMMA 0x00000008
- #define ARCHIVE_ENTRY_ACL_STYLE_COMPACT 0x00000010
-
--__LA_DECL wchar_t *archive_entry_acl_to_text_w(struct archive_entry *,
-+__LA_DECL char *archive_entry_acl_to_text_w(struct archive_entry *,
- la_ssize_t * /* len */, int /* flags */);
- __LA_DECL char *archive_entry_acl_to_text(struct archive_entry *,
- la_ssize_t * /* len */, int /* flags */);
- __LA_DECL int archive_entry_acl_from_text_w(struct archive_entry *,
-- const wchar_t * /* wtext */, int /* type */);
-+ const char * /* wtext */, int /* type */);
- __LA_DECL int archive_entry_acl_from_text(struct archive_entry *,
- const char * /* text */, int /* type */);
-
-@@ -564,7 +564,7 @@ __LA_DECL int archive_entry_acl_from_tex
- #define OLD_ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT 2048
-
- /* Deprecated functions */
--__LA_DECL const wchar_t *archive_entry_acl_text_w(struct archive_entry *,
-+__LA_DECL const char *archive_entry_acl_text_w(struct archive_entry *,
- int /* flags */) __LA_DEPRECATED;
- __LA_DECL const char *archive_entry_acl_text(struct archive_entry *,
- int /* flags */) __LA_DEPRECATED;
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_entry_paths.3 b/Utilities/cmlibarchive/libarchive/archive_entry_paths.3
---- a/Utilities/cmlibarchive/libarchive/archive_entry_paths.3 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_entry_paths.3 2021-02-11 18:43:34.415862139 +0330
-@@ -57,14 +57,14 @@ Streaming Archive Library (libarchive, -
- .In archive_entry.h
- .Ft const char *
- .Fn archive_entry_hardlink "struct archive_entry *a"
--.Ft const wchar_t *
-+.Ft const char *
- .Fn archive_entry_hardlink_w "struct archive_entry *a"
- .Ft void
- .Fn archive_entry_set_hardlink "struct archive_entry *a" "const char *path"
- .Ft void
- .Fn archive_entry_copy_hardlink "struct archive_entry *a" "const char *path"
- .Ft void
--.Fn archive_entry_copy_hardlink_w "struct archive_entry *a "const wchar_t *path"
-+.Fn archive_entry_copy_hardlink_w "struct archive_entry *a "const char *path"
- .Ft int
- .Fn archive_entry_update_hardlink_utf8 "struct archive_entry *a" "const char *path"
- .Ft void
-@@ -72,19 +72,19 @@ Streaming Archive Library (libarchive, -
- .Ft void
- .Fn archive_entry_copy_link "struct archive_entry *a" " const char *path"
- .Ft void
--.Fn archive_entry_copy_link_w "struct archive_entry *a" " const wchar_t *path"
-+.Fn archive_entry_copy_link_w "struct archive_entry *a" " const char *path"
- .Ft int
- .Fn archive_entry_update_link_utf8 "struct archive_entry *a" " const char *path"
- .Ft const char *
- .Fn archive_entry_pathname "struct archive_entry *a"
--.Ft const wchar_t *
-+.Ft const char *
- .Fn archive_entry_pathname_w "struct archive_entry *a"
- .Ft void
- .Fn archive_entry_set_pathname "struct archive_entry *a" "const char *path"
- .Ft void
- .Fn archive_entry_copy_pathname "struct archive_entry *a" "const char *path"
- .Ft void
--.Fn archive_entry_copy_pathname_w "struct archive_entry *a" "const wchar_t *path"
-+.Fn archive_entry_copy_pathname_w "struct archive_entry *a" "const char *path"
- .Ft int
- .Fn archive_entry_update_pathname_utf8 "struct archive_entry *a" "const char *path"
- .Ft const char *
-@@ -93,14 +93,14 @@ Streaming Archive Library (libarchive, -
- .Fn archive_entry_copy_sourcepath "struct archive_entry *a" "const char *path"
- .Ft const char *
- .Fn archive_entry_symlink "struct archive_entry *a"
--.Ft const wchar_t *
-+.Ft const char *
- .Fn archive_entry_symlink_w "struct archive_entry *a"
- .Ft void
- .Fn archive_entry_set_symlink "struct archive_entry *a" "const char *path"
- .Ft void
- .Fn archive_entry_copy_symlink "struct archive_entry *a" "const char *path"
- .Ft void
--.Fn archive_entry_copy_symlink_w "struct archive_entry *a" "const wchar_t *path"
-+.Fn archive_entry_copy_symlink_w "struct archive_entry *a" "const char *path"
- .Ft int
- .Fn archive_entry_update_symlink_utf8 "struct archive_entry *a" "const char *path"
- .Sh DESCRIPTION
-@@ -124,10 +124,10 @@ Destination of the symbolic link.
- .El
- .Pp
- Path names can be provided in one of three different ways:
--.Bl -tag -width "wchar_t *"
-+.Bl -tag -width "char *"
- .It char *
- Multibyte strings in the current locale.
--.It wchar_t *
-+.It char *
- Wide character strings in the current locale.
- The accessor functions are named
- .Fn XXX_w .
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_entry_perms.3 b/Utilities/cmlibarchive/libarchive/archive_entry_perms.3
---- a/Utilities/cmlibarchive/libarchive/archive_entry_perms.3 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_entry_perms.3 2021-02-11 18:43:34.412528752 +0330
-@@ -72,26 +72,26 @@ Streaming Archive Library (libarchive, -
- .Fn archive_entry_strmode "struct archive_entry *a"
- .Ft const char *
- .Fn archive_entry_gname "struct archive_entry *a"
--.Ft const wchar_t *
-+.Ft const char *
- .Fn archive_entry_gname_w "struct archive_entry *a"
- .Ft void
- .Fn archive_entry_set_gname "struct archive_entry *a" "const char *a"
- .Ft void
- .Fn archive_entry_copy_gname "struct archive_entry *a" "const char *name"
- .Ft void
--.Fn archive_entry_copy_gname_w "struct archive_entry *a" "const wchar_t *name"
-+.Fn archive_entry_copy_gname_w "struct archive_entry *a" "const char *name"
- .Ft int
- .Fn archive_entry_update_gname_utf8 "struct archive_entry *a" "const char *name"
- .Ft const char *
- .Fn archive_entry_uname "struct archive_entry *a"
--.Ft const wchar_t *
-+.Ft const char *
- .Fn archive_entry_uname_w "struct archive_entry *a"
- .Ft void
- .Fn archive_entry_set_uname "struct archive_entry *a" "const char *name"
- .Ft void
- .Fn archive_entry_copy_uname "struct archive_entry *a" "const char *name"
- .Ft void
--.Fn archive_entry_copy_uname_w "struct archive_entry *a" "const wchar_t *name"
-+.Fn archive_entry_copy_uname_w "struct archive_entry *a" "const char *name"
- .Ft int
- .Fn archive_entry_update_uname_utf8 "struct archive_entry *a" "const char *name"
- .Ft void
-@@ -110,8 +110,8 @@ Streaming Archive Library (libarchive, -
- .Fc
- .Ft const char *
- .Fn archive_entry_copy_fflags_text "struct archive_entry *a" "const char *text"
--.Ft const wchar_t *
--.Fn archive_entry_copy_fflags_text_w "struct archive_entry *a" "const wchar_t *text"
-+.Ft const char *
-+.Fn archive_entry_copy_fflags_text_w "struct archive_entry *a" "const char *text"
- .Sh DESCRIPTION
- .Ss User id, group id and mode
- The functions
-@@ -134,10 +134,10 @@ returns a string representation of the p
- .Xr ls 1 .
- .Ss User and group name
- User and group names can be provided in one of three different ways:
--.Bl -tag -width "wchar_t *"
-+.Bl -tag -width "char *"
- .It char *
- Multibyte strings in the current locale.
--.It wchar_t *
-+.It char *
- Wide character strings in the current locale.
- The accessor functions are named
- .Fn XXX_w .
-diff -urp a/Utilities/cmlibarchive/libarchive/archive.h b/Utilities/cmlibarchive/libarchive/archive.h
---- a/Utilities/cmlibarchive/libarchive/archive.h 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive.h 2021-02-11 18:43:34.382528279 +0330
-@@ -39,7 +39,7 @@
- #define ARCHIVE_VERSION_NUMBER 3004002
-
- #include <sys/stat.h>
--#include <stddef.h> /* for wchar_t */
-+#include <stddef.h> /* for char */
- #include <stdio.h> /* For FILE * */
- #include <time.h> /* For time_t */
-
-@@ -525,7 +525,7 @@ __LA_DECL int archive_read_open_filename
- __LA_DECL int archive_read_open_filenames(struct archive *,
- const char **_filenames, size_t _block_size);
- __LA_DECL int archive_read_open_filename_w(struct archive *,
-- const wchar_t *_filename, size_t _block_size);
-+ const char *_filename, size_t _block_size);
- /* archive_read_open_file() is a deprecated synonym for ..._open_filename(). */
- __LA_DECL int archive_read_open_file(struct archive *,
- const char *_filename, size_t _block_size) __LA_DEPRECATED;
-@@ -820,7 +820,7 @@ __LA_DECL int archive_write_open(struct
- __LA_DECL int archive_write_open_fd(struct archive *, int _fd);
- __LA_DECL int archive_write_open_filename(struct archive *, const char *_file);
- __LA_DECL int archive_write_open_filename_w(struct archive *,
-- const wchar_t *_file);
-+ const char *_file);
- /* A deprecated synonym for archive_write_open_filename() */
- __LA_DECL int archive_write_open_file(struct archive *, const char *_file)
- __LA_DEPRECATED;
-@@ -976,7 +976,7 @@ __LA_DECL int archive_read_disk_set_unam
- void (* /* cleanup_fn */)(void *));
- /* Start traversal. */
- __LA_DECL int archive_read_disk_open(struct archive *, const char *);
--__LA_DECL int archive_read_disk_open_w(struct archive *, const wchar_t *);
-+__LA_DECL int archive_read_disk_open_w(struct archive *, const char *);
- /*
- * Request that current entry be visited. If you invoke it on every
- * directory, you'll get a physical traversal. This is ignored if the
-@@ -1099,21 +1099,21 @@ __LA_DECL int archive_match_set_inclusio
- /* Add exclusion pathname pattern. */
- __LA_DECL int archive_match_exclude_pattern(struct archive *, const char *);
- __LA_DECL int archive_match_exclude_pattern_w(struct archive *,
-- const wchar_t *);
-+ const char *);
- /* Add exclusion pathname pattern from file. */
- __LA_DECL int archive_match_exclude_pattern_from_file(struct archive *,
- const char *, int _nullSeparator);
- __LA_DECL int archive_match_exclude_pattern_from_file_w(struct archive *,
-- const wchar_t *, int _nullSeparator);
-+ const char *, int _nullSeparator);
- /* Add inclusion pathname pattern. */
- __LA_DECL int archive_match_include_pattern(struct archive *, const char *);
- __LA_DECL int archive_match_include_pattern_w(struct archive *,
-- const wchar_t *);
-+ const char *);
- /* Add inclusion pathname pattern from file. */
- __LA_DECL int archive_match_include_pattern_from_file(struct archive *,
- const char *, int _nullSeparator);
- __LA_DECL int archive_match_include_pattern_from_file_w(struct archive *,
-- const wchar_t *, int _nullSeparator);
-+ const char *, int _nullSeparator);
- /*
- * How to get statistic information for inclusion patterns.
- */
-@@ -1124,7 +1124,7 @@ __LA_DECL int archive_match_path_unmatch
- __LA_DECL int archive_match_path_unmatched_inclusions_next(
- struct archive *, const char **);
- __LA_DECL int archive_match_path_unmatched_inclusions_next_w(
-- struct archive *, const wchar_t **);
-+ struct archive *, const char **);
-
- /*
- * Test if a file is excluded by its time stamp.
-@@ -1154,12 +1154,12 @@ __LA_DECL int archive_match_include_time
- __LA_DECL int archive_match_include_date(struct archive *, int _flag,
- const char *_datestr);
- __LA_DECL int archive_match_include_date_w(struct archive *, int _flag,
-- const wchar_t *_datestr);
-+ const char *_datestr);
- /* Set inclusion time by a particular file. */
- __LA_DECL int archive_match_include_file_time(struct archive *,
- int _flag, const char *_pathname);
- __LA_DECL int archive_match_include_file_time_w(struct archive *,
-- int _flag, const wchar_t *_pathname);
-+ int _flag, const char *_pathname);
- /* Add exclusion entry. */
- __LA_DECL int archive_match_exclude_entry(struct archive *,
- int _flag, struct archive_entry *);
-@@ -1175,10 +1175,10 @@ __LA_DECL int archive_match_include_uid(
- __LA_DECL int archive_match_include_gid(struct archive *, la_int64_t);
- __LA_DECL int archive_match_include_uname(struct archive *, const char *);
- __LA_DECL int archive_match_include_uname_w(struct archive *,
-- const wchar_t *);
-+ const char *);
- __LA_DECL int archive_match_include_gname(struct archive *, const char *);
- __LA_DECL int archive_match_include_gname_w(struct archive *,
-- const wchar_t *);
-+ const char *);
-
- /* Utility functions */
- /* Convenience function to sort a NULL terminated list of strings */
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_match.c b/Utilities/cmlibarchive/libarchive/archive_match.c
---- a/Utilities/cmlibarchive/libarchive/archive_match.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_match.c 2021-02-11 18:43:34.449195998 +0330
-@@ -144,7 +144,7 @@ static int add_owner_name(struct archive
- static int add_pattern_mbs(struct archive_match *, struct match_list *,
- const char *);
- static int add_pattern_wcs(struct archive_match *, struct match_list *,
-- const wchar_t *);
-+ const char *);
- static int cmp_key_mbs(const struct archive_rb_node *, const void *);
- static int cmp_key_wcs(const struct archive_rb_node *, const void *);
- static int cmp_node_mbs(const struct archive_rb_node *,
-@@ -166,7 +166,7 @@ static int match_owner_name_mbs(struct a
- struct match_list *, const char *);
- #else
- static int match_owner_name_wcs(struct archive_match *,
-- struct match_list *, const wchar_t *);
-+ struct match_list *, const char *);
- #endif
- static int match_path_exclusion(struct archive_match *,
- struct match *, int, const void *);
-@@ -180,10 +180,10 @@ static int set_timefilter(struct archive
- static int set_timefilter_pathname_mbs(struct archive_match *,
- int, const char *);
- static int set_timefilter_pathname_wcs(struct archive_match *,
-- int, const wchar_t *);
-+ int, const char *);
- static int set_timefilter_date(struct archive_match *, int, const char *);
- static int set_timefilter_date_w(struct archive_match *, int,
-- const wchar_t *);
-+ const char *);
- static int time_excluded(struct archive_match *,
- struct archive_entry *);
- static int validate_time_flag(struct archive *, int, const char *);
-@@ -329,7 +329,7 @@ archive_match_exclude_pattern(struct arc
- }
-
- int
--archive_match_exclude_pattern_w(struct archive *_a, const wchar_t *pattern)
-+archive_match_exclude_pattern_w(struct archive *_a, const char *pattern)
- {
- struct archive_match *a;
- int r;
-@@ -363,7 +363,7 @@ archive_match_exclude_pattern_from_file(
-
- int
- archive_match_exclude_pattern_from_file_w(struct archive *_a,
-- const wchar_t *pathname, int nullSeparator)
-+ const char *pathname, int nullSeparator)
- {
- struct archive_match *a;
-
-@@ -395,7 +395,7 @@ archive_match_include_pattern(struct arc
- }
-
- int
--archive_match_include_pattern_w(struct archive *_a, const wchar_t *pattern)
-+archive_match_include_pattern_w(struct archive *_a, const char *pattern)
- {
- struct archive_match *a;
- int r;
-@@ -429,7 +429,7 @@ archive_match_include_pattern_from_file(
-
- int
- archive_match_include_pattern_from_file_w(struct archive *_a,
-- const wchar_t *pathname, int nullSeparator)
-+ const char *pathname, int nullSeparator)
- {
- struct archive_match *a;
-
-@@ -530,7 +530,7 @@ archive_match_path_unmatched_inclusions_
-
- int
- archive_match_path_unmatched_inclusions_next_w(struct archive *_a,
-- const wchar_t **_p)
-+ const char **_p)
- {
- struct archive_match *a;
- const void *v;
-@@ -541,7 +541,7 @@ archive_match_path_unmatched_inclusions_
- a = (struct archive_match *)_a;
-
- r = match_list_unmatched_inclusions_next(a, &(a->inclusions), 0, &v);
-- *_p = (const wchar_t *)v;
-+ *_p = (const char *)v;
- return (r);
- }
-
-@@ -570,7 +570,7 @@ add_pattern_mbs(struct archive_match *a,
-
- static int
- add_pattern_wcs(struct archive_match *a, struct match_list *list,
-- const wchar_t *pattern)
-+ const char *pattern)
- {
- struct match *match;
- size_t len;
-@@ -788,10 +788,10 @@ match_path_exclusion(struct archive_matc
- if (r == 0)
- return (archive_pathmatch(p, (const char *)pn, flag));
- } else {
-- const wchar_t *p;
-+ const char *p;
- r = archive_mstring_get_wcs(&(a->archive), &(m->pattern), &p);
- if (r == 0)
-- return (archive_pathmatch_w(p, (const wchar_t *)pn,
-+ return (archive_pathmatch_w(p, (const char *)pn,
- flag));
- }
- if (errno == ENOMEM)
-@@ -819,10 +819,10 @@ match_path_inclusion(struct archive_matc
- if (r == 0)
- return (archive_pathmatch(p, (const char *)pn, flag));
- } else {
-- const wchar_t *p;
-+ const char *p;
- r = archive_mstring_get_wcs(&(a->archive), &(m->pattern), &p);
- if (r == 0)
-- return (archive_pathmatch_w(p, (const wchar_t *)pn,
-+ return (archive_pathmatch_w(p, (const char *)pn,
- flag));
- }
- if (errno == ENOMEM)
-@@ -892,13 +892,13 @@ match_list_unmatched_inclusions_next(str
- p = "";
- *vp = p;
- } else {
-- const wchar_t *p;
-+ const char *p;
- r = archive_mstring_get_wcs(&(a->archive),
- &(m->pattern), &p);
- if (r < 0 && errno == ENOMEM)
- return (error_nomem(a));
- if (p == NULL)
-- p = L"";
-+ p = "";
- *vp = p;
- }
- list->unmatched_next = m->next;
-@@ -941,7 +941,7 @@ archive_match_include_date(struct archiv
-
- int
- archive_match_include_date_w(struct archive *_a, int flag,
-- const wchar_t *datestr)
-+ const char *datestr)
- {
- int r;
-
-@@ -967,7 +967,7 @@ archive_match_include_file_time(struct a
-
- int
- archive_match_include_file_time_w(struct archive *_a, int flag,
-- const wchar_t *pathname)
-+ const char *pathname)
- {
- int r;
-
-@@ -1117,7 +1117,7 @@ set_timefilter_date(struct archive_match
-
- static int
- set_timefilter_date_w(struct archive_match *a, int timetype,
-- const wchar_t *datestr)
-+ const char *datestr)
- {
- struct archive_string as;
- time_t t;
-@@ -1207,7 +1207,7 @@ set_timefilter_pathname_mbs(struct archi
-
- static int
- set_timefilter_pathname_wcs(struct archive_match *a, int timetype,
-- const wchar_t *path)
-+ const char *path)
- {
- HANDLE h;
- WIN32_FIND_DATAW d;
-@@ -1270,7 +1270,7 @@ set_timefilter_pathname_mbs(struct archi
-
- static int
- set_timefilter_pathname_wcs(struct archive_match *a, int timetype,
-- const wchar_t *path)
-+ const char *path)
- {
- struct archive_string as;
- int r;
-@@ -1336,7 +1336,7 @@ cmp_node_wcs(const struct archive_rb_nod
- {
- struct match_file *f1 = (struct match_file *)(uintptr_t)n1;
- struct match_file *f2 = (struct match_file *)(uintptr_t)n2;
-- const wchar_t *p1, *p2;
-+ const char *p1, *p2;
-
- archive_mstring_get_wcs(NULL, &(f1->pathname), &p1);
- archive_mstring_get_wcs(NULL, &(f2->pathname), &p2);
-@@ -1351,12 +1351,12 @@ static int
- cmp_key_wcs(const struct archive_rb_node *n, const void *key)
- {
- struct match_file *f = (struct match_file *)(uintptr_t)n;
-- const wchar_t *p;
-+ const char *p;
-
- archive_mstring_get_wcs(NULL, &(f->pathname), &p);
- if (p == NULL)
- return (-1);
-- return (wcscmp(p, (const wchar_t *)key));
-+ return (wcscmp(p, (const char *)key));
- }
-
- static void
-@@ -1644,7 +1644,7 @@ archive_match_include_uname(struct archi
- }
-
- int
--archive_match_include_uname_w(struct archive *_a, const wchar_t *uname)
-+archive_match_include_uname_w(struct archive *_a, const char *uname)
- {
- struct archive_match *a;
-
-@@ -1666,7 +1666,7 @@ archive_match_include_gname(struct archi
- }
-
- int
--archive_match_include_gname_w(struct archive *_a, const wchar_t *gname)
-+archive_match_include_gname_w(struct archive *_a, const char *gname)
- {
- struct archive_match *a;
-
-@@ -1803,10 +1803,10 @@ match_owner_name_mbs(struct archive_matc
- #else
- static int
- match_owner_name_wcs(struct archive_match *a, struct match_list *list,
-- const wchar_t *name)
-+ const char *name)
- {
- struct match *m;
-- const wchar_t *p;
-+ const char *p;
-
- if (name == NULL || *name == L'\0')
- return (0);
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_pathmatch.c b/Utilities/cmlibarchive/libarchive/archive_pathmatch.c
---- a/Utilities/cmlibarchive/libarchive/archive_pathmatch.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_pathmatch.c 2021-02-11 18:43:34.425862296 +0330
-@@ -100,10 +100,10 @@ pm_list(const char *start, const char *e
- }
-
- static int
--pm_list_w(const wchar_t *start, const wchar_t *end, const wchar_t c, int flags)
-+pm_list_w(const char *start, const char *end, const char c, int flags)
- {
-- const wchar_t *p = start;
-- wchar_t rangeStart = L'\0', nextRangeStart;
-+ const char *p = start;
-+ char rangeStart = L'\0', nextRangeStart;
- int match = 1, nomatch = 0;
-
- /* This will be used soon... */
-@@ -125,7 +125,7 @@ pm_list_w(const wchar_t *start, const wc
- if (*p == c)
- return (match);
- } else {
-- wchar_t rangeEnd = *++p;
-+ char rangeEnd = *++p;
- if (rangeEnd == L'\\')
- rangeEnd = *++p;
- if ((rangeStart <= c) && (c <= rangeEnd))
-@@ -158,8 +158,8 @@ pm_slashskip(const char *s) {
- return (s);
- }
-
--static const wchar_t *
--pm_slashskip_w(const wchar_t *s) {
-+static const char *
-+pm_slashskip_w(const char *s) {
- while ((*s == L'/')
- || (s[0] == L'.' && s[1] == L'/')
- || (s[0] == L'.' && s[1] == L'\0'))
-@@ -273,9 +273,9 @@ pm(const char *p, const char *s, int fla
- }
-
- static int
--pm_w(const wchar_t *p, const wchar_t *s, int flags)
-+pm_w(const char *p, const char *s, int flags)
- {
-- const wchar_t *end;
-+ const char *end;
-
- /*
- * Ignore leading './', './/', '././', etc.
-@@ -419,7 +419,7 @@ __archive_pathmatch(const char *p, const
- }
-
- int
--__archive_pathmatch_w(const wchar_t *p, const wchar_t *s, int flags)
-+__archive_pathmatch_w(const char *p, const char *s, int flags)
- {
- /* Empty pattern only matches the empty string. */
- if (p == NULL || *p == L'\0')
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_pathmatch.h b/Utilities/cmlibarchive/libarchive/archive_pathmatch.h
---- a/Utilities/cmlibarchive/libarchive/archive_pathmatch.h 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_pathmatch.h 2021-02-11 18:43:34.392528437 +0330
-@@ -44,7 +44,7 @@
- * flag above. */
-
- int __archive_pathmatch(const char *p, const char *s, int flags);
--int __archive_pathmatch_w(const wchar_t *p, const wchar_t *s, int flags);
-+int __archive_pathmatch_w(const char *p, const char *s, int flags);
-
- #define archive_pathmatch(p, s, f) __archive_pathmatch(p, s, f)
- #define archive_pathmatch_w(p, s, f) __archive_pathmatch_w(p, s, f)
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_private.h b/Utilities/cmlibarchive/libarchive/archive_private.h
---- a/Utilities/cmlibarchive/libarchive/archive_private.h 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_private.h 2021-02-11 18:43:34.379194894 +0330
-@@ -154,7 +154,7 @@ void __archive_errx(int retvalue, const
- void __archive_ensure_cloexec_flag(int fd);
- int __archive_mktemp(const char *tmpdir);
- #if defined(_WIN32) && !defined(__CYGWIN__)
--int __archive_mkstemp(wchar_t *template);
-+int __archive_mkstemp(char *template);
- #else
- int __archive_mkstemp(char *template);
- #endif
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_read_disk_posix.c b/Utilities/cmlibarchive/libarchive/archive_read_disk_posix.c
---- a/Utilities/cmlibarchive/libarchive/archive_read_disk_posix.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_read_disk_posix.c 2021-02-12 14:39:59.857852509 +0330
-@@ -1333,7 +1333,7 @@ archive_read_disk_open(struct archive *_
- }
-
- int
--archive_read_disk_open_w(struct archive *_a, const wchar_t *pathname)
-+archive_read_disk_open_w(struct archive *_a, const char *pathname)
- {
- struct archive_read_disk *a = (struct archive_read_disk *)_a;
- struct archive_string path;
-@@ -1344,7 +1344,7 @@ archive_read_disk_open_w(struct archive
- "archive_read_disk_open_w");
- archive_clear_error(&a->archive);
-
-- /* Make a char string from a wchar_t string. */
-+ /* Make a char string from a char string. */
- archive_string_init(&path);
- if (archive_string_append_from_wcs(&path, pathname,
- wcslen(pathname)) != 0) {
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_read_disk_windows.c b/Utilities/cmlibarchive/libarchive/archive_read_disk_windows.c
---- a/Utilities/cmlibarchive/libarchive/archive_read_disk_windows.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_read_disk_windows.c 2021-02-11 18:43:34.362527965 +0330
-@@ -72,7 +72,7 @@ __FBSDID("$FreeBSD$");
- */
-
- struct restore_time {
-- const wchar_t *full_path;
-+ const char *full_path;
- FILETIME lastWriteTime;
- FILETIME lastAccessTime;
- mode_t filetype;
-@@ -142,7 +142,7 @@ struct tree {
- struct archive_wstring path;
-
- /* Last path element */
-- const wchar_t *basename;
-+ const char *basename;
- /* Leading dir length */
- size_t dirname_length;
-
-@@ -207,14 +207,14 @@ struct tree {
- #define needsRestoreTimes 128
-
- static int
--tree_dir_next_windows(struct tree *t, const wchar_t *pattern);
-+tree_dir_next_windows(struct tree *t, const char *pattern);
-
- /* Initiate/terminate a tree traversal. */
--static struct tree *tree_open(const wchar_t *, int, int);
--static struct tree *tree_reopen(struct tree *, const wchar_t *, int);
-+static struct tree *tree_open(const char *, int, int);
-+static struct tree *tree_reopen(struct tree *, const char *, int);
- static void tree_close(struct tree *);
- static void tree_free(struct tree *);
--static void tree_push(struct tree *, const wchar_t *, const wchar_t *,
-+static void tree_push(struct tree *, const char *, const char *,
- int, int64_t, int64_t, struct restore_time *);
-
- /*
-@@ -254,8 +254,8 @@ static int tree_next(struct tree *);
- * current path.
- *
- */
--static const wchar_t *tree_current_path(struct tree *);
--static const wchar_t *tree_current_access_path(struct tree *);
-+static const char *tree_current_path(struct tree *);
-+static const char *tree_current_access_path(struct tree *);
-
- /*
- * Request the lstat() or stat() data for the current path. Since the
-@@ -283,7 +283,7 @@ static int setup_current_filesystem(stru
- static int tree_target_is_same_as_parent(struct tree *,
- const BY_HANDLE_FILE_INFORMATION *);
-
--static int _archive_read_disk_open_w(struct archive *, const wchar_t *);
-+static int _archive_read_disk_open_w(struct archive *, const char *);
- static int _archive_read_free(struct archive *);
- static int _archive_read_close(struct archive *);
- static int _archive_read_data_block(struct archive *,
-@@ -299,10 +299,10 @@ static int close_and_restore_time(HANDLE
- struct restore_time *);
- static int setup_sparse_from_disk(struct archive_read_disk *,
- struct archive_entry *, HANDLE);
--static int la_linkname_from_handle(HANDLE, wchar_t **, int *);
--static int la_linkname_from_pathw(const wchar_t *, wchar_t **, int *);
-+static int la_linkname_from_handle(HANDLE, char **, int *);
-+static int la_linkname_from_pathw(const char *, char **, int *);
- static void entry_symlink_from_pathw(struct archive_entry *,
-- const wchar_t *path);
-+ const char *path);
-
- typedef struct _REPARSE_DATA_BUFFER {
- ULONG ReparseTag;
-@@ -337,7 +337,7 @@ typedef struct _REPARSE_DATA_BUFFER {
- * outbuf is allocated in the function
- */
- static int
--la_linkname_from_handle(HANDLE h, wchar_t **linkname, int *linktype)
-+la_linkname_from_handle(HANDLE h, char **linkname, int *linktype)
- {
- DWORD inbytes;
- REPARSE_DATA_BUFFER *buf;
-@@ -345,7 +345,7 @@ la_linkname_from_handle(HANDLE h, wchar_
- size_t len;
- BOOL ret;
- BYTE *indata;
-- wchar_t *tbuf;
-+ char *tbuf;
-
- ret = GetFileInformationByHandle(h, &st);
- if (ret == 0 ||
-@@ -376,7 +376,7 @@ la_linkname_from_handle(HANDLE h, wchar_
- return (-1);
- }
-
-- tbuf = malloc(len + 1 * sizeof(wchar_t));
-+ tbuf = malloc(len + 1 * sizeof(char));
- if (tbuf == NULL) {
- free(indata);
- return (-1);
-@@ -386,7 +386,7 @@ la_linkname_from_handle(HANDLE h, wchar_
- [buf->SymbolicLinkReparseBuffer.SubstituteNameOffset], len);
- free(indata);
-
-- tbuf[len / sizeof(wchar_t)] = L'\0';
-+ tbuf[len / sizeof(char)] = L'\0';
-
- *linkname = tbuf;
-
-@@ -411,7 +411,7 @@ la_linkname_from_handle(HANDLE h, wchar_
- * Returns AE_SYMLINK_TYPE_FILE, AE_SYMLINK_TYPE_DIRECTORY or -1 on error
- */
- static int
--la_linkname_from_pathw(const wchar_t *path, wchar_t **outbuf, int *linktype)
-+la_linkname_from_pathw(const char *path, char **outbuf, int *linktype)
- {
- HANDLE h;
- const DWORD flag = FILE_FLAG_BACKUP_SEMANTICS |
-@@ -432,9 +432,9 @@ la_linkname_from_pathw(const wchar_t *pa
- }
-
- static void
--entry_symlink_from_pathw(struct archive_entry *entry, const wchar_t *path)
-+entry_symlink_from_pathw(struct archive_entry *entry, const char *path)
- {
-- wchar_t *linkname = NULL;
-+ char *linkname = NULL;
- int ret, linktype;
-
- ret = la_linkname_from_pathw(path, &linkname, &linktype);
-@@ -1332,7 +1332,7 @@ archive_read_disk_open(struct archive *_
- "archive_read_disk_open");
- archive_clear_error(&a->archive);
-
-- /* Make a wchar_t string from a char string. */
-+ /* Make a char string from a char string. */
- archive_string_init(&wpath);
- if (archive_wstring_append_from_mbs(&wpath, pathname,
- strlen(pathname)) != 0) {
-@@ -1341,7 +1341,7 @@ archive_read_disk_open(struct archive *_
- "Can't allocate memory");
- else
- archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
-- "Can't convert a path to a wchar_t string");
-+ "Can't convert a path to a char string");
- a->archive.state = ARCHIVE_STATE_FATAL;
- ret = ARCHIVE_FATAL;
- } else
-@@ -1352,7 +1352,7 @@ archive_read_disk_open(struct archive *_
- }
-
- int
--archive_read_disk_open_w(struct archive *_a, const wchar_t *pathname)
-+archive_read_disk_open_w(struct archive *_a, const char *pathname)
- {
- struct archive_read_disk *a = (struct archive_read_disk *)_a;
-
-@@ -1365,7 +1365,7 @@ archive_read_disk_open_w(struct archive
- }
-
- static int
--_archive_read_disk_open_w(struct archive *_a, const wchar_t *pathname)
-+_archive_read_disk_open_w(struct archive *_a, const char *pathname)
- {
- struct archive_read_disk *a = (struct archive_read_disk *)_a;
-
-@@ -1480,11 +1480,11 @@ archive_read_disk_current_filesystem_is_
- * If symlink is broken, statfs or statvfs will fail.
- * Use its directory path instead.
- */
--static wchar_t *
-+static char *
- safe_path_for_statfs(struct tree *t)
- {
-- const wchar_t *path;
-- wchar_t *cp, *p = NULL;
-+ const char *path;
-+ char *cp, *p = NULL;
-
- path = tree_current_access_path(t);
- if (tree_current_stat(t) == NULL) {
-@@ -1507,8 +1507,8 @@ static int
- setup_current_filesystem(struct archive_read_disk *a)
- {
- struct tree *t = a->tree;
-- wchar_t vol[256];
-- wchar_t *path;
-+ char vol[256];
-+ char *path;
-
- t->current_filesystem->synthetic = -1;/* Not supported */
- path = safe_path_for_statfs(t);
-@@ -1584,7 +1584,7 @@ close_and_restore_time(HANDLE h, struct
- * Add a directory path to the current stack.
- */
- static void
--tree_push(struct tree *t, const wchar_t *path, const wchar_t *full_path,
-+tree_push(struct tree *t, const char *path, const char *full_path,
- int filesystem_id, int64_t dev, int64_t ino, struct restore_time *rt)
- {
- struct tree_entry *te;
-@@ -1617,7 +1617,7 @@ tree_push(struct tree *t, const wchar_t
- * Append a name to the current dir path.
- */
- static void
--tree_append(struct tree *t, const wchar_t *name, size_t name_length)
-+tree_append(struct tree *t, const char *name, size_t name_length)
- {
- size_t size_needed;
-
-@@ -1654,7 +1654,7 @@ tree_append(struct tree *t, const wchar_
- * Open a directory tree for traversal.
- */
- static struct tree *
--tree_open(const wchar_t *path, int symlink_mode, int restore_time)
-+tree_open(const char *path, int symlink_mode, int restore_time)
- {
- struct tree *t;
-
-@@ -1667,10 +1667,10 @@ tree_open(const wchar_t *path, int symli
- }
-
- static struct tree *
--tree_reopen(struct tree *t, const wchar_t *path, int restore_time)
-+tree_reopen(struct tree *t, const char *path, int restore_time)
- {
- struct archive_wstring ws;
-- wchar_t *pathname, *p, *base;
-+ char *pathname, *p, *base;
-
- t->flags = (restore_time != 0)?needsRestoreTimes:0;
- t->visit_type = 0;
-@@ -1689,7 +1689,7 @@ tree_reopen(struct tree *t, const wchar_
- t->entry_remaining_bytes = 0;
- t->initial_filesystem_id = -1;
-
-- /* Get wchar_t strings from char strings. */
-+ /* Get char strings from char strings. */
- archive_string_init(&ws);
- archive_wstrcpy(&ws, path);
- pathname = ws.s;
-@@ -1834,7 +1834,7 @@ tree_next(struct tree *t)
- }
-
- if (t->stack->flags & needsFirstVisit) {
-- wchar_t *d = t->stack->name.s;
-+ char *d = t->stack->name.s;
- t->stack->flags &= ~needsFirstVisit;
- if (!(d[0] == L'/' && d[1] == L'/' &&
- d[2] == L'?' && d[3] == L'/') &&
-@@ -1877,7 +1877,7 @@ tree_next(struct tree *t)
- return (t->visit_type);
- } else if (t->stack->flags & needsOpen) {
- t->stack->flags &= ~needsOpen;
-- r = tree_dir_next_windows(t, L"*");
-+ r = tree_dir_next_windows(t, "*");
- if (r == 0)
- continue;
- return (r);
-@@ -1898,9 +1898,9 @@ tree_next(struct tree *t)
- }
-
- static int
--tree_dir_next_windows(struct tree *t, const wchar_t *pattern)
-+tree_dir_next_windows(struct tree *t, const char *pattern)
- {
-- const wchar_t *name;
-+ const char *name;
- size_t namelen;
- int r;
-
-@@ -1967,7 +1967,7 @@ fileTimeToUtc(const FILETIME *filetime,
- }
-
- static void
--entry_copy_bhfi(struct archive_entry *entry, const wchar_t *path,
-+entry_copy_bhfi(struct archive_entry *entry, const char *path,
- const WIN32_FIND_DATAW *findData,
- const BY_HANDLE_FILE_INFORMATION *bhfi)
- {
-@@ -2006,7 +2006,7 @@ entry_copy_bhfi(struct archive_entry *en
- } else if (bhfi->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
- mode |= S_IFDIR | S_IXUSR | S_IXGRP | S_IXOTH;
- else {
-- const wchar_t *p;
-+ const char *p;
-
- mode |= S_IFREG;
- p = wcsrchr(path, L'.');
-@@ -2152,7 +2152,7 @@ tree_target_is_same_as_parent(struct tre
- /*
- * Return the access path for the entry just returned from tree_next().
- */
--static const wchar_t *
-+static const char *
- tree_current_access_path(struct tree *t)
- {
- return (t->full_path.s);
-@@ -2161,7 +2161,7 @@ tree_current_access_path(struct tree *t)
- /*
- * Return the full path for the entry just returned from tree_next().
- */
--static const wchar_t *
-+static const char *
- tree_current_path(struct tree *t)
- {
- return (t->path.s);
-@@ -2223,8 +2223,8 @@ archive_read_disk_entry_from_file(struct
- struct archive_entry *entry, int fd, const struct stat *st)
- {
- struct archive_read_disk *a = (struct archive_read_disk *)_a;
-- const wchar_t *path;
-- const wchar_t *wname;
-+ const char *path;
-+ const char *wname;
- const char *name;
- HANDLE h;
- BY_HANDLE_FILE_INFORMATION bhfi;
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_read_open_filename.c b/Utilities/cmlibarchive/libarchive/archive_read_open_filename.c
---- a/Utilities/cmlibarchive/libarchive/archive_read_open_filename.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_read_open_filename.c 2021-02-11 18:43:34.452529383 +0330
-@@ -79,7 +79,7 @@ struct read_file_data {
- enum fnt_e { FNT_STDIN, FNT_MBS, FNT_WCS } filename_type;
- union {
- char m[1];/* MBS filename. */
-- wchar_t w[1];/* WCS filename. */
-+ char w[1];/* WCS filename. */
- } filename; /* Must be last! */
- };
-
-@@ -156,11 +156,11 @@ no_memory:
- }
-
- int
--archive_read_open_filename_w(struct archive *a, const wchar_t *wfilename,
-+archive_read_open_filename_w(struct archive *a, const char *wfilename,
- size_t block_size)
- {
- struct read_file_data *mine = (struct read_file_data *)calloc(1,
-- sizeof(*mine) + wcslen(wfilename) * sizeof(wchar_t));
-+ sizeof(*mine) + wcslen(wfilename) * sizeof(char));
- if (!mine)
- {
- archive_set_error(a, ENOMEM, "No memory");
-@@ -177,8 +177,8 @@ archive_read_open_filename_w(struct arch
- wcscpy(mine->filename.w, wfilename);
- #else
- /*
-- * POSIX system does not support a wchar_t interface for
-- * open() system call, so we have to translate a wchar_t
-+ * POSIX system does not support a char interface for
-+ * open() system call, so we have to translate a char
- * filename to multi-byte one and use it.
- */
- struct archive_string fn;
-@@ -221,7 +221,7 @@ file_open(struct archive *a, void *clien
- struct read_file_data *mine = (struct read_file_data *)client_data;
- void *buffer;
- const char *filename = NULL;
-- const wchar_t *wfilename = NULL;
-+ const char *wfilename = NULL;
- int fd = -1;
- int is_disk_like = 0;
- #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
-@@ -262,7 +262,7 @@ file_open(struct archive *a, void *clien
- wfilename = mine->filename.w;
- fd = _wopen(wfilename, O_RDONLY | O_BINARY);
- if (fd < 0 && errno == ENOENT) {
-- wchar_t *fullpath;
-+ char *fullpath;
- fullpath = __la_win_permissive_name_w(wfilename);
- if (fullpath != NULL) {
- fd = _wopen(fullpath, O_RDONLY | O_BINARY);
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_read_support_format_7zip.c b/Utilities/cmlibarchive/libarchive/archive_read_support_format_7zip.c
---- a/Utilities/cmlibarchive/libarchive/archive_read_support_format_7zip.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_read_support_format_7zip.c 2021-02-11 18:43:34.365861350 +0330
-@@ -184,7 +184,7 @@ struct _7zip_entry {
- size_t name_len;
- unsigned char *utf16name;
- #if defined(_WIN32) && !defined(__CYGWIN__) && defined(_DEBUG)
-- const wchar_t *wname;
-+ const char *wname;
- #endif
- uint32_t folderIndex;
- uint32_t ssIndex;
-@@ -2514,7 +2514,7 @@ read_Header(struct archive_read *a, stru
- for (i = 0; i < zip->numFiles; i++) {
- entries[i].utf16name = np;
- #if defined(_WIN32) && !defined(__CYGWIN__) && defined(_DEBUG)
-- entries[i].wname = (wchar_t *)np;
-+ entries[i].wname = (char *)np;
- #endif
-
- /* Find a terminator. */
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_read_support_format_cab.c b/Utilities/cmlibarchive/libarchive/archive_read_support_format_cab.c
---- a/Utilities/cmlibarchive/libarchive/archive_read_support_format_cab.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_read_support_format_cab.c 2021-02-11 18:43:34.445862611 +0330
-@@ -596,7 +596,7 @@ cab_convert_path_separator_1(struct arch
- static void
- cab_convert_path_separator_2(struct cab *cab, struct archive_entry *entry)
- {
-- const wchar_t *wp;
-+ const char *wp;
- size_t i;
-
- /* If a conversion to wide character failed, force the replacement. */
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_read_support_format_lha.c b/Utilities/cmlibarchive/libarchive/archive_read_support_format_lha.c
---- a/Utilities/cmlibarchive/libarchive/archive_read_support_format_lha.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_read_support_format_lha.c 2021-02-11 18:43:34.455862768 +0330
-@@ -482,7 +482,7 @@ archive_read_format_lha_read_header(stru
- const char *signature;
- int err;
- struct archive_mstring conv_buffer;
-- const wchar_t *conv_buffer_p;
-+ const char *conv_buffer_p;
-
- lha_crc16_init();
-
-@@ -753,7 +753,7 @@ archive_read_format_lha_read_header(stru
- static void
- lha_replace_path_separator(struct lha *lha, struct archive_entry *entry)
- {
-- const wchar_t *wp;
-+ const char *wp;
- size_t i;
-
- if ((wp = archive_entry_pathname_w(entry)) != NULL) {
-@@ -1695,7 +1695,7 @@ static int
- lha_parse_linkname(struct archive_wstring *linkname,
- struct archive_wstring *pathname)
- {
-- wchar_t * linkptr;
-+ char * linkptr;
- size_t symlen;
-
- linkptr = wcschr(pathname->s, L'|');
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_read_support_format_tar.c b/Utilities/cmlibarchive/libarchive/archive_read_support_format_tar.c
---- a/Utilities/cmlibarchive/libarchive/archive_read_support_format_tar.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_read_support_format_tar.c 2021-02-11 18:43:34.399195209 +0330
-@@ -511,7 +511,7 @@ archive_read_format_tar_read_header(stru
- static int default_dev;
- struct tar *tar;
- const char *p;
-- const wchar_t *wp;
-+ const char *wp;
- int r;
- size_t l, unconsumed = 0;
-
-@@ -1398,7 +1398,7 @@ read_mac_metadata_blob(struct archive_re
- int64_t size;
- const void *data;
- const char *p, *name;
-- const wchar_t *wp, *wname;
-+ const char *wp, *wname;
-
- (void)h; /* UNUSED */
-
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_read_support_format_zip.c b/Utilities/cmlibarchive/libarchive/archive_read_support_format_zip.c
---- a/Utilities/cmlibarchive/libarchive/archive_read_support_format_zip.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_read_support_format_zip.c 2021-02-11 18:43:34.375861508 +0330
-@@ -908,7 +908,7 @@ zip_read_local_file_header(struct archiv
- {
- const char *p;
- const void *h;
-- const wchar_t *wp;
-+ const char *wp;
- const char *cp;
- size_t len, filename_length, extra_length;
- struct archive_string_conv *sconv;
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_string.c b/Utilities/cmlibarchive/libarchive/archive_string.c
---- a/Utilities/cmlibarchive/libarchive/archive_string.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_string.c 2021-02-11 18:43:34.372528122 +0330
-@@ -68,11 +68,11 @@ __FBSDID("$FreeBSD: head/lib/libarchive/
- #include "archive_string_composition.h"
-
- #if !defined(HAVE_WMEMCPY) && !defined(wmemcpy)
--#define wmemcpy(a,b,i) (wchar_t *)memcpy((a), (b), (i) * sizeof(wchar_t))
-+#define wmemcpy(a,b,i) (char *)memcpy((a), (b), (i) * sizeof(char))
- #endif
-
- #if !defined(HAVE_WMEMMOVE) && !defined(wmemmove)
--#define wmemmove(a,b,i) (wchar_t *)memmove((a), (b), (i) * sizeof(wchar_t))
-+#define wmemmove(a,b,i) (char *)memmove((a), (b), (i) * sizeof(char))
- #endif
-
- #undef max
-@@ -154,7 +154,7 @@ static int archive_wstring_append_from_m
- struct archive_wstring *, const char *, size_t,
- struct archive_string_conv *);
- static int archive_string_append_from_wcs_in_codepage(struct archive_string *,
-- const wchar_t *, size_t, struct archive_string_conv *);
-+ const char *, size_t, struct archive_string_conv *);
- static int is_big_endian(void);
- static int strncat_in_codepage(struct archive_string *, const void *,
- size_t, struct archive_string_conv *);
-@@ -213,7 +213,7 @@ archive_string_append(struct archive_str
- }
-
- static struct archive_wstring *
--archive_wstring_append(struct archive_wstring *as, const wchar_t *p, size_t s)
-+archive_wstring_append(struct archive_wstring *as, const char *p, size_t s)
- {
- if (archive_wstring_ensure(as, as->length + s + 1) == NULL)
- return (NULL);
-@@ -268,7 +268,7 @@ archive_wstring_ensure(struct archive_ws
- {
- return (struct archive_wstring *)
- archive_string_ensure((struct archive_string *)as,
-- s * sizeof(wchar_t));
-+ s * sizeof(char));
- }
-
- /* Returns NULL on any allocation failure. */
-@@ -355,10 +355,10 @@ archive_strncat(struct archive_string *a
- }
-
- struct archive_wstring *
--archive_wstrncat(struct archive_wstring *as, const wchar_t *p, size_t n)
-+archive_wstrncat(struct archive_wstring *as, const char *p, size_t n)
- {
- size_t s;
-- const wchar_t *pp;
-+ const char *pp;
-
- /* Like strlen(p), except won't examine positions beyond p[n]. */
- s = 0;
-@@ -385,7 +385,7 @@ archive_strcat(struct archive_string *as
- }
-
- struct archive_wstring *
--archive_wstrcat(struct archive_wstring *as, const wchar_t *p)
-+archive_wstrcat(struct archive_wstring *as, const char *p)
- {
- /* Ditto. */
- return archive_wstrncat(as, p, 0x1000000);
-@@ -400,7 +400,7 @@ archive_strappend_char(struct archive_st
- }
-
- struct archive_wstring *
--archive_wstrappend_wchar(struct archive_wstring *as, wchar_t c)
-+archive_wstrappend_wchar(struct archive_wstring *as, char c)
- {
- if ((as = archive_wstring_append(as, &c, 1)) == NULL)
- __archive_errx(1, "Out of memory");
-@@ -463,7 +463,7 @@ archive_wstring_append_from_mbs_in_codep
- /*
- * "C" locale special processing.
- */
-- wchar_t *ws;
-+ char *ws;
- const unsigned char *mp;
-
- if (NULL == archive_wstring_ensure(dest,
-@@ -474,14 +474,14 @@ archive_wstring_append_from_mbs_in_codep
- mp = (const unsigned char *)s;
- count = 0;
- while (count < (int)length && *mp) {
-- *ws++ = (wchar_t)*mp++;
-+ *ws++ = (char)*mp++;
- count++;
- }
- } else if (sc != NULL &&
- (sc->flag & (SCONV_NORMALIZATION_C | SCONV_NORMALIZATION_D))) {
- /*
- * Normalize UTF-8 and UTF-16BE and convert it directly
-- * to UTF-16 as wchar_t.
-+ * to UTF-16 as char.
- */
- struct archive_string u16;
- int saved_flag = sc->flag;/* save current flag. */
-@@ -511,7 +511,7 @@ archive_wstring_append_from_mbs_in_codep
- ret = archive_string_normalize_C(&u16, s, count, sc);
- else
- ret = archive_string_normalize_D(&u16, s, count, sc);
-- dest->s = (wchar_t *)u16.s;
-+ dest->s = (char *)u16.s;
- dest->length = u16.length >> 1;
- dest->buffer_length = u16.buffer_length;
- sc->flag = saved_flag;/* restore the saved flag. */
-@@ -523,7 +523,7 @@ archive_wstring_append_from_mbs_in_codep
- if (NULL == archive_wstring_ensure(dest,
- dest->length + count + 1))
- return (-1);
-- wmemcpy(dest->s + dest->length, (const wchar_t *)s, count);
-+ wmemcpy(dest->s + dest->length, (const char *)s, count);
- if ((sc->flag & SCONV_FROM_UTF16BE) && !is_big_endian()) {
- uint16_t *u16 = (uint16_t *)(dest->s + dest->length);
- int b;
-@@ -597,7 +597,7 @@ archive_wstring_append_from_mbs(struct a
- // size_t wcs_length = len;
- size_t mbs_length = len;
- const char *mbs = p;
-- wchar_t *wcs;
-+ char *wcs;
- #if HAVE_MBRTOWC
- mbstate_t shift_state;
-
-@@ -668,14 +668,14 @@ archive_wstring_append_from_mbs(struct a
- */
- int
- archive_string_append_from_wcs(struct archive_string *as,
-- const wchar_t *w, size_t len)
-+ const char *w, size_t len)
- {
- return archive_string_append_from_wcs_in_codepage(as, w, len, NULL);
- }
-
- static int
- archive_string_append_from_wcs_in_codepage(struct archive_string *as,
-- const wchar_t *ws, size_t len, struct archive_string_conv *sc)
-+ const char *ws, size_t len, struct archive_string_conv *sc)
- {
- BOOL defchar_used, *dp;
- int count, ret = 0;
-@@ -691,7 +691,7 @@ archive_string_append_from_wcs_in_codepa
- /*
- * "C" locale special processing.
- */
-- const wchar_t *wp = ws;
-+ const char *wp = ws;
- char *p;
-
- if (NULL == archive_string_ensure(as,
-@@ -773,7 +773,7 @@ archive_string_append_from_wcs_in_codepa
- */
- int
- archive_string_append_from_wcs(struct archive_string *as,
-- const wchar_t *w, size_t len)
-+ const char *w, size_t len)
- {
- /* We cannot use the standard wcstombs() here because it
- * cannot tell us how big the output buffer should be. So
-@@ -847,7 +847,7 @@ archive_string_append_from_wcs(struct ar
- */
- int
- archive_string_append_from_wcs(struct archive_string *as,
-- const wchar_t *w, size_t len)
-+ const char *w, size_t len)
- {
- (void)as;/* UNUSED */
- (void)w;/* UNUSED */
-@@ -1846,7 +1846,7 @@ archive_string_conversion_set_opt(struct
- switch (opt) {
- /*
- * A filename in UTF-8 was made with libarchive 2.x in a wrong
-- * assumption that wchar_t was Unicode.
-+ * assumption that char was Unicode.
- * This option enables simulating the assumption in order to read
- * that filename correctly.
- */
-@@ -1854,7 +1854,7 @@ archive_string_conversion_set_opt(struct
- #if (defined(_WIN32) && !defined(__CYGWIN__)) \
- || defined(__STDC_ISO_10646__) || defined(__APPLE__)
- /*
-- * Nothing to do for it since wchar_t on these platforms
-+ * Nothing to do for it since char on these platforms
- * is really Unicode.
- */
- (void)sc; /* UNUSED */
-@@ -2194,7 +2194,7 @@ invalid_mbs(const void *_p, size_t n, st
- mbtowc(NULL, NULL, 0);
- #endif
- while (n) {
-- wchar_t wc;
-+ char wc;
-
- #if HAVE_MBRTOWC
- r = mbrtowc(&wc, p, n, &shift_state);
-@@ -2597,7 +2597,7 @@ unicode_to_utf16be(char *p, size_t remai
-
- if (uc > 0xffff) {
- /* We have a code point that won't fit into a
-- * wchar_t; convert it to a surrogate pair. */
-+ * char; convert it to a surrogate pair. */
- if (remaining < 4)
- return (0);
- uc -= 0x10000;
-@@ -2619,7 +2619,7 @@ unicode_to_utf16le(char *p, size_t remai
-
- if (uc > 0xffff) {
- /* We have a code point that won't fit into a
-- * wchar_t; convert it to a surrogate pair. */
-+ * char; convert it to a surrogate pair. */
- if (remaining < 4)
- return (0);
- uc -= 0x10000;
-@@ -3445,7 +3445,7 @@ strncat_from_utf8_libarchive2(struct arc
- p = as->s + as->length;
- end = as->s + as->buffer_length - MB_CUR_MAX -1;
- while ((n = _utf8_to_unicode(&unicode, s, len)) != 0) {
-- wchar_t wc;
-+ char wc;
-
- if (p >= end) {
- as->length = p - as->s;
-@@ -3466,7 +3466,7 @@ strncat_from_utf8_libarchive2(struct arc
- n *= -1;
- wc = L'?';
- } else
-- wc = (wchar_t)unicode;
-+ wc = (char)unicode;
-
- s += n;
- len -= n;
-@@ -3935,7 +3935,7 @@ archive_mstring_get_mbs(struct archive *
-
- int
- archive_mstring_get_wcs(struct archive *a, struct archive_mstring *aes,
-- const wchar_t **wp)
-+ const char **wp)
- {
- int r, ret = 0;
-
-@@ -4053,7 +4053,7 @@ archive_mstring_copy_mbs_len(struct arch
- }
-
- int
--archive_mstring_copy_wcs(struct archive_mstring *aes, const wchar_t *wcs)
-+archive_mstring_copy_wcs(struct archive_mstring *aes, const char *wcs)
- {
- return archive_mstring_copy_wcs_len(aes, wcs,
- wcs == NULL ? 0 : wcslen(wcs));
-@@ -4074,7 +4074,7 @@ archive_mstring_copy_utf8(struct archive
- }
-
- int
--archive_mstring_copy_wcs_len(struct archive_mstring *aes, const wchar_t *wcs,
-+archive_mstring_copy_wcs_len(struct archive_mstring *aes, const char *wcs,
- size_t len)
- {
- if (wcs == NULL) {
-@@ -4120,7 +4120,7 @@ archive_mstring_copy_mbs_len_l(struct ar
- /*
- * This case happens only when MultiByteToWideChar() cannot
- * handle sc->from_cp, and we have to iconv in order to
-- * translate character-set to wchar_t,UTF-16.
-+ * translate character-set to char,UTF-16.
- */
- iconv_t cd = sc->cd;
- unsigned from_cp;
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_string.h b/Utilities/cmlibarchive/libarchive/archive_string.h
---- a/Utilities/cmlibarchive/libarchive/archive_string.h 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_string.h 2021-02-11 18:43:34.445862611 +0330
-@@ -37,7 +37,7 @@
-
- #include <stdarg.h>
- #ifdef HAVE_STDLIB_H
--#include <stdlib.h> /* required for wchar_t on some systems */
-+#include <stdlib.h> /* required for char on some systems */
- #endif
- #ifdef HAVE_STRING_H
- #include <string.h>
-@@ -62,7 +62,7 @@ struct archive_string {
- };
-
- struct archive_wstring {
-- wchar_t *s; /* Pointer to the storage */
-+ char *s; /* Pointer to the storage */
- size_t length; /* Length of 's' in characters */
- size_t buffer_length; /* Length of malloc-ed storage in bytes. */
- };
-@@ -77,9 +77,9 @@ struct archive_string_conv;
- struct archive_string *
- archive_strappend_char(struct archive_string *, char);
-
--/* Ditto for a wchar_t and an archive_wstring. */
-+/* Ditto for a char and an archive_wstring. */
- struct archive_wstring *
--archive_wstrappend_wchar(struct archive_wstring *, wchar_t);
-+archive_wstrappend_wchar(struct archive_wstring *, char);
-
- /* Append a raw array to an archive_string, resizing as necessary */
- struct archive_string *
-@@ -88,7 +88,7 @@ archive_array_append(struct archive_stri
- /* Convert a Unicode string to current locale and append the result. */
- /* Returns -1 if conversion fails. */
- int
--archive_string_append_from_wcs(struct archive_string *, const wchar_t *, size_t);
-+archive_string_append_from_wcs(struct archive_string *, const char *, size_t);
-
-
- /* Create a string conversion object.
-@@ -155,13 +155,13 @@ archive_wstring_ensure(struct archive_ws
- struct archive_string *
- archive_strncat(struct archive_string *, const void *, size_t);
- struct archive_wstring *
--archive_wstrncat(struct archive_wstring *, const wchar_t *, size_t);
-+archive_wstrncat(struct archive_wstring *, const char *, size_t);
-
- /* Append a C string to an archive_string, resizing as necessary. */
- struct archive_string *
- archive_strcat(struct archive_string *, const void *);
- struct archive_wstring *
--archive_wstrcat(struct archive_wstring *, const wchar_t *);
-+archive_wstrcat(struct archive_wstring *, const char *);
-
- /* Copy a C string to an archive_string, resizing as necessary. */
- #define archive_strcpy(as,p) \
-@@ -225,16 +225,16 @@ void archive_mstring_clean(struct archiv
- void archive_mstring_copy(struct archive_mstring *dest, struct archive_mstring *src);
- int archive_mstring_get_mbs(struct archive *, struct archive_mstring *, const char **);
- int archive_mstring_get_utf8(struct archive *, struct archive_mstring *, const char **);
--int archive_mstring_get_wcs(struct archive *, struct archive_mstring *, const wchar_t **);
-+int archive_mstring_get_wcs(struct archive *, struct archive_mstring *, const char **);
- int archive_mstring_get_mbs_l(struct archive_mstring *, const char **,
- size_t *, struct archive_string_conv *);
- int archive_mstring_copy_mbs(struct archive_mstring *, const char *mbs);
- int archive_mstring_copy_mbs_len(struct archive_mstring *, const char *mbs,
- size_t);
- int archive_mstring_copy_utf8(struct archive_mstring *, const char *utf8);
--int archive_mstring_copy_wcs(struct archive_mstring *, const wchar_t *wcs);
-+int archive_mstring_copy_wcs(struct archive_mstring *, const char *wcs);
- int archive_mstring_copy_wcs_len(struct archive_mstring *,
-- const wchar_t *wcs, size_t);
-+ const char *wcs, size_t);
- int archive_mstring_copy_mbs_len_l(struct archive_mstring *,
- const char *mbs, size_t, struct archive_string_conv *);
- int archive_mstring_update_utf8(struct archive *, struct archive_mstring *aes, const char *utf8);
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_string_sprintf.c b/Utilities/cmlibarchive/libarchive/archive_string_sprintf.c
---- a/Utilities/cmlibarchive/libarchive/archive_string_sprintf.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_string_sprintf.c 2021-02-11 18:43:34.449195998 +0330
-@@ -95,7 +95,7 @@ archive_string_vsprintf(struct archive_s
- intmax_t s; /* Signed integer temp. */
- uintmax_t u; /* Unsigned integer temp. */
- const char *p, *p2;
-- const wchar_t *pw;
-+ const char *pw;
-
- if (archive_string_ensure(as, 64) == NULL)
- __archive_errx(1, "Out of memory");
-@@ -145,9 +145,9 @@ archive_string_vsprintf(struct archive_s
- case 's':
- switch(long_flag) {
- case 'l':
-- pw = va_arg(ap, wchar_t *);
-+ pw = va_arg(ap, char *);
- if (pw == NULL)
-- pw = L"(null)";
-+ pw = "(null)";
- if (archive_string_append_from_wcs(as, pw,
- wcslen(pw)) != 0 && errno == ENOMEM)
- __archive_errx(1, "Out of memory");
-@@ -161,9 +161,9 @@ archive_string_vsprintf(struct archive_s
- }
- break;
- case 'S':
-- pw = va_arg(ap, wchar_t *);
-+ pw = va_arg(ap, char *);
- if (pw == NULL)
-- pw = L"(null)";
-+ pw = "(null)";
- if (archive_string_append_from_wcs(as, pw,
- wcslen(pw)) != 0 && errno == ENOMEM)
- __archive_errx(1, "Out of memory");
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_util.c b/Utilities/cmlibarchive/libarchive/archive_util.c
---- a/Utilities/cmlibarchive/libarchive/archive_util.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_util.c 2021-02-11 18:43:34.399195209 +0330
-@@ -219,11 +219,11 @@ __archive_errx(int retvalue, const char
- * are not secure.
- */
- static int
--__archive_mktempx(const char *tmpdir, wchar_t *template)
-+__archive_mktempx(const char *tmpdir, char *template)
- {
-- static const wchar_t prefix[] = L"libarchive_";
-- static const wchar_t suffix[] = L"XXXXXXXXXX";
-- static const wchar_t num[] = {
-+ static const char prefix[] = "libarchive_";
-+ static const char suffix[] = "XXXXXXXXXX";
-+ static const char num[] = {
- L'0', L'1', L'2', L'3', L'4', L'5', L'6', L'7',
- L'8', L'9', L'A', L'B', L'C', L'D', L'E', L'F',
- L'G', L'H', L'I', L'J', L'K', L'L', L'M', L'N',
-@@ -235,9 +235,9 @@ __archive_mktempx(const char *tmpdir, wc
- };
- HCRYPTPROV hProv;
- struct archive_wstring temp_name;
-- wchar_t *ws;
-+ char *ws;
- DWORD attr;
-- wchar_t *xp, *ep;
-+ char *xp, *ep;
- int fd;
-
- hProv = (HCRYPTPROV)NULL;
-@@ -250,14 +250,14 @@ __archive_mktempx(const char *tmpdir, wc
- /* Get a temporary directory. */
- if (tmpdir == NULL) {
- size_t l;
-- wchar_t *tmp;
-+ char *tmp;
-
- l = GetTempPathW(0, NULL);
- if (l == 0) {
- la_dosmaperr(GetLastError());
- goto exit_tmpfile;
- }
-- tmp = malloc(l*sizeof(wchar_t));
-+ tmp = malloc(l*sizeof(char));
- if (tmp == NULL) {
- errno = ENOMEM;
- goto exit_tmpfile;
-@@ -321,12 +321,12 @@ __archive_mktempx(const char *tmpdir, wc
- }
-
- for (;;) {
-- wchar_t *p;
-+ char *p;
- HANDLE h;
-
- /* Generate a random file name through CryptGenRandom(). */
- p = xp;
-- if (!CryptGenRandom(hProv, (DWORD)(ep - p)*sizeof(wchar_t),
-+ if (!CryptGenRandom(hProv, (DWORD)(ep - p)*sizeof(char),
- (BYTE*)p)) {
- la_dosmaperr(GetLastError());
- goto exit_tmpfile;
-@@ -386,7 +386,7 @@ __archive_mktemp(const char *tmpdir)
- }
-
- int
--__archive_mkstemp(wchar_t *template)
-+__archive_mkstemp(char *template)
- {
- return __archive_mktempx(NULL, template);
- }
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_windows.c b/Utilities/cmlibarchive/libarchive/archive_windows.c
---- a/Utilities/cmlibarchive/libarchive/archive_windows.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_windows.c 2021-02-11 18:43:34.419195524 +0330
-@@ -119,15 +119,15 @@ getino(struct ustat *ub)
- * characters.
- * see also http://msdn.microsoft.com/en-us/library/aa365247.aspx
- */
--wchar_t *
-+char *
- __la_win_permissive_name(const char *name)
- {
-- wchar_t *wn;
-- wchar_t *ws;
-+ char *wn;
-+ char *ws;
- size_t ll;
-
- ll = strlen(name);
-- wn = malloc((ll + 1) * sizeof(wchar_t));
-+ wn = malloc((ll + 1) * sizeof(char));
- if (wn == NULL)
- return (NULL);
- ll = mbstowcs(wn, name, ll);
-@@ -141,11 +141,11 @@ __la_win_permissive_name(const char *nam
- return (ws);
- }
-
--wchar_t *
--__la_win_permissive_name_w(const wchar_t *wname)
-+char *
-+__la_win_permissive_name_w(const char *wname)
- {
-- wchar_t *wn, *wnp;
-- wchar_t *ws, *wsp;
-+ char *wn, *wnp;
-+ char *ws, *wsp;
- DWORD l, len, slen;
- int unc;
-
-@@ -158,7 +158,7 @@ __la_win_permissive_name_w(const wchar_t
- * have to add three to the size to allocate a sufficient buffer
- * size for the full-pathname of the file name. */
- l += 3;
-- wnp = malloc(l * sizeof(wchar_t));
-+ wnp = malloc(l * sizeof(char));
- if (wnp == NULL)
- return (NULL);
- len = GetFullPathNameW(wname, l, wnp, NULL);
-@@ -181,13 +181,13 @@ __la_win_permissive_name_w(const wchar_t
-
- unc = 0;
- if (wnp[0] == L'\\' && wnp[1] == L'\\' && wnp[2] != L'\\') {
-- wchar_t *p = &wnp[2];
-+ char *p = &wnp[2];
-
- /* Skip server-name letters. */
- while (*p != L'\\' && *p != L'\0')
- ++p;
- if (*p == L'\\') {
-- wchar_t *rp = ++p;
-+ char *rp = ++p;
- /* Skip share-name letters. */
- while (*p != L'\\' && *p != L'\0')
- ++p;
-@@ -202,18 +202,18 @@ __la_win_permissive_name_w(const wchar_t
- }
-
- slen = 4 + (unc * 4) + len + 1;
-- ws = wsp = malloc(slen * sizeof(wchar_t));
-+ ws = wsp = malloc(slen * sizeof(char));
- if (ws == NULL) {
- free(wn);
- return (NULL);
- }
- /* prepend "\\?\" */
-- wcsncpy(wsp, L"\\\\?\\", 4);
-+ wcsncpy(wsp, "\\\\?\\", 4);
- wsp += 4;
- slen -= 4;
- if (unc) {
- /* append "UNC\" ---> "\\?\UNC\" */
-- wcsncpy(wsp, L"UNC\\", 4);
-+ wcsncpy(wsp, "UNC\\", 4);
- wsp += 4;
- slen -= 4;
- }
-@@ -232,7 +232,7 @@ la_CreateFile(const char *path, DWORD dw
- LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition,
- DWORD dwFlagsAndAttributes, HANDLE hTemplateFile)
- {
-- wchar_t *wpath;
-+ char *wpath;
- HANDLE handle;
-
- handle = CreateFileA(path, dwDesiredAccess, dwShareMode,
-@@ -291,7 +291,7 @@ int
- __la_open(const char *path, int flags, ...)
- {
- va_list ap;
-- wchar_t *ws;
-+ char *ws;
- int r, pmode;
- DWORD attr;
-
-@@ -683,9 +683,9 @@ __la_write(int fd, const void *buf, size
- * Replace the Windows path separator '\' with '/'.
- */
- static int
--replace_pathseparator(struct archive_wstring *ws, const wchar_t *wp)
-+replace_pathseparator(struct archive_wstring *ws, const char *wp)
- {
-- wchar_t *w;
-+ char *w;
- size_t path_length;
-
- if (wp == NULL)
-@@ -707,7 +707,7 @@ static int
- fix_pathseparator(struct archive_entry *entry)
- {
- struct archive_wstring ws;
-- const wchar_t *wp;
-+ const char *wp;
- int ret = ARCHIVE_OK;
-
- archive_string_init(&ws);
-@@ -749,7 +749,7 @@ struct archive_entry *
- __la_win_entry_in_posix_pathseparator(struct archive_entry *entry)
- {
- struct archive_entry *entry_main;
-- const wchar_t *wp;
-+ const char *wp;
- int has_backslash = 0;
- int ret;
-
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_windows.h b/Utilities/cmlibarchive/libarchive/archive_windows.h
---- a/Utilities/cmlibarchive/libarchive/archive_windows.h 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_windows.h 2021-02-11 18:43:34.439195839 +0330
-@@ -288,8 +288,8 @@ extern ssize_t __la_write(int fd, const
- #define WIFEXITED(sts) ((sts & 0x100) == 0)
- #define WEXITSTATUS(sts) (sts & 0x0FF)
-
--extern wchar_t *__la_win_permissive_name(const char *name);
--extern wchar_t *__la_win_permissive_name_w(const wchar_t *wname);
-+extern char *__la_win_permissive_name(const char *name);
-+extern char *__la_win_permissive_name_w(const char *wname);
- extern void __la_dosmaperr(unsigned long e);
- #define la_dosmaperr(e) __la_dosmaperr(e)
- extern struct archive_entry *__la_win_entry_in_posix_pathseparator(
-@@ -297,7 +297,7 @@ extern struct archive_entry *__la_win_en
-
- #if defined(HAVE_WCRTOMB) && defined(__BORLANDC__)
- typedef int mbstate_t;
--size_t wcrtomb(char *, wchar_t, mbstate_t *);
-+size_t wcrtomb(char *, char, mbstate_t *);
- #endif
-
- #if defined(_MSC_VER) && _MSC_VER < 1300
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_write_disk_posix.c b/Utilities/cmlibarchive/libarchive/archive_write_disk_posix.c
---- a/Utilities/cmlibarchive/libarchive/archive_write_disk_posix.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_write_disk_posix.c 2021-02-12 14:39:59.857852509 +0330
-@@ -2978,7 +2978,7 @@ check_symlinks(struct archive_write_disk
- static void
- cleanup_pathname_win(char *path)
- {
-- wchar_t wc;
-+ char wc;
- char *p;
- size_t alen, l;
- int mb, complete, utf8;
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_write_disk_windows.c b/Utilities/cmlibarchive/libarchive/archive_write_disk_windows.c
---- a/Utilities/cmlibarchive/libarchive/archive_write_disk_windows.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_write_disk_windows.c 2021-02-11 18:43:34.419195524 +0330
-@@ -99,7 +99,7 @@ struct fixup_entry {
- unsigned long ctime_nanos;
- unsigned long fflags_set;
- int fixup; /* bitmask of what needs fixing */
-- wchar_t *name;
-+ char *name;
- };
-
- /*
-@@ -163,9 +163,9 @@ struct archive_write_disk {
-
- /* Information about the object being restored right now. */
- struct archive_entry *entry; /* Entry being extracted. */
-- wchar_t *name; /* Name of entry, possibly edited. */
-+ char *name; /* Name of entry, possibly edited. */
- struct archive_wstring _name_data; /* backing store for 'name' */
-- wchar_t *tmpname; /* Temporary name */
-+ char *tmpname; /* Temporary name */
- struct archive_wstring _tmpname_data; /* backing store for 'tmpname' */
- /* Tasks remaining for this object. */
- int todo;
-@@ -207,31 +207,31 @@ struct archive_write_disk {
- #define MINIMUM_DIR_MODE 0700
- #define MAXIMUM_DIR_MODE 0775
-
--static int disk_unlink(const wchar_t *);
--static int disk_rmdir(const wchar_t *);
-+static int disk_unlink(const char *);
-+static int disk_rmdir(const char *);
- static int check_symlinks(struct archive_write_disk *);
- static int create_filesystem_object(struct archive_write_disk *);
- static struct fixup_entry *current_fixup(struct archive_write_disk *,
-- const wchar_t *pathname);
-+ const char *pathname);
- static int cleanup_pathname(struct archive_write_disk *);
--static int create_dir(struct archive_write_disk *, wchar_t *);
--static int create_parent_dir(struct archive_write_disk *, wchar_t *);
--static int la_chmod(const wchar_t *, mode_t);
-+static int create_dir(struct archive_write_disk *, char *);
-+static int create_parent_dir(struct archive_write_disk *, char *);
-+static int la_chmod(const char *, mode_t);
- static int la_mktemp(struct archive_write_disk *);
- static int older(BY_HANDLE_FILE_INFORMATION *, struct archive_entry *);
- static int permissive_name_w(struct archive_write_disk *);
- static int restore_entry(struct archive_write_disk *);
- static int set_acls(struct archive_write_disk *, HANDLE h,
-- const wchar_t *, struct archive_acl *);
-+ const char *, struct archive_acl *);
- static int set_xattrs(struct archive_write_disk *);
- static int clear_nochange_fflags(struct archive_write_disk *);
- static int set_fflags(struct archive_write_disk *);
--static int set_fflags_platform(const wchar_t *, unsigned long,
-+static int set_fflags_platform(const char *, unsigned long,
- unsigned long);
- static int set_ownership(struct archive_write_disk *);
- static int set_mode(struct archive_write_disk *, int mode);
- static int set_times(struct archive_write_disk *, HANDLE, int,
-- const wchar_t *, time_t, long, time_t, long, time_t,
-+ const char *, time_t, long, time_t, long, time_t,
- long, time_t, long);
- static int set_times_from_entry(struct archive_write_disk *);
- static struct fixup_entry *sort_dir_list(struct fixup_entry *p);
-@@ -261,7 +261,7 @@ static ssize_t _archive_write_disk_data_
- ((((int64_t)(bhfi)->nFileSizeHigh) << 32) + (bhfi)->nFileSizeLow)
-
- static int
--file_information(struct archive_write_disk *a, wchar_t *path,
-+file_information(struct archive_write_disk *a, char *path,
- BY_HANDLE_FILE_INFORMATION *st, mode_t *mode, int sim_lstat)
- {
- HANDLE h;
-@@ -273,7 +273,7 @@ file_information(struct archive_write_di
- h = FindFirstFileW(path, &findData);
- if (h == INVALID_HANDLE_VALUE &&
- GetLastError() == ERROR_INVALID_NAME) {
-- wchar_t *full;
-+ char *full;
- full = __la_win_permissive_name_w(path);
- h = FindFirstFileW(full, &findData);
- free(full);
-@@ -296,7 +296,7 @@ file_information(struct archive_write_di
- OPEN_EXISTING, flag, NULL);
- if (h == INVALID_HANDLE_VALUE &&
- GetLastError() == ERROR_INVALID_NAME) {
-- wchar_t *full;
-+ char *full;
- full = __la_win_permissive_name_w(path);
- h = CreateFileW(full, 0, 0, NULL,
- OPEN_EXISTING, flag, NULL);
-@@ -325,7 +325,7 @@ file_information(struct archive_write_di
- else if (st->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
- *mode |= S_IFDIR | S_IXUSR | S_IXGRP | S_IXOTH;
- else {
-- const wchar_t *p;
-+ const char *p;
-
- *mode |= S_IFREG;
- p = wcsrchr(path, L'.');
-@@ -364,8 +364,8 @@ file_information(struct archive_write_di
- static int
- permissive_name_w(struct archive_write_disk *a)
- {
-- wchar_t *wn, *wnp;
-- wchar_t *ws, *wsp;
-+ char *wn, *wnp;
-+ char *ws, *wsp;
- DWORD l;
-
- wnp = a->name;
-@@ -397,7 +397,7 @@ permissive_name_w(struct archive_write_d
- archive_wstring_ensure(&(a->_name_data), 4 + wcslen(wn) + 1);
- a->name = a->_name_data.s;
- /* Prepend "\\?\" */
-- archive_wstrncpy(&(a->_name_data), L"\\\\?\\", 4);
-+ archive_wstrncpy(&(a->_name_data), "\\\\?\\", 4);
- archive_wstrcat(&(a->_name_data), wn);
- free(wn);
- return (0);
-@@ -408,13 +408,13 @@ permissive_name_w(struct archive_write_d
- * like "\\<server-name>\<share-name>\file".
- */
- if (wnp[0] == L'\\' && wnp[1] == L'\\' && wnp[2] != L'\\') {
-- const wchar_t *p = &wnp[2];
-+ const char *p = &wnp[2];
-
- /* Skip server-name letters. */
- while (*p != L'\\' && *p != L'\0')
- ++p;
- if (*p == L'\\') {
-- const wchar_t *rp = ++p;
-+ const char *rp = ++p;
- /* Skip share-name letters. */
- while (*p != L'\\' && *p != L'\0')
- ++p;
-@@ -429,7 +429,7 @@ permissive_name_w(struct archive_write_d
- a->name = a->_name_data.s;
- /* Prepend "\\?\UNC\" */
- archive_wstrncpy(&(a->_name_data),
-- L"\\\\?\\UNC\\", 8);
-+ "\\\\?\\UNC\\", 8);
- archive_wstrcat(&(a->_name_data), wn+2);
- free(wn);
- return (0);
-@@ -444,7 +444,7 @@ permissive_name_w(struct archive_write_d
- l = GetCurrentDirectoryW(0, NULL);
- if (l == 0)
- return (-1);
-- ws = malloc(l * sizeof(wchar_t));
-+ ws = malloc(l * sizeof(char));
- l = GetCurrentDirectoryW(l, ws);
- if (l == 0) {
- free(ws);
-@@ -463,7 +463,7 @@ permissive_name_w(struct archive_write_d
- 4 + 2 + wcslen(wn) + 1);
- a->name = a->_name_data.s;
- /* Prepend "\\?\" and drive name. */
-- archive_wstrncpy(&(a->_name_data), L"\\\\?\\", 4);
-+ archive_wstrncpy(&(a->_name_data), "\\\\?\\", 4);
- archive_wstrncat(&(a->_name_data), wsp, 2);
- archive_wstrcat(&(a->_name_data), wn);
- free(wsp);
-@@ -484,15 +484,15 @@ permissive_name_w(struct archive_write_d
- }
- else if (l > 2 && wsp[0] == L'\\' && wsp[1] == L'\\' && wsp[2] != L'\\')
- {
-- archive_wstrncpy(&(a->_name_data), L"\\\\?\\UNC\\", 8);
-+ archive_wstrncpy(&(a->_name_data), "\\\\?\\UNC\\", 8);
- archive_wstrncat(&(a->_name_data), wsp+2, l-2);
- }
- else
- {
-- archive_wstrncpy(&(a->_name_data), L"\\\\?\\", 4);
-+ archive_wstrncpy(&(a->_name_data), "\\\\?\\", 4);
- archive_wstrncat(&(a->_name_data), wsp, l);
- }
-- archive_wstrncat(&(a->_name_data), L"\\", 1);
-+ archive_wstrncat(&(a->_name_data), "\\", 1);
- archive_wstrcat(&(a->_name_data), wn);
- a->name = a->_name_data.s;
- free(wsp);
-@@ -501,11 +501,11 @@ permissive_name_w(struct archive_write_d
- }
-
- static int
--la_chmod(const wchar_t *path, mode_t mode)
-+la_chmod(const char *path, mode_t mode)
- {
- DWORD attr;
- BOOL r;
-- wchar_t *fullname;
-+ char *fullname;
- int ret = 0;
-
- fullname = NULL;
-@@ -545,7 +545,7 @@ la_mktemp(struct archive_write_disk *a)
-
- archive_wstring_empty(&(a->_tmpname_data));
- archive_wstrcpy(&(a->_tmpname_data), a->name);
-- archive_wstrcat(&(a->_tmpname_data), L".XXXXXX");
-+ archive_wstrcat(&(a->_tmpname_data), ".XXXXXX");
- a->tmpname = a->_tmpname_data.s;
-
- fd = __archive_mkstemp(a->tmpname);
-@@ -576,7 +576,7 @@ la_GetFunctionKernel32(const char *name)
- }
-
- static int
--la_CreateHardLinkW(wchar_t *linkname, wchar_t *target)
-+la_CreateHardLinkW(char *linkname, char *target)
- {
- static BOOLEAN (WINAPI *f)(LPWSTR, LPWSTR, LPSECURITY_ATTRIBUTES);
- static int set;
-@@ -598,12 +598,12 @@ la_CreateHardLinkW(wchar_t *linkname, wc
- (name[1] == L'N' || name[1] == L'n') && \
- (name[2] == L'C' || name[2] == L'c') && \
- name[3] == L'\\')
-- if (!wcsncmp(linkname,L"\\\\?\\", 4)) {
-+ if (!wcsncmp(linkname,"\\\\?\\", 4)) {
- linkname += 4;
- if (IS_UNC(linkname))
- linkname += 4;
- }
-- if (!wcsncmp(target,L"\\\\?\\", 4)) {
-+ if (!wcsncmp(target,"\\\\?\\", 4)) {
- target += 4;
- if (IS_UNC(target))
- target += 4;
-@@ -621,11 +621,11 @@ la_CreateHardLinkW(wchar_t *linkname, wc
- * the link target
- */
- static int
--la_CreateSymbolicLinkW(const wchar_t *linkname, const wchar_t *target,
-+la_CreateSymbolicLinkW(const char *linkname, const char *target,
- int linktype) {
- static BOOLEAN (WINAPI *f)(LPCWSTR, LPCWSTR, DWORD);
- static int set;
-- wchar_t *ttarget, *p;
-+ char *ttarget, *p;
- int len;
- DWORD attrs = 0;
- DWORD flags = 0;
-@@ -648,7 +648,7 @@ la_CreateSymbolicLinkW(const wchar_t *li
- * When writing path targets, we need to translate slashes
- * to backslashes
- */
-- ttarget = malloc((len + 1) * sizeof(wchar_t));
-+ ttarget = malloc((len + 1) * sizeof(char));
- if (ttarget == NULL)
- return(0);
-
-@@ -1381,9 +1381,9 @@ archive_write_disk_new(void)
- }
-
- static int
--disk_unlink(const wchar_t *path)
-+disk_unlink(const char *path)
- {
-- wchar_t *fullname;
-+ char *fullname;
- int r;
-
- r = _wunlink(path);
-@@ -1396,9 +1396,9 @@ disk_unlink(const wchar_t *path)
- }
-
- static int
--disk_rmdir(const wchar_t *path)
-+disk_rmdir(const char *path)
- {
-- wchar_t *fullname;
-+ char *fullname;
- int r;
-
- r = _wrmdir(path);
-@@ -1450,7 +1450,7 @@ restore_entry(struct archive_write_disk
-
- if ((en == ENOTDIR || en == ENOENT)
- && !(a->flags & ARCHIVE_EXTRACT_NO_AUTODIR)) {
-- wchar_t *full;
-+ char *full;
- /* If the parent dir doesn't exist, try creating it. */
- create_parent_dir(a, a->name);
- /* Now try to create the object again. */
-@@ -1652,8 +1652,8 @@ static int
- create_filesystem_object(struct archive_write_disk *a)
- {
- /* Create the entry. */
-- const wchar_t *linkname;
-- wchar_t *fullname;
-+ const char *linkname;
-+ char *fullname;
- mode_t final_mode, mode;
- int r;
- DWORD attrs = 0;
-@@ -1662,7 +1662,7 @@ create_filesystem_object(struct archive_
- /* Since link(2) and symlink(2) don't handle modes, we're done here. */
- linkname = archive_entry_hardlink_w(a->entry);
- if (linkname != NULL) {
-- wchar_t *linkfull, *namefull;
-+ char *linkfull, *namefull;
-
- linkfull = __la_win_permissive_name_w(linkname);
- namefull = __la_win_permissive_name_w(a->name);
-@@ -1736,7 +1736,7 @@ create_filesystem_object(struct archive_
- return symlink(linkname, a->name) ? errno : 0;
- #else
- errno = 0;
-- r = la_CreateSymbolicLinkW((const wchar_t *)a->name, linkname,
-+ r = la_CreateSymbolicLinkW((const char *)a->name, linkname,
- archive_entry_symlink_type(a->entry));
- if (r == 0) {
- if (errno == 0)
-@@ -2006,7 +2006,7 @@ sort_dir_list(struct fixup_entry *p)
- * structure rather than a simple list of names.
- */
- static struct fixup_entry *
--new_fixup(struct archive_write_disk *a, const wchar_t *pathname)
-+new_fixup(struct archive_write_disk *a, const char *pathname)
- {
- struct fixup_entry *fe;
-
-@@ -2025,7 +2025,7 @@ new_fixup(struct archive_write_disk *a,
- * Returns a fixup structure for the current entry.
- */
- static struct fixup_entry *
--current_fixup(struct archive_write_disk *a, const wchar_t *pathname)
-+current_fixup(struct archive_write_disk *a, const char *pathname)
- {
- if (a->current_fixup == NULL)
- a->current_fixup = new_fixup(a, pathname);
-@@ -2044,8 +2044,8 @@ current_fixup(struct archive_write_disk
- static int
- check_symlinks(struct archive_write_disk *a)
- {
-- wchar_t *pn, *p;
-- wchar_t c;
-+ char *pn, *p;
-+ char c;
- int r;
- BY_HANDLE_FILE_INFORMATION st;
- mode_t st_mode;
-@@ -2153,7 +2153,7 @@ check_symlinks(struct archive_write_disk
- }
-
- static int
--guidword(wchar_t *p, int n)
-+guidword(char *p, int n)
- {
- int i;
-
-@@ -2177,8 +2177,8 @@ guidword(wchar_t *p, int n)
- static int
- cleanup_pathname(struct archive_write_disk *a)
- {
-- wchar_t *dest, *src, *p, *top;
-- wchar_t separator = L'\0';
-+ char *dest, *src, *p, *top;
-+ char separator = L'\0';
-
- p = a->name;
- if (*p == L'\0') {
-@@ -2349,9 +2349,9 @@ cleanup_pathname(struct archive_write_di
- * is already in mutable storage.
- */
- static int
--create_parent_dir(struct archive_write_disk *a, wchar_t *path)
-+create_parent_dir(struct archive_write_disk *a, char *path)
- {
-- wchar_t *slash;
-+ char *slash;
- int r;
-
- /* Remove tail element to obtain parent name. */
-@@ -2372,11 +2372,11 @@ create_parent_dir(struct archive_write_d
- * Assumes path is in mutable storage; path is unchanged on exit.
- */
- static int
--create_dir(struct archive_write_disk *a, wchar_t *path)
-+create_dir(struct archive_write_disk *a, char *path)
- {
- BY_HANDLE_FILE_INFORMATION st;
- struct fixup_entry *le;
-- wchar_t *slash, *base, *full;
-+ char *slash, *base, *full;
- mode_t mode_final, mode, st_mode;
- int r;
-
-@@ -2512,7 +2512,7 @@ set_ownership(struct archive_write_disk
-
- static int
- set_times(struct archive_write_disk *a,
-- HANDLE h, int mode, const wchar_t *name,
-+ HANDLE h, int mode, const char *name,
- time_t atime, long atime_nanos,
- time_t birthtime, long birthtime_nanos,
- time_t mtime, long mtime_nanos,
-@@ -2533,7 +2533,7 @@ set_times(struct archive_write_disk *a,
- if (h != INVALID_HANDLE_VALUE) {
- hw = NULL;
- } else {
-- wchar_t *ws;
-+ char *ws;
-
- if (S_ISLNK(mode))
- return (ARCHIVE_OK);
-@@ -2695,11 +2695,11 @@ set_mode(struct archive_write_disk *a, i
- return (r);
- }
-
--static int set_fflags_platform(const wchar_t *name, unsigned long fflags_set,
-+static int set_fflags_platform(const char *name, unsigned long fflags_set,
- unsigned long fflags_clear)
- {
- DWORD oldflags, newflags;
-- wchar_t *fullname;
-+ char *fullname;
-
- const DWORD settable_flags =
- FILE_ATTRIBUTE_ARCHIVE |
-@@ -2750,7 +2750,7 @@ set_fflags(struct archive_write_disk *a)
-
- /* Default empty function body to satisfy mainline code. */
- static int
--set_acls(struct archive_write_disk *a, HANDLE h, const wchar_t *name,
-+set_acls(struct archive_write_disk *a, HANDLE h, const char *name,
- struct archive_acl *acl)
- {
- (void)a; /* UNUSED */
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_write_open_filename.c b/Utilities/cmlibarchive/libarchive/archive_write_open_filename.c
---- a/Utilities/cmlibarchive/libarchive/archive_write_open_filename.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_write_open_filename.c 2021-02-11 18:43:34.379194894 +0330
-@@ -83,7 +83,7 @@ archive_write_open_filename(struct archi
- }
-
- int
--archive_write_open_filename_w(struct archive *a, const wchar_t *filename)
-+archive_write_open_filename_w(struct archive *a, const char *filename)
- {
-
- if (filename == NULL || filename[0] == L'\0')
-@@ -119,7 +119,7 @@ open_filename(struct archive *a, int mbs
- else
- archive_set_error(a, ARCHIVE_ERRNO_MISC,
- "Can't convert '%S' to MBS",
-- (const wchar_t *)filename);
-+ (const char *)filename);
- return (ARCHIVE_FAILED);
- }
- mine->fd = -1;
-@@ -134,9 +134,9 @@ file_open(struct archive *a, void *clien
- struct write_file_data *mine;
- struct stat st;
- #if defined(_WIN32) && !defined(__CYGWIN__)
-- wchar_t *fullpath;
-+ char *fullpath;
- #endif
-- const wchar_t *wcs;
-+ const char *wcs;
- const char *mbs;
-
- mine = (struct write_file_data *)client_data;
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_write_set_format_gnutar.c b/Utilities/cmlibarchive/libarchive/archive_write_set_format_gnutar.c
---- a/Utilities/cmlibarchive/libarchive/archive_write_set_format_gnutar.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_write_set_format_gnutar.c 2021-02-11 18:43:34.422528911 +0330
-@@ -309,7 +309,7 @@ archive_write_gnutar_header(struct archi
- * the client sees the change.
- */
- #if defined(_WIN32) && !defined(__CYGWIN__)
-- const wchar_t *wp;
-+ const char *wp;
-
- wp = archive_entry_pathname_w(entry);
- if (wp != NULL && wp[wcslen(wp) -1] != L'/') {
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_write_set_format_iso9660.c b/Utilities/cmlibarchive/libarchive/archive_write_set_format_iso9660.c
---- a/Utilities/cmlibarchive/libarchive/archive_write_set_format_iso9660.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_write_set_format_iso9660.c 2021-02-11 18:43:34.419195524 +0330
-@@ -4692,7 +4692,7 @@ cleanup_backslash_1(char *p)
- }
-
- static void
--cleanup_backslash_2(wchar_t *p)
-+cleanup_backslash_2(char *p)
- {
-
- /* Convert a path-separator from '\' to '/' */
-@@ -4824,7 +4824,7 @@ isofile_gen_utility_names(struct archive
- * Convert a path-separator from '\' to '/'
- */
- if (cleanup_backslash_1(file->parentdir.s) != 0) {
-- const wchar_t *wp = archive_entry_pathname_w(file->entry);
-+ const char *wp = archive_entry_pathname_w(file->entry);
- struct archive_wstring ws;
-
- if (wp != NULL) {
-@@ -4938,7 +4938,7 @@ isofile_gen_utility_names(struct archive
- */
- if (archive_strlen(&(file->symlink)) > 0 &&
- cleanup_backslash_1(file->symlink.s) != 0) {
-- const wchar_t *wp =
-+ const char *wp =
- archive_entry_symlink_w(file->entry);
- struct archive_wstring ws;
-
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_write_set_format_mtree.c b/Utilities/cmlibarchive/libarchive/archive_write_set_format_mtree.c
---- a/Utilities/cmlibarchive/libarchive/archive_write_set_format_mtree.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_write_set_format_mtree.c 2021-02-11 18:43:34.459196155 +0330
-@@ -1702,7 +1702,7 @@ cleanup_backslash_1(char *p)
- }
-
- static void
--cleanup_backslash_2(wchar_t *p)
-+cleanup_backslash_2(char *p)
- {
-
- /* Convert a path-separator from '\' to '/' */
-@@ -1732,7 +1732,7 @@ mtree_entry_setup_filenames(struct archi
- * Convert a path-separator from '\' to '/'
- */
- if (cleanup_backslash_1(file->pathname.s) != 0) {
-- const wchar_t *wp = archive_entry_pathname_w(entry);
-+ const char *wp = archive_entry_pathname_w(entry);
- struct archive_wstring ws;
-
- if (wp != NULL) {
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_write_set_format_pax.c b/Utilities/cmlibarchive/libarchive/archive_write_set_format_pax.c
---- a/Utilities/cmlibarchive/libarchive/archive_write_set_format_pax.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_write_set_format_pax.c 2021-02-11 18:43:34.369194737 +0330
-@@ -653,7 +653,7 @@ archive_write_pax_header(struct archive_
- * entry so the client sees the change.
- */
- #if defined(_WIN32) && !defined(__CYGWIN__)
-- const wchar_t *wp;
-+ const char *wp;
-
- wp = archive_entry_pathname_w(entry_original);
- if (wp != NULL && wp[wcslen(wp) -1] != L'/') {
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_write_set_format_ustar.c b/Utilities/cmlibarchive/libarchive/archive_write_set_format_ustar.c
---- a/Utilities/cmlibarchive/libarchive/archive_write_set_format_ustar.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_write_set_format_ustar.c 2021-02-11 18:43:34.375861508 +0330
-@@ -276,7 +276,7 @@ archive_write_ustar_header(struct archiv
- * the client sees the change.
- */
- #if defined(_WIN32) && !defined(__CYGWIN__)
-- const wchar_t *wp;
-+ const char *wp;
-
- wp = archive_entry_pathname_w(entry);
- if (wp != NULL && wp[wcslen(wp) -1] != L'/') {
-diff -urp a/Utilities/cmlibarchive/libarchive/archive_write_set_format_v7tar.c b/Utilities/cmlibarchive/libarchive/archive_write_set_format_v7tar.c
---- a/Utilities/cmlibarchive/libarchive/archive_write_set_format_v7tar.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/archive_write_set_format_v7tar.c 2021-02-11 18:43:34.372528122 +0330
-@@ -254,7 +254,7 @@ archive_write_v7tar_header(struct archiv
- * the client sees the change.
- */
- #if defined(_WIN32) && !defined(__CYGWIN__)
-- const wchar_t *wp;
-+ const char *wp;
-
- wp = archive_entry_pathname_w(entry);
- if (wp != NULL && wp[wcslen(wp) -1] != L'/') {
-diff -urp a/Utilities/cmlibarchive/libarchive/libarchive_changes.3 b/Utilities/cmlibarchive/libarchive/libarchive_changes.3
---- a/Utilities/cmlibarchive/libarchive/libarchive_changes.3 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibarchive/libarchive/libarchive_changes.3 2021-02-11 18:43:34.365861350 +0330
-@@ -52,7 +52,7 @@ extends the write pipeline with another
- Libarchive2 assumed that the local platform uses
- .Tn Unicode
- as the native
--.Tn wchar_t
-+.Tn char
- encoding, which is true on
- .Tn Windows ,
- modern
-@@ -63,7 +63,7 @@ systems, since pax format requires
- .Tn UTF-8
- and libarchive 2 incorrectly
- assumed that
--.Tn wchar_t
-+.Tn char
- strings can be easily converted to
- .Tn UTF-8 .
- .Pp
-diff -urp a/Utilities/cmlibrhash/librhash/rhash.c b/Utilities/cmlibrhash/librhash/rhash.c
---- a/Utilities/cmlibrhash/librhash/rhash.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibrhash/librhash/rhash.c 2021-02-11 18:43:33.965855044 +0330
-@@ -380,7 +380,7 @@ RHASH_API int rhash_file(unsigned hash_i
- #ifdef _WIN32 /* windows only function */
- #include <share.h>
-
--RHASH_API int rhash_wfile(unsigned hash_id, const wchar_t* filepath, unsigned char* result)
-+RHASH_API int rhash_wfile(unsigned hash_id, const char* filepath, unsigned char* result)
- {
- FILE* fd;
- rhash ctx;
-@@ -392,7 +392,7 @@ RHASH_API int rhash_wfile(unsigned hash_
- return -1;
- }
-
-- if ((fd = _wfsopen(filepath, L"rb", _SH_DENYWR)) == NULL) return -1;
-+ if ((fd = _wfsopen(filepath, "rb", _SH_DENYWR)) == NULL) return -1;
-
- if ((ctx = rhash_init(hash_id)) == NULL) {
- fclose(fd);
-diff -urp a/Utilities/cmlibrhash/librhash/rhash.h b/Utilities/cmlibrhash/librhash/rhash.h
---- a/Utilities/cmlibrhash/librhash/rhash.h 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibrhash/librhash/rhash.h 2021-02-11 18:43:33.965855044 +0330
-@@ -164,7 +164,7 @@ RHASH_API int rhash_file(unsigned hash_i
- * @param result buffer to receive hash value with the lowest requested id
- * @return 0 on success, -1 on error, -1 on error and errno is set
- */
--RHASH_API int rhash_wfile(unsigned hash_id, const wchar_t* filepath, unsigned char* result);
-+RHASH_API int rhash_wfile(unsigned hash_id, const char* filepath, unsigned char* result);
- #endif
-
-
-diff -urp a/Utilities/cmlibuv/src/win/core.c b/Utilities/cmlibuv/src/win/core.c
---- a/Utilities/cmlibuv/src/win/core.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibuv/src/win/core.c 2021-02-11 18:43:34.115857411 +0330
-@@ -71,8 +71,8 @@ UV_THREAD_LOCAL int uv__crt_assert_enabl
-
-
- #if !defined(__MINGW32__) || __MSVCRT_VERSION__ >= 0x800
--static void uv__crt_invalid_parameter_handler(const wchar_t* expression,
-- const wchar_t* function, const wchar_t * file, unsigned int line,
-+static void uv__crt_invalid_parameter_handler(const char* expression,
-+ const char* function, const char * file, unsigned int line,
- uintptr_t reserved) {
- /* No-op. */
- }
-diff -urp a/Utilities/cmlibuv/src/win/fs.c b/Utilities/cmlibuv/src/win/fs.c
---- a/Utilities/cmlibuv/src/win/fs.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibuv/src/win/fs.c 2021-02-11 18:43:34.102523866 +0330
-@@ -124,13 +124,13 @@
-
- #define MIN(a,b) (((a) < (b)) ? (a) : (b))
-
--const WCHAR JUNCTION_PREFIX[] = L"\\??\\";
-+const WCHAR JUNCTION_PREFIX[] = "\\??\\";
- const WCHAR JUNCTION_PREFIX_LEN = 4;
-
--const WCHAR LONG_PATH_PREFIX[] = L"\\\\?\\";
-+const WCHAR LONG_PATH_PREFIX[] = "\\\\?\\";
- const WCHAR LONG_PATH_PREFIX_LEN = 4;
-
--const WCHAR UNC_PATH_PREFIX[] = L"\\\\?\\UNC\\";
-+const WCHAR UNC_PATH_PREFIX[] = "\\\\?\\UNC\\";
- const WCHAR UNC_PATH_PREFIX_LEN = 8;
-
- static int uv__file_symlink_usermode_flag = SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE;
-@@ -1234,7 +1234,7 @@ typedef int (*uv__fs_mktemp_func)(uv_fs_
- /* OpenBSD original: lib/libc/stdio/mktemp.c */
- void fs__mktemp(uv_fs_t* req, uv__fs_mktemp_func func) {
- static const WCHAR *tempchars =
-- L"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
-+ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
- static const size_t num_chars = 62;
- static const size_t num_x = 6;
- WCHAR *cp, *ep;
-@@ -1246,7 +1246,7 @@ void fs__mktemp(uv_fs_t* req, uv__fs_mkt
- path = (char*)req->path;
- len = wcslen(req->file.pathw);
- ep = req->file.pathw + len;
-- if (len < num_x || wcsncmp(ep - num_x, L"XXXXXX", num_x)) {
-+ if (len < num_x || wcsncmp(ep - num_x, "XXXXXX", num_x)) {
- SET_REQ_UV_ERROR(req, UV_EINVAL, ERROR_INVALID_PARAMETER);
- goto clobber;
- }
-@@ -1592,11 +1592,11 @@ void fs__opendir(uv_fs_t* req) {
- len = wcslen(pathw);
-
- if (len == 0)
-- fmt = L"./*";
-+ fmt = "./*";
- else if (IS_SLASH(pathw[len - 1]))
-- fmt = L"%s*";
-+ fmt = "%s*";
- else
-- fmt = L"%s\\*";
-+ fmt = "%s\\*";
-
- find_path = uv__malloc(sizeof(WCHAR) * (len + 4));
- if (find_path == NULL) {
-diff -urp a/Utilities/cmlibuv/src/win/fs-event.c b/Utilities/cmlibuv/src/win/fs-event.c
---- a/Utilities/cmlibuv/src/win/fs-event.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibuv/src/win/fs-event.c 2021-02-11 18:43:34.112524024 +0330
-@@ -487,7 +487,7 @@ void uv_process_fs_event_req(uv_loop_t*
- uv_fatal_error(ERROR_OUTOFMEMORY, "uv__malloc");
- }
-
-- _snwprintf(filenamew, size, L"%s\\%.*s", handle->dirw,
-+ _snwprintf(filenamew, size, "%s\\%.*s", handle->dirw,
- file_info->FileNameLength / (DWORD)sizeof(WCHAR),
- file_info->FileName);
-
-diff -urp a/Utilities/cmlibuv/src/win/getaddrinfo.c b/Utilities/cmlibuv/src/win/getaddrinfo.c
---- a/Utilities/cmlibuv/src/win/getaddrinfo.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibuv/src/win/getaddrinfo.c 2021-02-11 18:43:34.119190796 +0330
-@@ -398,7 +398,7 @@ error:
-
- int uv_if_indextoname(unsigned int ifindex, char* buffer, size_t* size) {
- NET_LUID luid;
-- wchar_t wname[NDIS_IF_MAX_STRING_SIZE + 1]; /* Add one for the NUL. */
-+ char wname[NDIS_IF_MAX_STRING_SIZE + 1]; /* Add one for the NUL. */
- DWORD bufsize;
- int r;
-
-diff -urp a/Utilities/cmlibuv/src/win/process.c b/Utilities/cmlibuv/src/win/process.c
---- a/Utilities/cmlibuv/src/win/process.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibuv/src/win/process.c 2021-02-11 18:43:34.109190639 +0330
-@@ -43,7 +43,7 @@ typedef struct env_var {
- const size_t len; /* including null or '=' */
- } env_var_t;
-
--#define E_V(str) { L##str, L##str L"=", sizeof(str) }
-+#define E_V(str) { L##str, L##str "=", sizeof(str) }
-
- static const env_var_t required_vars[] = { /* keep me sorted */
- E_V("HOMEDRIVE"),
-@@ -203,7 +203,7 @@ static WCHAR* search_path_join_test(cons
- result_pos += cwd_len;
-
- /* Add a path separator if cwd didn't end with one */
-- if (cwd_len && wcsrchr(L"\\/:", result_pos[-1]) == NULL) {
-+ if (cwd_len && wcsrchr("\\/:", result_pos[-1]) == NULL) {
- result_pos[0] = L'\\';
- result_pos++;
- }
-@@ -213,7 +213,7 @@ static WCHAR* search_path_join_test(cons
- result_pos += dir_len;
-
- /* Add a separator if the dir didn't end with one */
-- if (dir_len && wcsrchr(L"\\/:", result_pos[-1]) == NULL) {
-+ if (dir_len && wcsrchr("\\/:", result_pos[-1]) == NULL) {
- result_pos[0] = L'\\';
- result_pos++;
- }
-@@ -265,7 +265,7 @@ static WCHAR* path_search_walk_ext(const
- if (name_has_ext) {
- result = search_path_join_test(dir, dir_len,
- name, name_len,
-- L"", 0,
-+ "", 0,
- cwd, cwd_len);
- if (result != NULL) {
- return result;
-@@ -275,7 +275,7 @@ static WCHAR* path_search_walk_ext(const
- /* Try .com extension */
- result = search_path_join_test(dir, dir_len,
- name, name_len,
-- L"com", 3,
-+ "com", 3,
- cwd, cwd_len);
- if (result != NULL) {
- return result;
-@@ -284,7 +284,7 @@ static WCHAR* path_search_walk_ext(const
- /* Try .exe extension */
- result = search_path_join_test(dir, dir_len,
- name, name_len,
-- L"exe", 3,
-+ "exe", 3,
- cwd, cwd_len);
- if (result != NULL) {
- return result;
-@@ -386,7 +386,7 @@ static WCHAR* search_path(const WCHAR *f
- dir_end = path;
-
- /* The file is really only a name; look in cwd first, then scan path */
-- result = path_search_walk_ext(L"", 0,
-+ result = path_search_walk_ext("", 0,
- file, file_len,
- cwd, cwd_len,
- name_has_ext);
-@@ -463,14 +463,14 @@ WCHAR* quote_cmd_arg(const WCHAR *source
- return target;
- }
-
-- if (NULL == wcspbrk(source, L" \t\"")) {
-+ if (NULL == wcspbrk(source, " \t\"")) {
- /* No quotation needed */
- wcsncpy(target, source, len);
- target += len;
- return target;
- }
-
-- if (NULL == wcspbrk(source, L"\"\\")) {
-+ if (NULL == wcspbrk(source, "\"\\")) {
- /*
- * No embedded double quotes or backlashes, so I can just wrap
- * quote marks around the whole thing.
-@@ -613,11 +613,11 @@ error:
- }
-
-
--int env_strncmp(const wchar_t* a, int na, const wchar_t* b) {
-- wchar_t* a_eq;
-- wchar_t* b_eq;
-- wchar_t* A;
-- wchar_t* B;
-+int env_strncmp(const char* a, int na, const char* b) {
-+ char* a_eq;
-+ char* b_eq;
-+ char* A;
-+ char* B;
- int nb;
- int r;
-
-@@ -632,8 +632,8 @@ int env_strncmp(const wchar_t* a, int na
- assert(b_eq);
- nb = b_eq - b;
-
-- A = alloca((na+1) * sizeof(wchar_t));
-- B = alloca((nb+1) * sizeof(wchar_t));
-+ A = alloca((na+1) * sizeof(char));
-+ B = alloca((nb+1) * sizeof(char));
-
- r = LCMapStringW(LOCALE_INVARIANT, LCMAP_UPPERCASE, a, na, A, na);
- assert(r==na);
-@@ -643,8 +643,8 @@ int env_strncmp(const wchar_t* a, int na
- B[nb] = L'\0';
-
- while (1) {
-- wchar_t AA = *A++;
-- wchar_t BB = *B++;
-+ char AA = *A++;
-+ char BB = *B++;
- if (AA < BB) {
- return -1;
- } else if (AA > BB) {
-@@ -657,8 +657,8 @@ int env_strncmp(const wchar_t* a, int na
-
-
- static int qsort_wcscmp(const void *a, const void *b) {
-- wchar_t* astr = *(wchar_t* const*)a;
-- wchar_t* bstr = *(wchar_t* const*)b;
-+ char* astr = *(char* const*)a;
-+ char* bstr = *(char* const*)b;
- return env_strncmp(astr, -1, bstr);
- }
-
-@@ -741,7 +741,7 @@ int make_program_env(char* env_block[],
- assert(env_len == 0 || env_len == (size_t) (ptr - dst_copy));
-
- /* sort our (UTF-16) copy */
-- qsort(env_copy, env_block_count-1, sizeof(wchar_t*), qsort_wcscmp);
-+ qsort(env_copy, env_block_count-1, sizeof(char*), qsort_wcscmp);
-
- /* third pass: check for required variables */
- for (ptr_copy = env_copy, i = 0; i < ARRAY_SIZE(required_vars); ) {
-@@ -1024,7 +1024,7 @@ int uv_spawn(uv_loop_t* loop,
- if (path == NULL) {
- DWORD path_len, r;
-
-- path_len = GetEnvironmentVariableW(L"PATH", NULL, 0);
-+ path_len = GetEnvironmentVariableW("PATH", NULL, 0);
- if (path_len == 0) {
- err = GetLastError();
- goto done;
-@@ -1037,7 +1037,7 @@ int uv_spawn(uv_loop_t* loop,
- }
- path = alloc_path;
-
-- r = GetEnvironmentVariableW(L"PATH", path, path_len);
-+ r = GetEnvironmentVariableW("PATH", path, path_len);
- if (r == 0 || r >= path_len) {
- err = GetLastError();
- goto done;
-diff -urp a/Utilities/cmlibuv/src/win/util.c b/Utilities/cmlibuv/src/win/util.c
---- a/Utilities/cmlibuv/src/win/util.c 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/cmlibuv/src/win/util.c 2021-02-11 18:43:34.119190796 +0330
-@@ -548,7 +548,7 @@ int uv_uptime(double* uptime) {
-
- data_size = (DWORD) buffer_size;
- result = RegQueryValueExW(HKEY_PERFORMANCE_DATA,
-- L"2",
-+ "2",
- NULL,
- NULL,
- buffer,
-@@ -580,7 +580,7 @@ int uv_uptime(double* uptime) {
-
- data_block = (PERF_DATA_BLOCK*) buffer;
-
-- if (wmemcmp(data_block->Signature, L"PERF", 4) != 0)
-+ if (wmemcmp(data_block->Signature, "PERF", 4) != 0)
- goto internalError;
-
- if (data_size < data_block->HeaderLength + sizeof(*object_type))
-@@ -686,7 +686,7 @@ int uv_cpu_info(uv_cpu_info_t** cpu_info
-
- len = _snwprintf(key_name,
- ARRAY_SIZE(key_name),
-- L"HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\%d",
-+ "HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\%d",
- i);
-
- assert(len > 0 && len < ARRAY_SIZE(key_name));
-@@ -701,7 +701,7 @@ int uv_cpu_info(uv_cpu_info_t** cpu_info
- }
-
- err = RegQueryValueExW(processor_key,
-- L"~MHz",
-+ "~MHz",
- NULL,
- NULL,
- (BYTE*)&cpu_speed,
-@@ -712,7 +712,7 @@ int uv_cpu_info(uv_cpu_info_t** cpu_info
- }
-
- err = RegQueryValueExW(processor_key,
-- L"ProcessorNameString",
-+ "ProcessorNameString",
- NULL,
- NULL,
- (BYTE*)&cpu_brand,
-@@ -1195,7 +1195,7 @@ int uv_os_homedir(char* buffer, size_t*
-
-
- int uv_os_tmpdir(char* buffer, size_t* size) {
-- wchar_t *path;
-+ char *path;
- DWORD bufsize;
- size_t len;
-
-@@ -1209,7 +1209,7 @@ int uv_os_tmpdir(char* buffer, size_t* s
- }
- /* Include space for terminating null char. */
- len += 1;
-- path = uv__malloc(len * sizeof(wchar_t));
-+ path = uv__malloc(len * sizeof(char));
- if (path == NULL) {
- return UV_ENOMEM;
- }
-@@ -1368,8 +1368,8 @@ int uv__convert_utf8_to_utf16(const char
-
- int uv__getpwuid_r(uv_passwd_t* pwd) {
- HANDLE token;
-- wchar_t username[UNLEN + 1];
-- wchar_t *path;
-+ char username[UNLEN + 1];
-+ char *path;
- DWORD bufsize;
- int r;
-
-@@ -1388,7 +1388,7 @@ int uv__getpwuid_r(uv_passwd_t* pwd) {
- return uv_translate_sys_error(r);
- }
-
-- path = uv__malloc(bufsize * sizeof(wchar_t));
-+ path = uv__malloc(bufsize * sizeof(char));
- if (path == NULL) {
- CloseHandle(token);
- return UV_ENOMEM;
-@@ -1445,8 +1445,8 @@ int uv_os_get_passwd(uv_passwd_t* pwd) {
-
-
- int uv_os_environ(uv_env_item_t** envitems, int* count) {
-- wchar_t* env;
-- wchar_t* penv;
-+ char* env;
-+ char* penv;
- int i, cnt;
- uv_env_item_t* envitem;
-
-@@ -1516,10 +1516,10 @@ fail:
-
-
- int uv_os_getenv(const char* name, char* buffer, size_t* size) {
-- wchar_t fastvar[512];
-- wchar_t* var;
-+ char fastvar[512];
-+ char* var;
- DWORD varlen;
-- wchar_t* name_w;
-+ char* name_w;
- DWORD bufsize;
- size_t len;
- int r;
-@@ -1611,8 +1611,8 @@ fail:
-
-
- int uv_os_setenv(const char* name, const char* value) {
-- wchar_t* name_w;
-- wchar_t* value_w;
-+ char* name_w;
-+ char* value_w;
- int r;
-
- if (name == NULL || value == NULL)
-@@ -1642,7 +1642,7 @@ int uv_os_setenv(const char* name, const
-
-
- int uv_os_unsetenv(const char* name) {
-- wchar_t* name_w;
-+ char* name_w;
- int r;
-
- if (name == NULL)
-@@ -1820,7 +1820,7 @@ int uv_os_uname(uv_utsname_t* buffer) {
- /* Populate the version field. */
- version_size = 0;
- r = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
-- L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion",
-+ "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion",
- 0,
- KEY_QUERY_VALUE,
- &registry_key);
-@@ -1829,7 +1829,7 @@ int uv_os_uname(uv_utsname_t* buffer) {
- product_name_w_size = sizeof(product_name_w);
- r = RegGetValueW(registry_key,
- NULL,
-- L"ProductName",
-+ "ProductName",
- RRF_RT_REG_SZ,
- NULL,
- (PVOID) product_name_w,
-diff -urp a/Utilities/Release/WiX/CustomAction/detect_nsis_overwrite.cpp b/Utilities/Release/WiX/CustomAction/detect_nsis_overwrite.cpp
---- a/Utilities/Release/WiX/CustomAction/detect_nsis_overwrite.cpp 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/Release/WiX/CustomAction/detect_nsis_overwrite.cpp 2021-02-11 18:43:33.649183363 +0330
-@@ -6,39 +6,39 @@
- #include <msi.h>
- #include <msiquery.h>
-
--std::wstring get_property(MSIHANDLE msi_handle, std::wstring const& name)
-+std::string get_property(MSIHANDLE msi_handle, std::string const& name)
- {
- DWORD size = 0;
-
-- WCHAR value_buffer[] = L"";
-+ WCHAR value_buffer[] = "";
- UINT status = MsiGetPropertyW(msi_handle, name.c_str(), value_buffer, &size);
-
- if (status == ERROR_MORE_DATA) {
-- std::vector<wchar_t> buffer(size + 1);
-+ std::vector<char> buffer(size + 1);
- MsiGetPropertyW(msi_handle, name.c_str(), &buffer[0], &size);
-- return std::wstring(&buffer[0]);
-+ return std::string(&buffer[0]);
- } else {
-- return std::wstring();
-+ return std::string();
- }
- }
-
--void set_property(MSIHANDLE msi_handle, std::wstring const& name,
-- std::wstring const& value)
-+void set_property(MSIHANDLE msi_handle, std::string const& name,
-+ std::string const& value)
- {
- MsiSetPropertyW(msi_handle, name.c_str(), value.c_str());
- }
-
- extern "C" UINT __stdcall DetectNsisOverwrite(MSIHANDLE msi_handle)
- {
-- std::wstring install_root = get_property(msi_handle, L"INSTALL_ROOT");
-+ std::string install_root = get_property(msi_handle, "INSTALL_ROOT");
-
-- std::wstring uninstall_exe = install_root + L"\\uninstall.exe";
-+ std::string uninstall_exe = install_root + "\\uninstall.exe";
-
- bool uninstall_exe_exists =
- GetFileAttributesW(uninstall_exe.c_str()) != INVALID_FILE_ATTRIBUTES;
-
-- set_property(msi_handle, L"CMAKE_NSIS_OVERWRITE_DETECTED",
-- uninstall_exe_exists ? L"1" : L"0");
-+ set_property(msi_handle, "CMAKE_NSIS_OVERWRITE_DETECTED",
-+ uninstall_exe_exists ? "1" : "0");
-
- return ERROR_SUCCESS;
- }
-diff -urp a/Utilities/std/cm/filesystem b/Utilities/std/cm/filesystem
---- a/Utilities/std/cm/filesystem 2021-01-28 18:58:45.000000000 +0330
-+++ b/Utilities/std/cm/filesystem 2021-02-12 14:39:55.154859796 +0330
-@@ -98,7 +98,7 @@ class unicode<Char, typename std::enable
- {
- public:
- // UTF32 -> UTF8
-- static std::string to_utf8(const std::wstring& str)
-+ static std::string to_utf8(const std::string& str)
- {
- std::string result;
- for (auto c : str) {
-@@ -114,9 +114,9 @@ public:
- }
-
- // UTF8 -> UTF32
-- static std::wstring from_utf8(const std::string& str)
-+ static std::string from_utf8(const std::string& str)
- {
-- std::wstring result;
-+ std::string result;
- result.reserve(str.length());
- auto iter = str.begin();
- utf8_state state = s_start;
-@@ -124,29 +124,29 @@ public:
- while (iter < str.end()) {
- if ((state = decode(state, static_cast<std::uint8_t>(*iter++),
- codepoint)) == s_start) {
-- result += static_cast<std::wstring::value_type>(codepoint);
-+ result += static_cast<std::string::value_type>(codepoint);
- codepoint = 0;
- } else if (state == s_reject) {
-- result += static_cast<std::wstring::value_type>(0xfffd);
-+ result += static_cast<std::string::value_type>(0xfffd);
- state = s_start;
- codepoint = 0;
- }
- }
- if (state) {
-- result += static_cast<std::wstring::value_type>(0xfffd);
-+ result += static_cast<std::string::value_type>(0xfffd);
- }
- return result;
- }
-- static std::wstring from_utf8(char c)
-+ static std::string from_utf8(char c)
- {
-- std::wstring result;
-+ std::string result;
- utf8_state state = s_start;
- std::uint32_t codepoint = 0;
- if ((state = decode(state, static_cast<std::uint8_t>(c), codepoint)) ==
- s_start) {
-- result += static_cast<std::wstring::value_type>(codepoint);
-+ result += static_cast<std::string::value_type>(codepoint);
- } else {
-- result += static_cast<std::wstring::value_type>(0xfffd);
-+ result += static_cast<std::string::value_type>(0xfffd);
- }
-
- return result;
-@@ -159,7 +159,7 @@ class unicode<Char, typename std::enable
- {
- public:
- // UTF16 -> UTF8
-- static std::string to_utf8(const std::wstring& str)
-+ static std::string to_utf8(const std::string& str)
- {
- std::string result;
- for (auto iter = str.begin(); iter != str.end(); ++iter) {
-@@ -193,9 +193,9 @@ public:
- }
-
- // UTF8 -> UTF16
-- static std::wstring from_utf8(const std::string& str)
-+ static std::string from_utf8(const std::string& str)
- {
-- std::wstring result;
-+ std::string result;
- result.reserve(str.length());
- auto iter = str.begin();
- utf8_state state = s_start;
-@@ -204,95 +204,91 @@ public:
- if ((state = decode(state, static_cast<std::uint8_t>(*iter++),
- codepoint)) == s_start) {
- if (codepoint <= 0xffff) {
-- result += static_cast<std::wstring::value_type>(codepoint);
-+ result += static_cast<std::string::value_type>(codepoint);
- } else {
- codepoint -= 0x10000;
- result +=
-- static_cast<std::wstring::value_type>((codepoint >> 10) + 0xd800);
-- result += static_cast<std::wstring::value_type>((codepoint & 0x3ff) +
-+ static_cast<std::string::value_type>((codepoint >> 10) + 0xd800);
-+ result += static_cast<std::string::value_type>((codepoint & 0x3ff) +
- 0xdc00);
- }
- codepoint = 0;
- } else if (state == s_reject) {
-- result += static_cast<std::wstring::value_type>(0xfffd);
-+ result += static_cast<std::string::value_type>(0xfffd);
- state = s_start;
- codepoint = 0;
- }
- }
- if (state) {
-- result += static_cast<std::wstring::value_type>(0xfffd);
-+ result += static_cast<std::string::value_type>(0xfffd);
- }
- return result;
- }
-- static std::wstring from_utf8(char c)
-+ static std::string from_utf8(char c)
- {
-- std::wstring result;
-+ std::string result;
- utf8_state state = s_start;
- std::uint32_t codepoint = 0;
- if ((state = decode(state, static_cast<std::uint8_t>(c), codepoint)) ==
- s_start) {
- if (codepoint <= 0xffff) {
-- result += static_cast<std::wstring::value_type>(codepoint);
-+ result += static_cast<std::string::value_type>(codepoint);
- } else {
- codepoint -= 0x10000;
- result +=
-- static_cast<std::wstring::value_type>((codepoint >> 10) + 0xd800);
-+ static_cast<std::string::value_type>((codepoint >> 10) + 0xd800);
- result +=
-- static_cast<std::wstring::value_type>((codepoint & 0x3ff) + 0xdc00);
-+ static_cast<std::string::value_type>((codepoint & 0x3ff) + 0xdc00);
- }
- } else {
-- result += static_cast<std::wstring::value_type>(0xfffd);
-+ result += static_cast<std::string::value_type>(0xfffd);
- }
- return result;
- }
- };
-
--template <typename In, typename Out>
--class unicode_converter;
--
--template <>
--class unicode_converter<char, wchar_t>
-+template <typename Char>
-+class unicode<Char, typename std::enable_if<(sizeof(Char) == 1)>::type>
-+ : public unicode_helper
- {
- public:
-- std::wstring operator()(const std::string& in)
-+ // UTF8 -> UTF8
-+ static std::string to_utf8(const std::string& str)
- {
-- return unicode<wchar_t>::from_utf8(in);
-+ return str;
- }
-- std::wstring operator()(const char* in)
-+ static std::string to_utf8(Char c)
- {
-- return unicode<wchar_t>::from_utf8(in);
-+ return c;
- }
-- std::wstring operator()(char in) { return unicode<wchar_t>::from_utf8(in); }
--};
--template <>
--class unicode_converter<wchar_t, char>
--{
--public:
-- std::string operator()(const std::wstring& in)
-+
-+ // UTF8 -> UTF8
-+ static std::string from_utf8(const std::string& str)
- {
-- return unicode<wchar_t>::to_utf8(in);
-+ return str;
- }
-- std::string operator()(const wchar_t* in)
-+ static std::string from_utf8(char c)
- {
-- return unicode<wchar_t>::to_utf8(in);
-+ return std::string(1, c);
- }
-- std::string operator()(wchar_t in) { return unicode<wchar_t>::to_utf8(in); }
- };
-+
-+template <typename In, typename Out>
-+class unicode_converter;
-+
- template <>
- class unicode_converter<char, char>
- {
- public:
-- std::string operator()(const std::string& in) { return in; }
-- std::string operator()(const char* in) { return std::string(in); }
-- std::string operator()(char in) { return std::string(1, in); }
--};
--template <>
--class unicode_converter<wchar_t, wchar_t>
--{
--public:
-- std::wstring operator()(const std::wstring& in) { return in; }
-- std::wstring operator()(const wchar_t* in) { return std::wstring(in); }
-- std::wstring operator()(wchar_t in) { return std::wstring(1, in); }
-+ std::string operator()(const std::string& in)
-+ {
-+ return unicode<char>::from_utf8(in);
-+ }
-+ std::string operator()(const char* in)
-+ {
-+ return unicode<char>::from_utf8(in);
-+ }
-+ std::string operator()(char in) { return unicode<char>::from_utf8(in); }
- };
-
- template <typename In>
-@@ -344,50 +340,6 @@ struct string_converter<char>
- return std::basic_string<Char>(unicode_converter<char, Char>()(in));
- }
- };
--template <>
--struct string_converter<wchar_t>
--{
-- // some compilers, like gcc 4.8 does not implement the following C++11
-- // signature:
-- // std::string::string(const string&, const Allocator&)
-- // As workaround, use char* pointer.
-- template <typename Char, typename Traits, typename Alloc>
-- static std::basic_string<Char, Traits, Alloc> to(const std::wstring& in,
-- const Alloc& a)
-- {
-- return std::basic_string<Char, Traits, Alloc>(
-- unicode_converter<wchar_t, Char>()(in).c_str(), a);
-- }
-- template <typename Char, typename Traits, typename Alloc>
-- static std::basic_string<Char, Traits, Alloc> to(const wchar_t* in,
-- const Alloc& a)
-- {
-- return std::basic_string<Char, Traits, Alloc>(
-- unicode_converter<wchar_t, Char>()(in).c_str(), a);
-- }
-- template <typename Char, typename Traits, typename Alloc>
-- static std::basic_string<Char, Traits, Alloc> to(wchar_t in, const Alloc& a)
-- {
-- return std::basic_string<Char, Traits, Alloc>(
-- unicode_converter<wchar_t, Char>()(in).c_str(), a);
-- }
--
-- template <typename Char>
-- static std::basic_string<Char> to(const std::wstring& in)
-- {
-- return std::basic_string<Char>(unicode_converter<wchar_t, Char>()(in));
-- }
-- template <typename Char>
-- static std::basic_string<Char> to(const wchar_t* in)
-- {
-- return std::basic_string<Char>(unicode_converter<wchar_t, Char>()(in));
-- }
-- template <typename Char>
-- static std::basic_string<Char> to(wchar_t in)
-- {
-- return std::basic_string<Char>(unicode_converter<wchar_t, Char>()(in));
-- }
--};
-
- template <typename T, typename = void>
- struct source_traits
-@@ -470,54 +422,6 @@ struct source_converter<char, char>
- static void set_source(std::string& p, std::string&& s) { p = std::move(s); }
- };
-
--template <>
--struct source_converter<wchar_t, char>
--{
-- template <typename Iterator>
-- static void append_range(std::string& p, Iterator b, Iterator e)
-- {
-- if (b == e) {
-- return;
-- }
--
-- std::wstring tmp(b, e);
-- std::string dest = string_converter<wchar_t>::to<char>(tmp);
-- p.append(dest.begin(), dest.end());
-- }
-- template <typename Iterator>
-- static void append_range(std::string& p, Iterator b)
-- {
-- wchar_t e = '\0';
--
-- if (*b == e) {
-- return;
-- }
-- std::wstring tmp;
-- for (; *b != e; ++b) {
-- tmp.push_back(*b);
-- }
--
-- std::string dest = string_converter<wchar_t>::to<char>(tmp);
-- p.append(dest.begin(), dest.end());
-- }
--
-- template <typename Traits, typename Alloc>
-- static void append_source(std::string& p,
-- const std::basic_string<wchar_t, Traits, Alloc>& s)
-- {
-- append_range(p, s.begin(), s.end());
-- }
-- template <typename Source>
-- static void append_source(std::string& p, const Source& s)
-- {
-- append_range(p, s);
-- }
--
-- static void set_source(std::string& p, std::wstring&& s)
-- {
-- p = string_converter<wchar_t>::to<char>(s);
-- }
--};
-
- template <typename T>
- struct is_pathable_string : std::false_type
-@@ -528,11 +432,6 @@ struct is_pathable_string<std::basic_str
- : std::true_type
- {
- };
--template <typename Traits, typename Alloc>
--struct is_pathable_string<std::basic_string<wchar_t, Traits, Alloc>>
-- : std::true_type
--{
--};
- template <>
- struct is_pathable_string<cm::string_view> : std::true_type
- {
-@@ -547,10 +446,10 @@ struct is_pathable_char_array<
- T,
- cm::enable_if_t<
- std::is_same<char*, typename std::decay<T>::type>::value ||
-- std::is_same<wchar_t*, typename std::decay<T>::type>::value,
-+ std::is_same<char*, typename std::decay<T>::type>::value,
- void>>
- : bool_constant<std::is_same<char*, typename std::decay<T>::type>::value ||
-- std::is_same<wchar_t*, typename std::decay<T>::type>::value>
-+ std::is_same<char*, typename std::decay<T>::type>::value>
- {
- };
-
-@@ -566,7 +465,7 @@ struct is_pathable_iterator<
- (std::is_same<char,
- typename std::iterator_traits<
- typename std::decay<T>::type>::value_type>::value ||
-- std::is_same<wchar_t,
-+ std::is_same<char,
- typename std::iterator_traits<
- typename std::decay<T>::type>::value_type>::value),
- void>>
-@@ -574,7 +473,7 @@ struct is_pathable_iterator<
- std::is_same<char,
- typename std::iterator_traits<
- typename std::decay<T>::type>::value_type>::value ||
-- std::is_same<wchar_t,
-+ std::is_same<char,
- typename std::iterator_traits<
- typename std::decay<T>::type>::value_type>::value>
- {
-@@ -616,7 +515,7 @@ class path
-
- public:
- # if defined(_WIN32) && !defined(__CYGWIN__)
-- using value_type = wchar_t;
-+ using value_type = char;
- # else
- using value_type = char;
- # endif
-@@ -860,8 +759,8 @@ public:
- typename Alloc = std::allocator<Char>,
- cm::enable_if_t<(std::is_same<Char, char>::value &&
- std::is_same<Traits, std::char_traits<char>>::value) ||
-- (std::is_same<Char, wchar_t>::value &&
-- std::is_same<Traits, std::char_traits<wchar_t>>::value),
-+ (std::is_same<Char, char>::value &&
-+ std::is_same<Traits, std::char_traits<char>>::value),
- int> = 1>
- std::basic_string<Char, Traits, Alloc> string(const Alloc& a = Alloc()) const
- {
-@@ -870,11 +769,11 @@ public:
- this->path_, a);
- }
- const std::string string() const { return this->path_; }
-- std::wstring wstring() const
-+ std::string wstring() const
- {
- std::string out = this->string();
- return internals::string_converter<path_type::value_type>::to<
-- std::wstring::value_type>(out);
-+ std::string::value_type>(out);
- }
-
- template <
-@@ -882,8 +781,8 @@ public:
- typename Alloc = std::allocator<Char>,
- cm::enable_if_t<(std::is_same<Char, char>::value &&
- std::is_same<Traits, std::char_traits<char>>::value) ||
-- (std::is_same<Char, wchar_t>::value &&
-- std::is_same<Traits, std::char_traits<wchar_t>>::value),
-+ (std::is_same<Char, char>::value &&
-+ std::is_same<Traits, std::char_traits<char>>::value),
- int> = 1>
- std::basic_string<Char, Traits, Alloc> generic_string(
- const Alloc& a = Alloc()) const
-@@ -893,11 +792,11 @@ public:
- this->get_generic(), a);
- }
- std::string generic_string() const { return this->get_generic(); }
-- std::wstring generic_wstring() const
-+ std::string generic_wstring() const
- {
- auto dest = this->generic_string();
- return internals::string_converter<path_type::value_type>::to<
-- std::wstring::value_type>(dest);
-+ std::string::value_type>(dest);
- }
-
- // Compare
diff --git a/Ports/cmake/patches/ReadMe.md b/Ports/cmake/patches/ReadMe.md
index 037a1f88cc..fa92ec0439 100644
--- a/Ports/cmake/patches/ReadMe.md
+++ b/Ports/cmake/patches/ReadMe.md
@@ -1,16 +1,5 @@
# Patches for CMake (and submodules) on SerenityOS
-## `0000-no_wide_string.patch`
-
-We don't support wide strings, and our libstdc++ doesn't have `std::wstring`.
-This patch is a big hack to wipe wide strings out of the codebase; naturally, it very likely breaks unicode.
-
-### Status
-- [ ] Local?
-- [ ] Should be merged to upstream?
-- [X] Resolves issue(s) with our side of things
-- [X] Hack
-
## `0010-don-t-use-siginfo.patch`
We don't support SIGINFO. This patch removes uses of SIGINFO.