Exemplo n.º 1
0
    fs::path input_to_path(input_string const& path)
    {
        cygwin_conv_path_t flags = CCP_POSIX_TO_WIN_W | CCP_RELATIVE;

        ssize_t size = cygwin_conv_path(flags, path.c_str(), NULL, 0);
        
        if (size < 0)
            throw conversion_error("Error converting cygwin path to windows.");

        // TODO: size is in bytes.
        boost::scoped_array<wchar_t> result(new wchar_t[size]);

        if(cygwin_conv_path(flags, path.c_str(), result.get(), size))
            throw conversion_error("Error converting cygwin path to windows.");

        return fs::path(result.get());
    }
Exemplo n.º 2
0
fs::path input_to_path(input_string const& path)
{
    cygwin_conv_path_t flags = CCP_POSIX_TO_WIN_W | CCP_RELATIVE;

    ssize_t size = cygwin_conv_path(flags, path.c_str(), NULL, 0);

    if (size < 0)
        throw conversion_error("Error converting cygwin path to windows.");

    boost::scoped_array<char> result(new char[size]);
    void* ptr = result.get();

    if(cygwin_conv_path(flags, path.c_str(), ptr, size))
        throw conversion_error("Error converting cygwin path to windows.");

    return fs::path(static_cast<wchar_t*>(ptr));
}