Fixed mismatching HTML tags in docs.

This commit is contained in:
Andrey Semashev
2024-01-20 03:21:56 +03:00
parent 5156746cd9
commit 47dd78b32f
15 changed files with 682 additions and 668 deletions

View File

@@ -1,12 +1,12 @@
<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">
<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>Filesystem Deprecated Features</title>
<link href="styles.css" rel="stylesheet">
<link href="styles.css" rel="stylesheet"/>
</head>
<body>
@@ -15,7 +15,7 @@
<tr>
<td width="277">
<a href="../../../index.htm">
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"></a></td>
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"/></a></td>
<td align="middle">
<font size="7">Filesystem Deprecated Features</font>
</td>
@@ -37,6 +37,7 @@
<a href="deprecated.html">Deprecated</a> &nbsp;&nbsp;
<a href="issue_reporting.html">Bug Reports </a>&nbsp;&nbsp;
</td>
</tr>
</table>
<h2><a name="Deprecated-names">Deprecated names and features</a></h2>
@@ -57,27 +58,27 @@ can be suppressed by defining <code>BOOST_FILESYSTEM_ALLOW_DEPRECATED</code> mac
<td style="font-size: 10pt" valign="top">
<b><i>Component or location</i></b></td>
<td style="font-size: 10pt" valign="top">
<p style="font-size: 10pt"><b><i>Old name, now deprecated</i></b></td>
<p style="font-size: 10pt"><b><i>Old name, now deprecated</i></b></p></td>
<td style="font-size: 10pt" valign="top">
&#10004;</td>
<td style="font-size: 10pt" valign="top">
<p style="font-size: 10pt"><b><i>New name</i></b></td>
<p style="font-size: 10pt"><b><i>New name</i></b></p></td>
</tr>
<tr>
<td style="font-size: 10pt" valign="top">
<code>class path</code></td>
<td style="font-size: 10pt" valign="top">
<p style="font-size: 10pt">Construction, assignment and appending from container types.</td>
<p style="font-size: 10pt">Construction, assignment and appending from container types.</p></td>
<td style="font-size: 10pt" valign="top">
&nbsp;</td>
<td style="font-size: 10pt" valign="top">
<p style="font-size: 10pt">Use string types or iterators as the source for path construction, assignment and appending.</td>
<p style="font-size: 10pt">Use string types or iterators as the source for path construction, assignment and appending.</p></td>
</tr>
<tr>
<td style="font-size: 10pt" valign="top">
<code>path.hpp</code></td>
<td style="font-size: 10pt" valign="top">
<code>template&lt;class String, class Traits&gt;<br>
<code>template&lt;class String, class Traits&gt;<br/>
&nbsp; class basic_path;</code></td>
<td style="font-size: 10pt" valign="top">
&nbsp;</td>
@@ -129,9 +130,9 @@ those features along with suggested replacements.</p>
<td style="font-size: 10pt" valign="top">
<b><i>Component or location</i></b></td>
<td style="font-size: 10pt" valign="top">
<p style="font-size: 10pt"><b><i>Removed name</i></b></td>
<p style="font-size: 10pt"><b><i>Removed name</i></b></p></td>
<td style="font-size: 10pt" valign="top">
<p style="font-size: 10pt"><b><i>Possible replacement</i></b></td>
<p style="font-size: 10pt"><b><i>Possible replacement</i></b></p></td>
</tr>
<tr>
<td style="font-size: 10pt" valign="top"><code>class path</code></td>
@@ -206,9 +207,9 @@ those features along with suggested replacements.</p>
<td style="font-size: 10pt" valign="top">
<code>class path</code></td>
<td style="font-size: 10pt" valign="top">
<p style="font-size: 10pt"><code>remove_leaf()</code></td>
<p style="font-size: 10pt"><code>remove_leaf()</code></p></td>
<td style="font-size: 10pt" valign="top">
<p style="font-size: 10pt"><code>remove_filename()</code></td>
<p style="font-size: 10pt"><code>remove_filename()</code></p></td>
</tr>
<tr>
<td style="font-size: 10pt" valign="top">
@@ -222,13 +223,13 @@ those features along with suggested replacements.</p>
<td style="font-size: 10pt" valign="top">
<code>operations.hpp</code></td>
<td style="font-size: 10pt" valign="top">
<p dir="ltr"><code>template &lt;class Path&gt;<br>
Path complete(const Path&amp; p,<br>
&nbsp;const Path&amp; base=<br>
&nbsp;&nbsp; initial_path&lt;Path&gt;())</code></td>
<p dir="ltr"><code>template &lt;class Path&gt;<br/>
Path complete(const Path&amp; p,<br/>
&nbsp;const Path&amp; base=<br/>
&nbsp;&nbsp; initial_path&lt;Path&gt;())</code></p></td>
<td style="font-size: 10pt" valign="top">
<p dir="ltr"><code>path absolute(const path&amp; p, const path&amp; base=<br>
&nbsp; current_path())</code></td>
<p dir="ltr"><code>path absolute(const path&amp; p, const path&amp; base=<br/>
&nbsp; current_path())</code></p></td>
</tr>
<tr>
<td style="font-size: 10pt" valign="top">
@@ -237,7 +238,7 @@ those features along with suggested replacements.</p>
<code>is_regular(file_status f)</code></td>
<td style="font-size: 10pt" valign="top">
<p dir="ltr">
<code>is_regular_file(file_status f)</code></td>
<code>is_regular_file(file_status f)</code></p></td>
</tr>
<tr>
<td style="font-size: 10pt" valign="top">
@@ -341,7 +342,7 @@ happen. Depending on the user to call <code>initial_path()</code> at the
beginning of <code>main()</code> is too error prone.&nbsp; An equivalent
function can trivially be provided by a user.</p>
<hr>
<hr/>
<p>&copy; Copyright Beman Dawes, 2002-2005, 2010</p>
<p>&copy; Copyright Andrey Semashev, 2019-2024</p>

View File

@@ -1,25 +1,25 @@
<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">
<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>Boost Filesystem Library Design</title>
<link href="styles.css" rel="stylesheet">
<link href="styles.css" rel="stylesheet"/>
</head>
<body bgcolor="#FFFFFF">
<h1>
<img border="0" src="../../../boost.png" align="center" width="277" height="86">Filesystem
<img border="0" src="../../../boost.png" align="center" width="277" height="86"/>Filesystem
Library Design</h1>
<p><a href="#Introduction">Introduction</a><br>
<a href="#Requirements">Requirements</a><br>
<a href="#Realities">Realities</a><br>
<a href="#Rationale">Rationale</a><br>
<a href="#Abandoned_Designs">Abandoned_Designs</a><br>
<p><a href="#Introduction">Introduction</a><br/>
<a href="#Requirements">Requirements</a><br/>
<a href="#Realities">Realities</a><br/>
<a href="#Rationale">Rationale</a><br/>
<a href="#Abandoned_Designs">Abandoned_Designs</a><br/>
<a href="#References">References</a></p>
<h2><a name="Introduction">Introduction</a></h2>
@@ -42,8 +42,8 @@ of choice..</p>
<h2><a name="Requirements">Requirements</a></h2>
<ul>
<li>Be able to write portable script-style filesystem operations in modern
C++.<br>
<br>
C++.<br/>
<br/>
Rationale: This is a common programming need. It is both an
embarrassment and a hardship that this is not possible with either the current
C++ or Boost libraries.&nbsp; The need is particularly acute
@@ -53,31 +53,31 @@ of choice..</p>
languages. All operating systems provide some form of API for filesystem
operations, and the POSIX bindings are increasingly available even on
operating systems not normally associated with POSIX, such as the Mac, z/OS,
or OS/390.<br>
or OS/390.<br/>
&nbsp;</li>
<li>Work within the <a href="#Realities">realities</a> described below.<br>
<br>
<li>Work within the <a href="#Realities">realities</a> described below.<br/>
<br/>
Rationale: This isn't a research project. The need is for something that works on
today's platforms, including some of the embedded operating systems
with limited file systems. Because of the emphasis on portability, such a
library would be much more useful if standardized. That means being able to
work with a much wider range of platforms that just Unix or Windows and their
clones.<br>
clones.<br/>
&nbsp;</li>
<li>Avoid dangerous programming practices. Particularly, all-too-easy-to-ignore error notifications
and use of global variables.&nbsp;If a dangerous feature is provided, identify it as such.<br>
<br>
and use of global variables.&nbsp;If a dangerous feature is provided, identify it as such.<br/>
<br/>
Rationale: Normally this would be covered by &quot;the usual Boost requirements...&quot;,
but it is mentioned explicitly because the equivalent native platform and
scripting language interfaces often depend on all-too-easy-to-ignore error
notifications and global variables like &quot;current
working directory&quot;.<br>
working directory&quot;.<br/>
&nbsp;</li>
<li>Structure the library so that it is still useful even if some functionality
does not map well onto a given platform or directory tree. Particularly, much
useful functionality should be portable even to flat
(non-hierarchical) filesystems.<br>
<br>
(non-hierarchical) filesystems.<br/>
<br/>
Rationale: Much functionality which does not
require a hierarchical directory structure is still useful on flat-structure
filesystems.&nbsp; There are many systems, particularly embedded systems,
@@ -86,32 +86,32 @@ of choice..</p>
<ul>
<li>Interface smoothly with current C++ Standard Library input/output
facilities.&nbsp; For example, paths should be
easy to use in std::basic_fstream constructors.<br>
<br>
easy to use in std::basic_fstream constructors.<br/>
<br/>
Rationale: One of the most common uses of file system functionality is to
manipulate paths for eventual use in input/output operations.&nbsp;
Thus the need to interface smoothly with standard library I/O.<br>
Thus the need to interface smoothly with standard library I/O.<br/>
&nbsp;</li>
<li>Suitable for eventual standardization. The implication of this requirement
is that the interface be close to minimal, and that great care be take
regarding portability.<br>
<br>
regarding portability.<br/>
<br/>
Rationale: The lack of file system operations is a serious hole
in the current standard, with no other known candidates to fill that hole.
Libraries with elaborate interfaces and difficult to port specifications are much less likely to be accepted for
standardization.<br>
standardization.<br/>
&nbsp;</li>
<li>The usual Boost <a href="http://www.boost.org/more/lib_guide.htm">requirements and
guidelines</a> apply.<br>
guidelines</a> apply.<br/>
&nbsp;</li>
<li>Encourage, but do not require, portability in path names.<br>
<br>
<li>Encourage, but do not require, portability in path names.<br/>
<br/>
Rationale: For paths which originate from user input it is unreasonable to
require portable path syntax.<br>
require portable path syntax.<br/>
&nbsp;</li>
<li>Avoid giving the illusion of portability where portability in fact does not
exist.<br>
<br>
exist.<br/>
<br/>
Rationale: Leaving important behavior unspecified or &quot;implementation defined&quot; does a
great disservice to programmers using a library because it makes it appear
that code relying on the behavior is portable, when in fact there is nothing
@@ -122,68 +122,68 @@ of choice..</p>
<h2><a name="Realities">Realities</a></h2>
<ul>
<li>Some operating systems have a single directory tree root, others have
multiple roots.<br>
multiple roots.<br/>
&nbsp;</li>
<li>Some file systems provide both a long and short form of filenames.<br>
<li>Some file systems provide both a long and short form of filenames.<br/>
&nbsp;</li>
<li>Some file systems have different syntax for file paths and directory
paths.<br>
paths.<br/>
&nbsp;</li>
<li>Some file systems have different rules for valid file names and valid
directory names.<br>
directory names.<br/>
&nbsp;</li>
<li>Some file systems (ISO-9660, level 1, for example) use very restricted
(so-called 8.3) file names.<br>
(so-called 8.3) file names.<br/>
&nbsp;</li>
<li>Some operating systems allow file systems with different
characteristics to be &quot;mounted&quot; within a directory tree.&nbsp; Thus an
ISO-9660 or Windows
file system may end up as a sub-tree of a POSIX directory tree.<br>
file system may end up as a sub-tree of a POSIX directory tree.<br/>
&nbsp;</li>
<li>Wide-character versions of directory and file operations are available on some operating
systems, and not available on others.<br>
systems, and not available on others.<br/>
&nbsp;</li>
<li>There is no law that says directory hierarchies have to be specified in
terms of left-to-right decent from the root.<br>
terms of left-to-right decent from the root.<br/>
&nbsp;</li>
<li>Some file systems have a concept of file &quot;version number&quot; or &quot;generation
number&quot;.&nbsp; Some don't.<br>
number&quot;.&nbsp; Some don't.<br/>
&nbsp;</li>
<li>Not all operating systems use single character separators in path names.&nbsp; Some use
paired notations. A typical fully-specified OpenVMS filename
might look something like this:<br>
<br>
<code>&nbsp;&nbsp; DISK$SCRATCH:[GEORGE.PROJECT1.DAT]BIG_DATA_FILE.NTP;5<br>
</code><br>
The general OpenVMS format is:<br>
<br>
might look something like this:<br/>
<br/>
<code>&nbsp;&nbsp; DISK$SCRATCH:[GEORGE.PROJECT1.DAT]BIG_DATA_FILE.NTP;5<br/>
</code><br/>
The general OpenVMS format is:<br/>
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;
<i>Device:[directories.dot.separated]filename.extension;version_number</i><br>
<i>Device:[directories.dot.separated]filename.extension;version_number</i><br/>
&nbsp;</li>
<li>For common file systems, determining if two descriptors are for same
entity is extremely difficult or impossible.&nbsp; For example, the concept of
equality can be different for each portion of a path - some portions may be
case or locale sensitive, others not. Case sensitivity is a property of the
pathname itself, and not the platform. Determining collating sequence is even
worse.<br>
worse.<br/>
&nbsp;</li>
<li>Race-conditions may occur. Directory trees, directories, files, and file attributes are in effect shared between all threads, processes, and computers which have access to the
filesystem.&nbsp; That may well include computers on the other side of the
world or in orbit around the world. This implies that file system operations
may fail in unexpected ways.&nbsp;For example:<br>
<br>
may fail in unexpected ways.&nbsp;For example:<br/>
<br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp; assert( exists(&quot;foo&quot;) == exists(&quot;foo&quot;) );
// may fail!<br>
// may fail!<br/>
&nbsp;&nbsp;&nbsp;&nbsp; assert( is_directory(&quot;foo&quot;) == is_directory(&quot;foo&quot;);
// may fail!<br>
</code><br>
// may fail!<br/>
</code><br/>
In the first example, the file may have been deleted between calls to
exists().&nbsp; In the second example, the file may have been deleted and then
replaced by a directory of the same name between the calls to is_directory().<br>
replaced by a directory of the same name between the calls to is_directory().<br/>
&nbsp;</li>
<li>Even though an application may be portable, it still will have to traffic
in system specific paths occasionally; user provided input is a common
example.<br>
example.<br/>
&nbsp;</li>
<li><a name="symbolic-link-use-case">Symbolic</a> links cause canonical and
normal form of some paths to represent different files or directories. For
@@ -315,7 +315,7 @@ Page,
Available from each of the organizations involved in its creation. For
example, read online or download from
<a href="http://www.unix.org/single_unix_specification/">
www.unix.org/single_unix_specification/</a>.</font> The ISO JTC1/SC22/WG15 - POSIX
www.unix.org/single_unix_specification/</a>. The ISO JTC1/SC22/WG15 - POSIX
homepage is <a href="http://www.open-std.org/jtc1/sc22/WG15/">
www.open-std.org/jtc1/sc22/WG15/</a></td>
</tr>
@@ -338,7 +338,7 @@ Variable Considered Harmful</i>, ACM SIGPLAN Notices, 8, 2, 1973, pp. 23-34</td>
</tr>
</table>
<hr>
<hr/>
<p>&copy; Copyright Beman Dawes, 2002</p>
<p> Use, modification, and distribution are subject to the Boost Software

View File

@@ -1,10 +1,10 @@
<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">
<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; }
@@ -15,14 +15,14 @@
<body>
<h1>Boost Filesystem Do List<br>
<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>
<p dir="ltr">Zach Laine:</p></li>
</ul>
<blockquote>
<pre dir="ltr">The descriptions for portable_name() and portable_directory_name()
@@ -39,7 +39,7 @@ something?</pre>
</blockquote>
<ul>
<li dir="ltr">
<p dir="ltr">Scott McMurray - treat as Wish List:</li>
<p dir="ltr">Scott McMurray - treat as Wish List:</p></li>
</ul>
<blockquote>
<pre dir="ltr">- uncomplete(p, base)
@@ -108,10 +108,10 @@ to return paths with fewer elements.]</pre>
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 &lt;-- makes it easier to write portable code<br>
<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 &lt;-- makes it easier to write portable code<br/>
-- a dot</li>
</ul>
<h3>Operations</h3>
@@ -122,7 +122,7 @@ to return paths with fewer elements.]</pre>
or document.</li>
<li>Enable all BOOST_FILESYSTEM_NO_DEPRECATED code.</li>
<li>rename and remove names are problems. If users says &quot;using
namespace boost::filesystem&quot;<br>
namespace boost::filesystem&quot;<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>
@@ -136,7 +136,7 @@ to return paths with fewer elements.]</pre>
<li style="font-size: 10pt"><i>Regular</i> classes need hash functions.</li>
</ul>
<hr>
<hr/>
<p>&copy; 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>

View File

@@ -1,12 +1,12 @@
<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">
<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>Filesystem FAQ</title>
<link href="styles.css" rel="stylesheet">
<link href="styles.css" rel="stylesheet"/>
</head>
<body>
@@ -15,7 +15,7 @@
<tr>
<td width="277">
<a href="../../../index.htm">
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"></a></td>
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"/></a></td>
<td align="middle">
<font size="7">Filesystem FAQ</font>
</td>
@@ -37,6 +37,7 @@
<a href="deprecated.html">Deprecated</a> &nbsp;&nbsp;
<a href="issue_reporting.html">Bug Reports </a>&nbsp;&nbsp;
</td>
</tr>
</table>
<h1>
@@ -139,7 +140,7 @@ non-member functions?</b></p>
path</i> member
functions, while operations performed by the operating system are provided as
free functions.</p>
<hr>
<hr/>
<p>&copy; Copyright Beman Dawes, 2002</p>
<p> Use, modification, and distribution are subject to the Boost Software
License, Version 1.0. See <a href="http://www.boost.org/LICENSE_1_0.txt">

View File

@@ -1,12 +1,12 @@
<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">
<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>Filesystem Home</title>
<link href="styles.css" rel="stylesheet">
<link href="styles.css" rel="stylesheet"/>
</head>
<body>
@@ -17,9 +17,9 @@
<td width="277">
<a href="../../../index.htm">
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle"
width="300" height="86" border="0"></a></td>
width="300" height="86" border="0"/></a></td>
<td align="middle">
<font size="7">Filesystem Library<br>
<font size="7">Filesystem Library<br/>
Version 4</font>
</td>
</tr>
@@ -40,6 +40,7 @@
<a href="deprecated.html">Deprecated</a> &nbsp;&nbsp;
<a href="issue_reporting.html">Bug Reports</a>&nbsp;&nbsp;
</td>
</tr>
</table>
<p></p>
<table border="1" cellpadding="5" cellspacing="0" style="border-collapse: collapse"
@@ -50,18 +51,18 @@
</tr>
<tr>
<td width="100%" bgcolor="#E8F5FF">
<a href="#Introduction">Introduction</a><br>
<a href="#Documentation">Documentation</a><br>
<a href="#Using">Using the library</a><br>
<a href="#Coding-guidelines">Coding guidelines</a><br>
<a href="#Cautions">Cautions</a><br>
<a href="#Headers">Headers</a><br>
<a href="#Examples">Example programs</a><br>
<a href="#Implementation">Implementation</a><br>
<a href="#Macros">Macros</a><br>
<a href="#Building">Building the object-library</a><br>
<a href="#Cygwin">Notes for Cygwin users</a><br>
<a href="#Change-history">Version history<br>
<a href="#Introduction">Introduction</a><br/>
<a href="#Documentation">Documentation</a><br/>
<a href="#Using">Using the library</a><br/>
<a href="#Coding-guidelines">Coding guidelines</a><br/>
<a href="#Cautions">Cautions</a><br/>
<a href="#Headers">Headers</a><br/>
<a href="#Examples">Example programs</a><br/>
<a href="#Implementation">Implementation</a><br/>
<a href="#Macros">Macros</a><br/>
<a href="#Building">Building the object-library</a><br/>
<a href="#Cygwin">Notes for Cygwin users</a><br/>
<a href="#Change-history">Version history<br/>
&nbsp; with acknowledgements</a></td>
</tr>
</table>
@@ -87,7 +88,7 @@ throwing exceptions.</p>
</blockquote>
</blockquote>
<ul>
<li><b>Portability between operating systems.</b><br>
<li><b>Portability between operating systems.</b><br/>
&nbsp;<ul>
<li>At the C++ syntax level, it is convenient to learn and use one interface
regardless of the operating system.</li>
@@ -95,24 +96,24 @@ throwing exceptions.</p>
operating systems.</li>
<li>Dual generic or native path format support encourages program
portability, yet still allows communication with users in system specific
formats.<br>
formats.<br/>
&nbsp;</li>
</ul>
</li>
<li><b>Error handling and reporting via C++ exceptions (the default) or error
codes.</b><br>
codes.</b><br/>
&nbsp;<ul>
<li>C++ exceptions are the preferred error reporting mechanism for most
applications. The exception thrown includes the detailed error code
information important for diagnosing the exact cause of file system errors.</li>
<li>Error reporting via error code allows user code that provides detailed
error recovery to avoid becoming so littered with try-catch blocks as to be
unmaintainable. <br>
unmaintainable. <br/>
&nbsp;</li>
</ul>
</li>
<li><b>Suitable for a broad spectrum of applications, ranging from simple
script-like operations to extremely complex production code.</b><br>
script-like operations to extremely complex production code.</b><br/>
&nbsp;<ul>
<li>At the simple script-like end of the spectrum, the intent is not to
compete with Python, Perl, or shell languages, but rather to provide
@@ -120,15 +121,15 @@ throwing exceptions.</p>
<li dir="ltr">
<p dir="ltr">Finer grained control over operations and error handling is available to
support more complex applications or other cases where throwing exceptions
isn't desired.<br>
&nbsp;</li>
isn't desired.<br/>
&nbsp;</p></li>
</ul>
</li>
<li>
<p dir="ltr"><b>Forms the basis for
<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4100.pdf">
ISO/IEC TS 18822</a>, the C++ standard library Filesystem Technical
Specification.</b></li>
Specification.</b></p></li>
</ul>
<h2><a name="Documentation">Documentation</a></h2>
@@ -190,11 +191,11 @@ example of the difficulties this can cause, note that the following asserts
may fail:</p>
<blockquote>
<p><code>assert( exists( &quot;foo&quot; ) == exists( &quot;foo&quot; ) );&nbsp; //
(1)<br>
<br>
remove_all( &quot;foo&quot; );<br>
assert( !exists( &quot;foo&quot; ) );&nbsp; // (2)<br>
<br>
(1)<br/>
<br/>
remove_all( &quot;foo&quot; );<br/>
assert( !exists( &quot;foo&quot; ) );&nbsp; // (2)<br/>
<br/>
assert( is_directory( &quot;foo&quot; ) == is_directory( &quot;foo&quot; ) ); //
(3)</code></p>
</blockquote>
@@ -231,7 +232,7 @@ noexcept</code> never throw exceptions.</p>
<ul>
<li>Header &lt;<a href="../../../boost/filesystem.hpp">boost/filesystem.hpp</a>&gt;
provides access to all features of the library, except file streams.<br>
provides access to all features of the library, except file streams.<br/>
&nbsp;</li>
<li>Header &lt;<a href="../../../boost/filesystem/fstream.hpp">boost/filesystem/fstream.hpp</a>&gt;
inherits the same components as the C++ Standard
@@ -390,7 +391,7 @@ time. Howard Hinnant helped with internationalization issues.</p>
<a href="design.htm#Realities">design realities</a> were developed during
extensive discussions on the Boost mailing list, followed by comments on the
initial implementation. Numerous helpful comments were then received during the
Formal Review.<p>Participants included
Formal Review. Participants included
Aaron Brashears,
Alan Bellingham,
Aleksey Gurtovoy,
@@ -477,7 +478,8 @@ Toon Knapen,
Victor Wagner,
Vincent Finn,
Vladimir Prus, and
Yitzhak Sapir
Yitzhak Sapir.
</p>
<p>A lengthy discussion on the C++ committee's library reflector illuminated the &quot;illusion
of portability&quot; problem, particularly in postings by PJ Plauger and Pete Becker.</p>
@@ -485,7 +487,7 @@ of portability&quot; problem, particularly in postings by PJ Plauger and Pete Be
<p>Walter Landry provided much help illuminating symbolic link use cases for
version 1.31.0.&nbsp;</p>
<hr>
<hr/>
<p>&copy; Copyright Beman Dawes, 2002-2005</p>
<p>&copy; Copyright Andrey Semashev, 2021</p>

View File

@@ -1,11 +1,11 @@
<html>
<head>
<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">
<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>Filesystem issue reporting</title>
<link href="styles.css" rel="stylesheet">
<link href="styles.css" rel="stylesheet"/>
</head>
<body>
@@ -14,7 +14,7 @@
<tr>
<td width="277">
<a href="../../../index.htm">
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"></a></td>
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"/></a></td>
<td align="middle">
<font size="7">Filesystem Bug Reporting</font>
</td>
@@ -36,6 +36,7 @@
<a href="deprecated.html">Deprecated</a> &nbsp;&nbsp;
<a href="issue_reporting.html">Bug Reports </a>&nbsp;&nbsp;
</td>
</tr>
</table>
<p>Boost.Filesystem issues such as bug reports or feature requests should be
@@ -184,14 +185,13 @@ need most of them for bug reporting. Here are a few you might find helpful:</p>
<ol>
<li>A simple test program
that:<ul>
<li dir="ltr">
<p dir="ltr">Illustrates the problem <b>[Code communicates more clearly than
<li dir="ltr">Illustrates the problem <b>[Code communicates more clearly than
prose. If it looks like it will it will take some time to figure out exactly what the
problem is, or worse yet, might result in a wild-goose chase, the bug report
gets set aside to be worked on later and then is often forgotten.] </b>and</li>
gets set aside to be worked on later and then is often forgotten.]</b> and</li>
<li>Automatically yields an unambiguous pass or fail result - returning zero
for pass and non-zero for fail is preferred <b>[Prevents
miscommunications and allows use in automatic regression tests.]</b>, and </li>
miscommunications and allows use in automatic regression tests.]</b>, and</li>
<li>Can be used as the basis for adding tests to Boost.Filesystem&#39;s
regression test suite <b>[With good test cases fixes come easier and
regressions become less likely]</b>.</li>
@@ -201,7 +201,7 @@ that:<ul>
used to build and run your test program. <b>[The implementation includes much
platform dependent code, and also depends on the other factors mentioned. Know
these things upfront brings the bug report into focus without having to ask
for more information. ]</b></li>
for more information.]</b></li>
<li>A description of how to build and run the test program. <b>[If b2
(formerly known as bjam) is used as the build engine, this is not a concern,
but otherwise much more information is needed.]</b></li>
@@ -211,7 +211,7 @@ that:<ul>
primary means of response, but it is disheartening when a trac question is not
answered and there is no email address attached for followup.]</b></li>
</ol>
<hr>
<hr/>
<p>&copy; Copyright Beman Dawes, 2014</p>
<p>&copy; Copyright Andrey Semashev, 2019, 2021</p>
<p> Distributed under the Boost Software

View File

@@ -1,18 +1,18 @@
<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">
<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>Portability Guide</title>
<link href="styles.css" rel="stylesheet">
<link href="styles.css" rel="stylesheet"/>
</head>
<body bgcolor="#FFFFFF">
<h1>
<img border="0" src="../../../boost.png" align="center" width="300" height="86">Path
<img border="0" src="../../../boost.png" align="center" width="300" height="86"/>Path
Name Portability
Guide</h1>
@@ -31,11 +31,12 @@ Guide</h1>
<a href="deprecated.html">Deprecated</a> &nbsp;&nbsp;
<a href="issue_reporting.html">Bug Reports </a>&nbsp;&nbsp;
</td>
</tr>
</table>
<p>
<a href="#Introduction">Introduction</a><br>
<a href="#name_check_functions">name_check functions</a><br>
<a href="#Introduction">Introduction</a><br/>
<a href="#name_check_functions">name_check functions</a><br/>
<a href="#recommendations">File and directory name recommendations</a></p>
<h2><a name="Introduction">Introduction</a></h2>
<p>Like any other C++ program which performs I/O operations, there is no
@@ -92,10 +93,10 @@ portability yet not overly restrict expressiveness.</p>
std::string&amp;<i> name</i>)</code></td>
<td><b>Returns:</b> <i>true</i> if <code>!name.empty() &amp;&amp; name</code> contains only the characters
specified in<i> Portable Filename Character Set</i> rules as defined in by
POSIX (<a href="http://www.opengroup.org/onlinepubs/007904975/basedefs/xbd_chap03.html">www.opengroup.org/onlinepubs/007904975/basedefs/xbd_chap03.html</a>).<br>
POSIX (<a href="http://www.opengroup.org/onlinepubs/007904975/basedefs/xbd_chap03.html">www.opengroup.org/onlinepubs/007904975/basedefs/xbd_chap03.html</a>).<br/>
The allowed characters are <code>0-9</code>, <code>a-z</code>, <code>A-Z</code>,
<code>'.'</code>, <code>'_'</code>, and <code>'-'</code>.<p><b>Use:</b>
applications which must be portable to any POSIX system.</td>
applications which must be portable to any POSIX system.</p></td>
</tr>
<tr>
<td align="left" valign="top"><code><a name="windows_name">windows_name</a>(const
@@ -111,7 +112,7 @@ portability yet not overly restrict expressiveness.</p>
<p><b>Note:</b> Reserved device names are not valid as file names, but are
not being detected because they are still valid as a path. Specifically,
CON, PRN, AUX, CLOCK$, NUL, COM[1-9], LPT[1-9], and these names followed by
an extension (for example, NUL.tx7).</td>
an extension (for example, NUL.tx7).</p></td>
</tr>
<tr>
<td align="left" valign="top"><code><a name="portable_name">portable_name</a>(const
@@ -120,14 +121,14 @@ portability yet not overly restrict expressiveness.</p>
&amp;&amp; (name</code> is <code>&quot;.&quot;</code> or <code>&quot;..&quot;</code>, and the first character not a period or hyphen<code>)</code>.<p><b>Use:</b> applications which must be portable to a wide variety of
modern operating systems, large and small, and to some legacy O/S's. The
first character not a period or hyphen restriction is a requirement of
several older operating systems.</td>
several older operating systems.</p></td>
</tr>
<tr>
<td align="left" valign="top"><code><a name="portable_directory_name">
portable_directory_name</a>(const std::string&amp;<i> name</i>)</code></td>
<td><b>Returns:</b> <code>portable_name(name) &amp;&amp; (name</code> is <code>&quot;.&quot;</code>
or <code>&quot;..&quot;</code>&nbsp; or contains no periods<code>)</code>.<p><b>Use:</b> applications
which must be portable to a wide variety of platforms, including OpenVMS.</td>
which must be portable to a wide variety of platforms, including OpenVMS.</p></td>
</tr>
<tr>
<td align="left" valign="top"><code><a name="portable_file_name">
@@ -136,7 +137,7 @@ portability yet not overly restrict expressiveness.</p>
non-period characters.<p><b>Use:</b>
applications which must be portable to a wide variety of platforms,
including OpenVMS and other systems which have a concept of &quot;file extension&quot;
but limit its length.</td>
but limit its length.</p></td>
</tr>
<tr>
<td align="left" valign="top"><code><a name="native">native</a>(const
@@ -145,7 +146,7 @@ portability yet not overly restrict expressiveness.</p>
true</i> for names considered valid by the operating system's native file
systems.<p><b>Note:</b> May return <i>true</i> for some names not considered valid
by the operating system under all conditions (particularly on operating systems which support
multiple file systems.)</td>
multiple file systems.)</p></td>
</tr>
</table>
@@ -160,7 +161,7 @@ portability yet not overly restrict expressiveness.</p>
<tr>
<td valign="top">Limit file and directory names to the characters A-Z, a-z, 0-9, period, hyphen, and
underscore.<p>Use any of the &quot;portable_&quot; <a href="#name_check_functions">
name check functions</a> to enforce this recommendation.</td>
name check functions</a> to enforce this recommendation.</p></td>
<td valign="top">These are the characters specified by the POSIX standard for portable directory and
file names, and are also valid for Windows, Mac, and many other modern file systems.</td>
</tr>
@@ -170,7 +171,7 @@ portability yet not overly restrict expressiveness.</p>
Use <a href="#portable_name">portable_name</a>,
<a href="#portable_directory_name">portable_directory_name</a>, or
<a href="#portable_file_name">portable_file_name</a> to enforce this
recommendation.</td>
recommendation.</p></td>
<td valign="top">Some operating systems treat have special rules for the
first character of names. POSIX, for example. Windows does not permit period
as the last character.</td>
@@ -178,14 +179,14 @@ portability yet not overly restrict expressiveness.</p>
<tr>
<td valign="top">Do not use periods in directory names.<p>Use
<a href="#portable_directory_name">portable_directory_name</a> to enforce
this recommendation.</td>
this recommendation.</p></td>
<td valign="top">Requirement for ISO-9660 without Juliet extensions, OpenVMS filesystem, and other legacy systems.</td>
</tr>
<tr>
<td valign="top">Do not use more that one period in a file name, and limit
the portion after the period to three characters.<p>Use
<a href="#portable_file_name">portable_file_name</a> to enforce this
recommendation.</td>
recommendation.</p></td>
<td valign="top">Requirement for ISO-9660 level 1, OpenVMS filesystem, and
other legacy systems. </td>
</tr>
@@ -217,18 +218,18 @@ portability yet not overly restrict expressiveness.</p>
</tr>
<tr>
<td valign="top">Limit the length of any one name in a path.&nbsp; Pick the specific limit according to
the operating systems and or file systems you wish portability to:<br>
&nbsp;&nbsp; Not a concern::&nbsp; POSIX, Windows, MAC OS X.<br>
&nbsp;&nbsp; 31 characters: Classic Mac OS<br>
&nbsp;&nbsp; 8 characters + period + 3 characters: ISO 9660 level 1<br>
&nbsp;&nbsp; 32 characters: ISO 9660 level 2 and 3<br>
the operating systems and or file systems you wish portability to:<br/>
&nbsp;&nbsp; Not a concern::&nbsp; POSIX, Windows, MAC OS X.<br/>
&nbsp;&nbsp; 31 characters: Classic Mac OS<br/>
&nbsp;&nbsp; 8 characters + period + 3 characters: ISO 9660 level 1<br/>
&nbsp;&nbsp; 32 characters: ISO 9660 level 2 and 3<br/>
&nbsp;&nbsp; 128 characters (64 if Unicode): ISO 9660 with Juliet extensions</td>
<td valign="top">Limiting name length can markedly reduce the expressiveness of file names, yet placing
only very high limits on lengths inhibits widest portability.</td>
</tr>
</table>
<hr>
<hr/>
<p>&copy; Copyright Beman Dawes, 2002, 2003</p>
<p> Use, modification, and distribution are subject to the Boost Software

File diff suppressed because it is too large Load Diff

View File

@@ -1,12 +1,12 @@
<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">
<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>Filesystem Relative Proposal</title>
<link href="styles.css" rel="stylesheet">
<link href="styles.css" rel="stylesheet"/>
</head>
<body>
@@ -15,9 +15,9 @@
<tr>
<td width="277">
<a href="../../../index.htm">
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"></a></td>
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"/></a></td>
<td align="middle">
<font size="7">Filesystem Relative<br>
<font size="7">Filesystem Relative<br/>
Draft Proposal</font>
</td>
</tr>
@@ -38,40 +38,41 @@
<a href="deprecated.html">Deprecated</a> &nbsp;&nbsp;
<a href="issue_reporting.html">Bug Reports </a>&nbsp;&nbsp;
</td>
</tr>
</table>
<p><a href="#Introduction">
Introduction</a><br>
&nbsp;&nbsp;&nbsp; <a href="#Acknowledgement">Acknowledgement</a><br>
&nbsp;&nbsp; &nbsp;<a href="#Preliminary-implementation">Preliminary implementation</a><br>
<a href="#Requirements">Requirements</a><br>
<a href="#Issues">Issues</a><br>
Introduction</a><br/>
&nbsp;&nbsp;&nbsp; <a href="#Acknowledgement">Acknowledgement</a><br/>
&nbsp;&nbsp; &nbsp;<a href="#Preliminary-implementation">Preliminary implementation</a><br/>
<a href="#Requirements">Requirements</a><br/>
<a href="#Issues">Issues</a><br/>
<a href="#Design-decisions">
Design decisions</a><br>
Design decisions</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#Provide-separate-relative">Provide separate lexical and
operational <code>relative</code> functions</a><br>
operational <code>relative</code> functions</a><br/>
&nbsp;&nbsp;&nbsp; <a href="#Provide-separate-proximate">Provide
separate lexical and operational <code>proximate</code> functions</a><br>
&nbsp;&nbsp;&nbsp; <a href="#Add-lexical-functions">Add lexical functions as <code>path</code> member functions</a><br>
separate lexical and operational <code>proximate</code> functions</a><br/>
&nbsp;&nbsp;&nbsp; <a href="#Add-lexical-functions">Add lexical functions as <code>path</code> member functions</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#Provide-normal">Provide a non-member function
<code>lexically_normal</code> returning a
normal form path</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#Provide-weakly">Provide a <code>weakly_canonical</code> operational function</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#just-work">Resolve issues in ways that &quot;just work&quot; for users</a><br>
normal form path</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#Provide-weakly">Provide a <code>weakly_canonical</code> operational function</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#just-work">Resolve issues in ways that &quot;just work&quot; for users</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mismatch">Specify <code>lexical relative</code> in terms
of <code>std::mismatch</code></a><br>
of <code>std::mismatch</code></a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#Specify-op-rel-weakly">Specify operational <code>relative</code> in terms of <code>
weakly_canonical</code></a><br>
weakly_canonical</code></a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#Specify-op-rel-lex-rel">Specify operational <code>relative</code> in terms of
<code>lexically
relative</code></a><br>
<a href="#Proposed-wording">Proposed wording</a><br>
&nbsp;&nbsp;&nbsp; <a href="#Define-normal-form">Define <i>normal form</i></a><br>
&nbsp;&nbsp;&nbsp; <a href="#New-class-path-member-functions">New class path member functions</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="#Synopsis-path">Synopsis</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="#Specification-path">Specification</a><br>
&nbsp;&nbsp;&nbsp; <a href="#operational-functions">New operational functions</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="#Synopsis-ops">Synopsis</a><br>
relative</code></a><br/>
<a href="#Proposed-wording">Proposed wording</a><br/>
&nbsp;&nbsp;&nbsp; <a href="#Define-normal-form">Define <i>normal form</i></a><br/>
&nbsp;&nbsp;&nbsp; <a href="#New-class-path-member-functions">New class path member functions</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="#Synopsis-path">Synopsis</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="#Specification-path">Specification</a><br/>
&nbsp;&nbsp;&nbsp; <a href="#operational-functions">New operational functions</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="#Synopsis-ops">Synopsis</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="#Specification-ops">Specification</a></p>
<h2>
@@ -353,7 +354,7 @@ path lexically_proximate(const path&amp; base) const;</pre>
<p><i>Returns:</i> <code>*this</code> in <a href="#normal-form">normal form</a>.</p>
<p><i>Remarks:</i> Uses <code>operator/=</code> to compose the returned path.</p>
<p>[<i>Example:</i></p>
<p><code>assert(path(&quot;foo/./bar/..&quot;).lexically_normal() == &quot;foo&quot;);<br>
<p><code>assert(path(&quot;foo/./bar/..&quot;).lexically_normal() == &quot;foo&quot;);<br/>
assert(path(&quot;foo/.///bar/../&quot;).lexically_normal() == &quot;foo/.&quot;);</code></p>
<p>The above assertions will succeed.<i> </i>On Windows, the
returned path&#39;s <i>directory-separator</i> characters will be backslashes rather than slashes, but that
@@ -376,13 +377,13 @@ does not affect <code>path</code> equality.<i> —end example</i>]</p>
<li>
<code>path()</code> if the first mismatched element of <code>*this</code> is equal to <code>
begin()</code> or the first mismatched element
of <code>base</code> is equal to <code>base.begin()</code>, or<br>&nbsp;
of <code>base</code> is equal to <code>base.begin()</code>, or<br/>&nbsp;
</li>
<li>
<code>path(&quot;.&quot;)</code> if the first mismatched element of <code>
*this</code> is equal to <code>
end()</code> and the first mismatched element
of <code>base</code> is equal to <code>base.end()</code>, or<br>&nbsp;
of <code>base</code> is equal to <code>base.end()</code>, or<br/>&nbsp;
</li>
<li>An object of class <code>path</code> composed via application of <code>
operator/= path(&quot;..&quot;)</code> for each element in the half-open
@@ -395,11 +396,11 @@ does not affect <code>path</code> equality.<i> —end example</i>]</p>
</ul>
<p>[<i>Example:</i></p>
<p><code>assert(path(&quot;/a/d&quot;).lexically_relative(&quot;/a/b/c&quot;) == &quot;../../d&quot;);<br>
assert(path(&quot;/a/b/c&quot;).lexically_relative(&quot;/a/d&quot;) == &quot;../b/c&quot;);<br>
assert(path(&quot;a/b/c&quot;).lexically_relative(&quot;a&quot;) == &quot;b/c&quot;);<br>
assert(path(&quot;a/b/c&quot;).lexically_relative(&quot;a/b/c/x/y&quot;) == &quot;../..&quot;);<br>
assert(path(&quot;a/b/c&quot;).lexically_relative(&quot;a/b/c&quot;) == &quot;.&quot;);<br>
<p><code>assert(path(&quot;/a/d&quot;).lexically_relative(&quot;/a/b/c&quot;) == &quot;../../d&quot;);<br/>
assert(path(&quot;/a/b/c&quot;).lexically_relative(&quot;/a/d&quot;) == &quot;../b/c&quot;);<br/>
assert(path(&quot;a/b/c&quot;).lexically_relative(&quot;a&quot;) == &quot;b/c&quot;);<br/>
assert(path(&quot;a/b/c&quot;).lexically_relative(&quot;a/b/c/x/y&quot;) == &quot;../..&quot;);<br/>
assert(path(&quot;a/b/c&quot;).lexically_relative(&quot;a/b/c&quot;) == &quot;.&quot;);<br/>
assert(path(&quot;a/b&quot;).lexically_relative(&quot;c/d&quot;) == &quot;&quot;);</code></p>
<p>The above assertions will succeed.<i> </i>On Windows, the
returned path&#39;s <i>directory-separator</i>s will be backslashes rather than
@@ -499,7 +500,7 @@ path proximate(const path&amp; p, const path&amp; base, system::error_code&amp;
<p><i>Throws:</i> As specified in Error reporting.</p>
</blockquote>
<hr>
<hr/>
<p>&copy; Copyright Beman Dawes 2015</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>

View File

@@ -1,12 +1,12 @@
<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">
<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>Filesystem Release History</title>
<link href="styles.css" rel="stylesheet">
<link href="styles.css" rel="stylesheet"/>
</head>
<body>
@@ -15,7 +15,7 @@
<tr>
<td width="277">
<a href="../../../index.htm">
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"></a></td>
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"/></a></td>
<td align="middle">
<font size="7">Filesystem Release History</font>
</td>
@@ -37,6 +37,7 @@
<a href="deprecated.html">Deprecated</a> &nbsp;&nbsp;
<a href="issue_reporting.html">Bug Reports</a>&nbsp;&nbsp;
</td>
</tr>
</table>
<h2>1.85.0</h2>
@@ -84,7 +85,7 @@
<li>Due to changes in Boost.System and some other libraries used in Boost.Filesystem, the support for C++03 is deprecated. C++11 will become the minimum starting with Boost.Filesystem 1.84.</li>
<li>Fixed compilation errors that could have been caused by <code>path</code> conversion constructors being too permissive on the accepted arguments. (<a href="https://github.com/boostorg/filesystem/issues/273">#273</a>)</li>
<li><b>v4:</b> <code>path::remove_filename</code> now presesrves the trailing directory separator. (<a href="https://github.com/boostorg/filesystem/issues/271">#271</a>)</li>
<li>Added <code>path::remove_filename_and_trailing_separators</li>, which removes the filename and directory separators preceding it from the path. This behavior is similar to <code>path::remove_filename</code> in Filesystem <b>v3</b>, but is also usable in <b>v4</b>.
<li>Added <code>path::remove_filename_and_trailing_separators</code>, which removes the filename and directory separators preceding it from the path. This behavior is similar to <code>path::remove_filename</code> in Filesystem <b>v3</b>, but is also usable in <b>v4</b>.</li>
<li>Added <code>path::replace_filename</code>, which replaces filename in a path.</li>
<li>Updated implementation of the library version selection to avoid ODR violations. (<a href="https://github.com/boostorg/filesystem/issues/279">#279</a>)</li>
<li>On Windows, added a workaround for querying file attributes for files in SMBv1 shares. Previously, directories in SMBv1 shares could have been reported as regular files. This does not affect SMBv2 or later. (<a href="https://github.com/boostorg/filesystem/issues/282">#282</a>)</li>
@@ -210,7 +211,7 @@
<li><code>equivalent</code> on POSIX systems now returns the actual error code from the OS if one of the paths does not resolve to a file. Previously the function would return an error code of 1. (<a href="https://github.com/boostorg/filesystem/issues/141">#141</a>)</li>
<li><code>equivalent</code> no longer considers file size and last modification time in order to test whether the two paths refer to the same file. These checks could result in a false negative if the file was modified during the <code>equivalent</code> call.</li>
<li><b>New:</b> Added <code>absolute</code> overloads taking <code>error_code</code> argument.</li>
<li>Operations that have <code>current_path()</code> as the default value of their arguments and also have an <code>error_code</code> argument will use the <code>current_path(error_code& ec)</code> overload to obtain the current path, so that its failure is reported via the <code>error_code</code> argument instead of an exception.</li>
<li>Operations that have <code>current_path()</code> as the default value of their arguments and also have an <code>error_code</code> argument will use the <code>current_path(error_code&amp; ec)</code> overload to obtain the current path, so that its failure is reported via the <code>error_code</code> argument instead of an exception.</li>
<li><code>space</code> now initializes the <code>space_info</code> structure members to -1 values on error, as required by C++20 ([fs.op.space]/1).</li>
<li><code>space</code> on Windows now accepts paths referring to arbitrary files, not only directories. This is similar to POSIX systems and corresponds to the operation description in C++20. (<a href="https://github.com/boostorg/filesystem/issues/73">#73</a>)</li>
<li><b>New:</b> Added implementation of <code>temp_directory_path</code> for Windows CE. (<a href="https://github.com/boostorg/filesystem/pull/25">PR#25</a>)</li>
@@ -306,7 +307,7 @@
gives problems in C++/CLI.</i> Unless the macro BOOST_FILESYSTEM_NO_DEPRECATED
is defined, the original <code>generic()</code> will continue to be supplied
as a workaround for existing user code. But <code>generic()</code>is
deprecated. User code should migrate to the new name.</li>
deprecated. User code should migrate to the new name.</p></li>
<li><b>New:</b> Class <code>path</code> adds constexpr constants <code>
separator</code> and <code>dot</code> of the type appropriate for the
platform, and adds query functions <a href="reference.html#filename_is_dot">
@@ -352,7 +353,7 @@
perseverance. Resolves tickets
<a href="https://svn.boost.org/trac/boost/ticket/1976">#1976</a>,
<a href="https://svn.boost.org/trac/boost/ticket/5897">#5897</a>,
<a href="https://svn.boost.org/trac/boost/ticket/6249">#6249</a></li>
<a href="https://svn.boost.org/trac/boost/ticket/6249">#6249</a></p></li>
<li><b>New:</b> Class <code>path</code> now has
<a href="reference.html#path-iterators"> <code>reverse_iterator</code>,
<code>const_reverse_iterator</code>, <code>rbegin()</code>, and <code>rend()</code></a>. </li>
@@ -393,7 +394,7 @@
<li>
<p>Fix <a href="https://svn.boost.org/trac/boost/ticket/11288">#11288</a>, <i>
<font face="Arial">A patch to avoid redundant string allocations</font></i>,
by applying a patch submitted by Yevhen Ivannikov.</li>
by applying a patch submitted by Yevhen Ivannikov.</p></li>
<li>Fix <a href="https://svn.boost.org/trac/boost/ticket/11175">#11175</a>,
out-of-date documentation causing users to incorrectly expect that the library
could be used with exceptions disabled.</li>
@@ -404,11 +405,11 @@
<p>Fix <a href="https://svn.boost.org/trac/boost/ticket/7258">#7258</a>,
<i><code>create_directories</code> returns false if the path ends with a slash</i>.
Also fix related issues if path contains <i>dot</i> or <i>dot-dot</i>
elements, and added test cases to the test suite.</li>
elements, and added test cases to the test suite.</p></li>
<li>
<p>Reference docs editorial cleanups: Use same style sheet as the
rest of the documentation. Tweak tab font size. Fix excessively long lines in
tables, synopsis.</li>
tables, synopsis.</p></li>
<li>Resolve <a href="https://svn.boost.org/trac/boost/ticket/10766">
#10766</a>, <i>parent_path() with redundant separator returns wrong value</i>,
by adding examples and notes to the reference documentation to show why the
@@ -694,7 +695,7 @@
fixing missing and broken links, and adding missing functions.</li>
<li>Miscellaneous implementation code cleanup. </li>
</ul>
<hr>
<hr/>
<p>&copy; Copyright Beman Dawes, 2011</p>
<p>&copy; Copyright Andrey Semashev, 2019-2021</p>
<p> Use, modification, and distribution are subject to the Boost Software

View File

@@ -1,10 +1,10 @@
<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">
<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>Filesystem Tickets</title>
</head>
@@ -13,27 +13,27 @@
<p>&nbsp;</p>
<h2>Locale related</h2>
<p><a href="https://svn.boost.org/trac/boost/ticket/3332">#3332</a>
boost::filesystem::path will get trouble in locale Chinese_Taiwan.950 (windows)<br>
boost::filesystem::path will get trouble in locale Chinese_Taiwan.950 (windows)<br/>
<a href="https://svn.boost.org/trac/boost/ticket/7211">#7211</a> path_locale
destructor crashes when overloaded operator new and delete are present<br>
destructor crashes when overloaded operator new and delete are present<br/>
<a href="https://svn.boost.org/trac/boost/ticket/8388">#8388</a>
windows_file_codecvt should be allocated with _NEW_CRT<br>
windows_file_codecvt should be allocated with _NEW_CRT<br/>
<a href="https://svn.boost.org/trac/boost/ticket/8642">#8642</a> Global locale
prevents from using Boost.Filesystem in global constructors and destructors<br>
prevents from using Boost.Filesystem in global constructors and destructors<br/>
<a href="https://svn.boost.org/trac/boost/ticket/8930">#8930</a>
boost::path::root_directory() throws locale::facet::_S_create_c_locale name not
valid<br>
valid<br/>
<a href="https://svn.boost.org/trac/boost/ticket/9182">#9182</a>
Boost-filesystem std::runtime_error: locale::facet::_S_create_c_locale name not
valid failure on Xamarin.Android<br>
valid failure on Xamarin.Android<br/>
<a href="https://svn.boost.org/trac/boost/ticket/9219">#9219</a> path::codecvt()
is called when not required<br>
is called when not required<br/>
<a href="https://svn.boost.org/trac/boost/ticket/9560">#9560</a>
operations_test_static unit test crashes during static initialization phase on
Mac/10.7/32-bit/darwin-4.2.1<br>
Mac/10.7/32-bit/darwin-4.2.1<br/>
<a href="https://svn.boost.org/trac/boost/ticket/10205">#10205</a> FileSystem
runtime error: locale::facet::_S_create_c_locale name not valid<br>
<br>
runtime error: locale::facet::_S_create_c_locale name not valid<br/>
<br/>
&nbsp;</p>
<h2>TR alignment</h2>
<p>Work has started to bring the library into alignment with the C++ File System

View File

@@ -1,11 +1,12 @@
<html>
<head>
<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">
<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>Filesystem V3 Intro</title>
<link href="styles.css" rel="stylesheet">
<link href="styles.css" rel="stylesheet"/>
</head>
<body>
@@ -13,10 +14,10 @@
<tr>
<td width="277">
<a href="../../../index.htm">
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"></a></td>
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"/></a></td>
<td align="middle">
<font size="7">Filesystem
Version 3<br>
Version 3<br/>
Introduction</font></td>
</tr>
</table>
@@ -36,6 +37,7 @@
<a href="deprecated.html">Deprecated</a> &nbsp;&nbsp;
<a href="issue_reporting.html">Bug Reports </a>&nbsp;&nbsp;
</td>
</tr>
</table>
<h1>Boost Filesystem Version 3</h1>
@@ -49,21 +51,21 @@ changes include:</p>
and <code>wpath</code> instantiations. Character types <code>char</code>,
<code>wchar_t</code>, <code>char16_t</code>, and <code>char32_t</code> are
supported. This is a major simplification of the path abstraction,
particularly for functions that take path arguments.<br>
particularly for functions that take path arguments.<br/>
&nbsp;</li>
<li>New <code>class path</code> members include:<br>
<li>New <code>class path</code> members include:<br/>
&nbsp;<ul>
<li><code><a href="reference.html#path-has_stem">has_stem</a>()</code></li>
<li><code><a href="reference.html#path-has_extension">has_extension</a>()</code></li>
<li><code><a href="reference.html#path-is_absolute">is_absolute</a>()</code>. This renames <code>is_complete()</code>, which
is now deprecated.</li>
<li><code><a href="reference.html#path-is_relative">is_relative</a>()</code></li>
<li><code><a href="reference.html#path-make_preferred">make_preferred</a>()<br>
<li><code><a href="reference.html#path-make_preferred">make_preferred</a>()<br/>
&nbsp;</code></li>
</ul>
</li>
<li>New or improved operations functions include:<br>
<li>New or improved operations functions include:<br/>
&nbsp;<ul>
<li><code><a href="reference.html#absolute">absolute</a>()</code>. This replaces the operations function <code>
complete()</code>, which is now deprecated. Semantics are now provided for a
@@ -75,14 +77,14 @@ changes include:</p>
<li><code><a href="reference.html#resize_file">resize_file</a>()</code> function added. Supported on both POSIX and
Windows. Used to shrink or grow a regular file.</li>
<li><code><a href="reference.html#unique_path">unique_path</a>()</code> function added. Supported on both POSIX and
Windows. Used to generate a secure temporary pathname.<br>
Windows. Used to generate a secure temporary pathname.<br/>
&nbsp;</li>
</ul>
</li>
<li>Support for error reporting via <code>error_code</code> is now uniform
throughout the operations functions.<br>
throughout the operations functions.<br/>
&nbsp;</li>
<li>Documentation has been reworked, including re-writes of major portions.<br>
<li>Documentation has been reworked, including re-writes of major portions.<br/>
&nbsp;</li>
<li>A new <a href="tutorial.html">Tutorial</a> provides a hopefully much
gentler and more complete introduction for new users. Current users might want
@@ -105,7 +107,7 @@ several Boost releases. Version 2 was removed in Boost 1.50.0.</p>
overloaded functions, that depends on <code>path</code> and <code>wpath</code>
being two distinct types will fail to compile and must be restructured.
Restructuring may be as simple as removing one of the overloads, but also
might require more complex redesign.<br>
might require more complex redesign.<br/>
&nbsp;</li>
<li>Certain functions now return <code>path</code> objects rather than <code>
string or wstring</code> objects:<ul>
@@ -119,8 +121,8 @@ several Boost releases. Version 2 was removed in Boost 1.50.0.</p>
accepts a <code>path</code>, all is well. If the result is being used in a
context requiring a <code>std::string</code> or <code>std::wstring</code>,
then <code>.string()</code> or <code>.wstring()</code> respectively must be
appended to the function call.<br>
&nbsp;</li>
appended to the function call.<br/>
&nbsp;</p></li>
<li>&nbsp;<code>path::iterator::value_type</code> and&nbsp; <code>
path::const_iterator::value_type</code> is <code>path</code> rather than <code>
basic_string</code>.</li>
@@ -129,18 +131,18 @@ several Boost releases. Version 2 was removed in Boost 1.50.0.</p>
<ul>
<li>Compilers and standard libraries that do not fully support wide characters
and wide character strings (<code>std::wstring</code>) are no longer
supported.<br>
supported.<br/>
&nbsp;</li>
<li>Cygwin versions prior to 1.7 are no longer supported because they lack
wide string support. Cygwin now compiles only for the Windows API and path
syntax.<br>
syntax.<br/>
&nbsp;</li>
<li>MinGW versions not supporting wide strings are no longer supported.<br>
<li>MinGW versions not supporting wide strings are no longer supported.<br/>
&nbsp;</li>
<li>Microsoft VC++ 7.1 and earlier are no longer supported.</li>
</ul>
<hr>
<hr/>
<p>&copy; Copyright Beman Dawes, 2009</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>

View File

@@ -1,12 +1,12 @@
<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">
<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>Filesystem V3 Design</title>
<link href="styles.css" rel="stylesheet">
<link href="styles.css" rel="stylesheet"/>
</head>
<body>
@@ -17,9 +17,9 @@
<td>
<a href="../../../index.htm">
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" border="0"
width="300" height="86"></a></td>
width="300" height="86"/></a></td>
<td align="middle">
<font size="7">Filesystem Version 3<br>
<font size="7">Filesystem Version 3<br/>
Design</font></td>
</tr>
</table>
@@ -39,6 +39,7 @@
<a href="deprecated.html">Deprecated</a> &nbsp;&nbsp;
<a href="issue_reporting.html">Bug Reports </a>&nbsp;&nbsp;
</td>
</tr>
</table>
<table border="1" cellpadding="5" cellspacing="0" style="border-collapse: collapse"
@@ -49,11 +50,11 @@
</tr>
<tr>
<td width="100%" bgcolor="#E8F5FF">
<a href="#Introduction">Introduction</a><br>
<a href="#Problem">Problem</a><br>
<a href="#Solution">Solution</a><br>
<a href="#Details">Details</a><br>
<a href="#Other-changes">Other changes</a><br>
<a href="#Introduction">Introduction</a><br/>
<a href="#Problem">Problem</a><br/>
<a href="#Solution">Solution</a><br/>
<a href="#Details">Details</a><br/>
<a href="#Other-changes">Other changes</a><br/>
<a href="#Acknowledgements">Acknowledgements</a></td>
</tr>
</table>
@@ -143,15 +144,15 @@ flexible user code.</p>
bordercolor="#111111" width="100%">
<tr>
<td width="33%" colspan="3">
<p align="center"><b><i>Encoding </i></b><i><b>Conversions</b></i></td>
<p align="center"><b><i>Encoding </i></b><i><b>Conversions</b></i></p></td>
</tr>
<tr>
<td width="33%">
<p align="center"><i><b>Host system</b></i></td>
<p align="center"><i><b>Host system</b></i></p></td>
<td width="33%">
<p align="center"><i><b>char string path arguments</b></i></td>
<p align="center"><i><b>char string path arguments</b></i></p></td>
<td width="34%">
<p align="center"><i><b>wide string path arguments</b></i></td>
<p align="center"><i><b>wide string path arguments</b></i></p></td>
</tr>
<tr>
<td width="33%">Systems with <code>char</code> as the native API path character type (i.e.
@@ -186,7 +187,7 @@ multiple character types and encodings. Walter Landry contributed both the desig
and implementation of the copy_any,
copy_directory, copy_symlink, and read_symlink functions.</p>
<hr>
<hr/>
<p>&copy; Copyright Beman Dawes, 2008</p>
<p> Use, modification, and distribution are subject to the Boost Software

View File

@@ -1,9 +1,10 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Filesystem V4</title>
<link href="styles.css" rel="stylesheet">
<link href="styles.css" rel="stylesheet"/>
</head>
<body>
@@ -11,10 +12,10 @@
<tr>
<td width="277">
<a href="../../../index.htm">
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"></a></td>
<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"/></a></td>
<td align="middle">
<font size="7">Filesystem
Version 4<br></font></td>
Version 4<br/></font></td>
</tr>
</table>
@@ -33,6 +34,7 @@
<a href="deprecated.html">Deprecated</a> &nbsp;&nbsp;
<a href="issue_reporting.html">Bug Reports </a>&nbsp;&nbsp;
</td>
</tr>
</table>
<h1>Boost Filesystem Version 4</h1>
@@ -61,7 +63,7 @@ It removes the features that were <a href="deprecated.html">deprecated</a> in Ve
<li><a href="reference.html#equivalent"><code>equivalent</code></a> now fails if only one of the input paths exists.</li>
</ul>
<hr>
<hr/>
<p>&copy; Copyright Andrey Semashev, 2021-2024</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>

View File

@@ -1,11 +1,11 @@
<html>
<head>
<meta http-equiv="refresh" content="0; URL=doc/index.htm">
<meta http-equiv="refresh" content="0; URL=doc/index.htm"/>
</head>
<body>
Automatic redirection failed, please go to
<a href="doc/index.htm">doc/index.htm</a>.
<hr>
<hr/>
<p>&copy; Copyright Beman Dawes, 2003</p>
<p> Distributed under the Boost Software License, Version 1.0.
See http://www.boost.org/LICENSE_1_0.txt</p>