Sv: Sv: Sv: Sv: Sv: g++ and c++17 filesystem

Jonathan Yong 10walls@gmail.com
Tue Nov 24 12:33:27 GMT 2020


On 11/24/20 11:35 AM, sten.kristian.ivarsson@gmail.com wrote:
> [snip]
> 
>> std::filesystem POSIX mode is common to all POSIX platforms where
>> backslashes are NOT directory separators. How do you make them accept your
>> demands? How are you going to force POSIX platforms allow Windows specific
>> code?
> 
> I've been trying to say over and over again that our code doesn't handle any Windows specific stuff and not anywhere have I claimed that anyone else need to handle Windows specific stuff either (except for the internals of Cygwin of which Windows specific logic is already present)
> 
> I repeat; I don't expect any of the Cygwin-Posix-functions to accept any Windows-style-paths (though some of them, as I repeatedly have said, already does so) and I only expect that I can operate according to the C++-standard on an instantiated std::filesystem::path
> 

How do you expect std::filesystem to do that when Windows paths are not 
even accepted in API calls?

>> Make it try to enter subdirectories every time std::filesystem is
>> called?
>>
>> You refuse to understand that Cygwin is NOT Windows, it is a POSIX
>> platform. Using Cygwin means complying with POSIX expectations and
>> standards.
>>
>> I don't see how this conversation can continue if you still refuse to see
>> Cygwin as something separate from Windows. Besides, you have already
>> answered your question by ruling out MinGW, so Microsoft Visual Studio it
>> is.
> 
> I repeat (again); neither MinGW/MSVS is an option because we're trying to use Posix and C++
> 
> Just to be clear:
> 
> - Our code DOESN'T handle Windows-style-paths explicitly in any way
> - We DON'T expect Cygwin-Posix-file-related-functions to accept Windows-style-paths
> - We WOULD like std::filesystem to work according to the C++ ISO standard

Why would std::filesystem be an exception? How would it know if a 
backslash is part of a name and not a separator? How does it know when 
to apply exceptions? What about mixed paths?

The C++ standard mentions separators, not specific characters, and the 
forward slash is used under Cygwin, not the Windows backslash.

The bigger question would be how would you expect a Cygwin application 
to even accept a Windows paths. It should use *nix paths, as all Cygwin 
programs do.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_0x713B5FE29C145D45_and_old_rev.asc
Type: application/pgp-keys
Size: 7929 bytes
Desc: not available
URL: <https://cygwin.com/pipermail/cygwin/attachments/20201124/62454516/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 840 bytes
Desc: OpenPGP digital signature
URL: <https://cygwin.com/pipermail/cygwin/attachments/20201124/62454516/attachment.sig>


More information about the Cygwin mailing list