/usr/include/boost/process/detail/windows
NameSizeModeActions
asio_fwd.hpp13540644editdlrm
async_handler.hpp11950644editdlrm
async_in.hpp35570644editdlrm
async_out.hpp60790644editdlrm
async_pipe.hpp176110644editdlrm
basic_cmd.hpp50720644editdlrm
basic_pipe.hpp84510644editdlrm
child_handle.hpp31850644editdlrm
close_in.hpp10400644editdlrm
close_out.hpp17430644editdlrm
cmd.hpp9930644editdlrm
compare_handles.hpp14880644editdlrm
environment.hpp109760644editdlrm
env_init.hpp16150644editdlrm
executor.hpp80450644editdlrm
file_descriptor.hpp37470644editdlrm
file_in.hpp17350644editdlrm
file_out.hpp26910644editdlrm
group_handle.hpp65270644editdlrm
group_ref.hpp15720644editdlrm
handler.hpp5660644editdlrm
handles.hpp57460644editdlrm
handle_workaround.hpp89240644editdlrm
io_context_ref.hpp50430644editdlrm
is_running.hpp14110644editdlrm
job_workaround.hpp97210644editdlrm
locale.hpp31540644editdlrm
null_in.hpp15590644editdlrm
null_out.hpp25760644editdlrm
on_exit.hpp12020644editdlrm
pipe_in.hpp25710644editdlrm
pipe_out.hpp35350644editdlrm
search_path.hpp28080644editdlrm
shell_path.hpp15680644editdlrm
show_window.hpp13080644editdlrm
start_dir.hpp10260644editdlrm
terminate.hpp13290644editdlrm
wait_for_exit.hpp40480644editdlrm
wait_group.hpp43370644editdlrm
Edit: /usr/include/boost/process/detail/windows/locale.hpp (3154B)
// Copyright (c) 2016 Klemens D. Morgenstern // Copyright (c) 2008 Beman Dawes // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) #ifndef BOOST_PROCESS_DETAIL_WINDOWS_LOCALE_HPP_ #define BOOST_PROCESS_DETAIL_WINDOWS_LOCALE_HPP_ #include #include #include #include namespace boost { namespace process { namespace detail { namespace windows { //copied from boost.filesystem class windows_file_codecvt : public std::codecvt< wchar_t, char, std::mbstate_t > { public: explicit windows_file_codecvt(std::size_t refs = 0) : std::codecvt(refs) {} protected: bool do_always_noconv() const noexcept override { return false; } // seems safest to assume variable number of characters since we don't // actually know what codepage is active int do_encoding() const noexcept override { return 0; } std::codecvt_base::result do_in(std::mbstate_t& state, const char* from, const char* from_end, const char*& from_next, wchar_t* to, wchar_t* to_end, wchar_t*& to_next) const override { boost::ignore_unused(state); auto codepage = #if !defined(BOOST_NO_ANSI_APIS) ::boost::winapi::AreFileApisANSI() ? ::boost::winapi::CP_ACP_ : #endif ::boost::winapi::CP_OEMCP_; int count = 0; if ((count = ::boost::winapi::MultiByteToWideChar(codepage, ::boost::winapi::MB_PRECOMPOSED_, from, static_cast(from_end - from), to, static_cast(to_end - to))) == 0) { return error; // conversion failed } from_next = from_end; to_next = to + count; *to_next = L'\0'; return ok; } std::codecvt_base::result do_out(std::mbstate_t & state, const wchar_t* from, const wchar_t* from_end, const wchar_t*& from_next, char* to, char* to_end, char*& to_next) const override { boost::ignore_unused(state); auto codepage = #if !defined(BOOST_NO_ANSI_APIS) ::boost::winapi::AreFileApisANSI() ? ::boost::winapi::CP_ACP_ : #endif ::boost::winapi::CP_OEMCP_; int count = 0; if ((count = ::boost::winapi::WideCharToMultiByte(codepage, ::boost::winapi::WC_NO_BEST_FIT_CHARS_, from, static_cast(from_end - from), to, static_cast(to_end - to), 0, 0)) == 0) { return error; // conversion failed } from_next = from_end; to_next = to + count; *to_next = '\0'; return ok; } std::codecvt_base::result do_unshift(std::mbstate_t&, char* /*from*/, char* /*to*/, char* & /*next*/) const override { return ok; } int do_length(std::mbstate_t&, const char* /*from*/, const char* /*from_end*/, std::size_t /*max*/) const override { return 0; } int do_max_length() const noexcept override { return 0; } }; } } } } #endif /* BOOST_PROCESS_LOCALE_HPP_ */