| <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=windows-1252"> |
| <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> |