9a14c37d6f
The directory_options enum reflects the same-named enum from C++20. It is now supported by both directory_iterator and recursive_directory_iterator. In particular, both iterators now support skip_permission_denied option. recursive_directory_iterator is now set to end by default on errors, as required by C++20. An additional directory_options::pop_on_error policy is added to allow the iterator recover from an error. When this option is specified and an error occurs, the iterator repeatedly pops the recursion level until the pop completes successfully or the end state is reached. recursive_directory_iterator that have standard counterparts (level, no_push_pending, no_push_request and no_push) are now deprecated and can be removed by defining BOOST_FILESYSTEM_NO_DEPRECATED. These members will be removed in a future release. Docs and tests updated accordingly. Also, in docs reconstructed release history for the past releases from Boost release notes. Fixes https://github.com/boostorg/filesystem/issues/112 Fixes https://github.com/boostorg/filesystem/issues/113
147 lines
5.8 KiB
HTML
147 lines
5.8 KiB
HTML
<html>
|
|
|
|
<head>
|
|
<meta http-equiv="Content-Language" content="en-us">
|
|
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
|
|
<meta name="ProgId" content="FrontPage.Editor.Document">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<title>Do List</title>
|
|
<style type="text/css">
|
|
body { font-family: sans-serif; margin: 1em; }
|
|
p, td, li, blockquote { font-size: 10pt; }
|
|
pre { font-size: 9pt; }
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<h1>Boost Filesystem Do List<br>
|
|
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B %Y" startspan -->24 June 2010<!--webbot bot="Timestamp" endspan i-checksum="17552" --></h1>
|
|
|
|
<h2>Beta 1 comments</h2>
|
|
<ul>
|
|
<li dir="ltr">
|
|
|
|
<p dir="ltr">Zach Laine:</li>
|
|
</ul>
|
|
<blockquote>
|
|
<pre dir="ltr">The descriptions for portable_name() and portable_directory_name()
|
|
appear to be at odds.
|
|
|
|
portable_name() : ... && (name is "." or "..", and the first character
|
|
not a period or hyphen)
|
|
|
|
portable_directory_name(): ... && (name is "." or ".." or contains no periods)
|
|
|
|
Should portable_name() be "... && (name is "." or "..", or contains no
|
|
periods) && (first character not a hyphen)"? Maybe I'm missing
|
|
something?</pre>
|
|
</blockquote>
|
|
<ul>
|
|
<li dir="ltr">
|
|
<p dir="ltr">Scott McMurray - treat as Wish List:</li>
|
|
</ul>
|
|
<blockquote>
|
|
<pre dir="ltr">- uncomplete(p, base)
|
|
|
|
My pet request. It may be useful to simplify other functions as well,
|
|
since there's no current way to go from an absolute path to a relative
|
|
one, meaning that most functions need to handle relative ones even
|
|
when that might not be natural. With this functionality,
|
|
preconditions requiring absolute paths would be less onerous.
|
|
|
|
Precondition: p.is_absolute() && base.is_absolute()
|
|
|
|
Effects: Extracts a path, rp, from p relative to base such that
|
|
canonical(p) == complete(rp, base). Any ".." path elements in rp form
|
|
a prefix.
|
|
|
|
Returns: The extracted path.
|
|
|
|
Postconditions: For the returned path, rp, rp.is_relative() ==
|
|
(p.root_name() == b.root_name()).
|
|
|
|
[Notes: This function simplifies paths by omitting context. It is
|
|
particularly useful for serializing paths such that it can be usefully
|
|
moved between hosts where the context may be different, such as inside
|
|
source control trees. It can also be helpful for display to users,
|
|
such as in shells where paths are often shown relative to $HOME.
|
|
|
|
In the presence of symlinks, the result of this function may differ
|
|
between implementations, as some may expand symlinks that others may
|
|
not. The simplest implementation uses canonical to expand both p and
|
|
base, then removes the common prefix and prepends the requisite ".."
|
|
elements. Smarter implementations will avoid expanding symlinks
|
|
unnecessarily. No implementation is expected to discover new symlinks
|
|
to return paths with fewer elements.]</pre>
|
|
</blockquote>
|
|
<h2 dir="ltr">Docs</h2>
|
|
<ul>
|
|
<li>Reorganize files - delete examples that no longer apply.</li>
|
|
<li>Should minimal.css be changed to used relative font sizes? See
|
|
<a href="http://www.w3schools.com/CSS/pr_font_font-size.asp/">http://www.w3schools.com/CSS/pr_font_font-size.asp\</a></li>
|
|
<li>Document behavior of path::replace_extension has change WRT argument w/o a
|
|
dot.</li>
|
|
<li style="font-size: 10pt">Document leading //: no longer treated specially.
|
|
But is that really correct?</li>
|
|
<li style="font-size: 10pt">Behavior of root_path() has been changed. Change
|
|
needs to be propagated to trunk?</li>
|
|
<li style="font-size: 10pt">Regenerate path decomposition table.</li>
|
|
</ul>
|
|
|
|
<h2>Code</h2>
|
|
<h3>All</h3>
|
|
<ul>
|
|
<li style="font-size: 10pt">Move semantics.</li>
|
|
<li style="font-size: 10pt">Use BOOST_DELETED, BOOST_DEFAULTED, where
|
|
appropriate.</li>
|
|
<li style="font-size: 10pt">Other C++0x features.</li>
|
|
</ul>
|
|
<h3>Class path</h3>
|
|
<ul>
|
|
<li>Windows, POSIX, conversions for char16_t, char32_t for C++0x compilers.</li>
|
|
<li>Add Windows Alternate Data Stream test cases. See http://en.wikipedia.org/wiki/NTFS
|
|
Features.</li>
|
|
<li>Add test case: relational operators on paths differing only in trailing
|
|
separator. Rationale?</li>
|
|
<li>Provide the name check functions for more character types? Templatize?
|
|
take a path argument?</li>
|
|
<li style="font-size: 10pt">Add codepage 936/950/etc test cases.</li>
|
|
<li style="font-size: 10pt">Should UDT's be supported?</li>
|
|
<li style="font-size: 10pt">Should path iteration to a separator result in:<br>
|
|
-- the actual separator used<br>
|
|
-- the preferred separator<br>
|
|
-- the generic separator <-- makes it easier to write portable code<br>
|
|
-- a dot</li>
|
|
</ul>
|
|
<h3>Operations</h3>
|
|
<ul>
|
|
<li>Would complete(), system_complete() be clearer if renamed absolute(),
|
|
absolute_system() (or absolute_native())?</li>
|
|
<li>Review all operations.cpp code for race conditions similar to #2925. Fix
|
|
or document.</li>
|
|
<li>Enable all BOOST_FILESYSTEM_NO_DEPRECATED code.</li>
|
|
<li>rename and remove names are problems. If users says "using
|
|
namespace boost::filesystem"<br>
|
|
and some header included stdio, there is just too much chance of silent error.</li>
|
|
<li>create_directories error handling needs work.</li>
|
|
<li>Fold convenience.hpp into operations.hpp</li>
|
|
<li>Two argument recursive_directory_iterator ctor isn't recognizing throws().
|
|
Would it be better to fold into a single two argument ctor with default?</li>
|
|
<li>Add the push_directory class from tools/release/required_files.cpp</li>
|
|
</ul>
|
|
|
|
<h3>Miscellaneous</h3>
|
|
<ul>
|
|
<li style="font-size: 10pt"><i>Regular</i> classes need hash functions.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
<p>© Copyright Beman Dawes, 2010</p>
|
|
<p>Distributed under the Boost Software License, Version 1.0. See
|
|
<a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a></p>
|
|
|
|
</body>
|
|
|
|
</html>
|