Boost logo

Boost Users :

Subject: Re: [Boost-users] [filesystem] path iterator appends / instead of \ on windows
From: Sachin Garg (schngrg_at_[hidden])
Date: 2011-10-07 07:45:50


On Fri, Oct 7, 2011 at 3:38 PM, Michael Powell <mwpowellnm_at_[hidden]> wrote:

>
> On Fri, Oct 7, 2011 at 12:55 AM, Sachin Garg <schngrg_at_[hidden]> wrote:
>
>> In boost v1.47, filesystem\v3\src\path.cpp, inside function
>> m_path_iterator_increment, on line 654,
>>
>> It should be:
>> it.m_element.m_pathname = preferred_separator;
>>
>> Instead of
>> it.m_element.m_pathname = separator;
>>
>> Reason:
>> In below sample code
>>
>> boost::filesystem::path new_path;
>> for (fs::path::iterator i=path.begin();i!=path.end();i++)
>> new_path/=(*i);
>>
>> On windows when iterating a path using above code, line 654 incorrectly
>> appends / instead of \ after drive letter.
>>
>
> I can't speak for the Boost implementation along these lines, however, I am
> fairly certain that most (*recent* APIs anyway, such as .NET File,
> Directory, etc), will support either '/' or '\' with consistent results.
>

Yes, paths with either 'one' of forward slashes or back slashes work, but
both Win32 and C API fail with the 'mixed' slash paths that this results in,
eg D:/path\file

SG



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net