Switching to using a helper function instead of manually converting the string to UTF-8.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188566 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Aaron Ballman 2013-08-16 17:53:28 +00:00
parent 0009850524
commit 5e485a5281

View File

@ -310,30 +310,7 @@ retry_cur_dir:
}
cur_path.set_size(len);
// cur_path now holds the current directory in utf-16. Convert to utf-8.
// Find out how much space we need. Sadly, this function doesn't return the
// size needed unless you tell it the result size is 0, which means you
// _always_ have to call it twice.
len = ::WideCharToMultiByte(CP_UTF8, 0,
cur_path.data(), cur_path.size(),
result.data(), 0,
NULL, NULL);
if (len == 0)
return make_error_code(windows_error(::GetLastError()));
result.reserve(len);
result.set_size(len);
// Now do the actual conversion.
len = ::WideCharToMultiByte(CP_UTF8, 0,
cur_path.data(), cur_path.size(),
result.data(), result.size(),
NULL, NULL);
if (len == 0)
return windows_error(::GetLastError());
return error_code::success();
return UTF16ToUTF8(cur_path.begin(), cur_path.size(), result);
}
error_code create_directory(const Twine &path, bool &existed) {