Skip to content

Commit

Permalink
Fixed mismatching HTML tags in docs.
Browse files Browse the repository at this point in the history
  • Loading branch information
Lastique committed Jan 20, 2024
1 parent 5156746 commit 47dd78b
Show file tree
Hide file tree
Showing 15 changed files with 683 additions and 669 deletions.
47 changes: 24 additions & 23 deletions doc/deprecated.html
Original file line number Diff line number Diff line change
@@ -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>
Expand All @@ -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>
Expand All @@ -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>
Expand All @@ -57,27 +58,27 @@ <h2><a name="Deprecated-names">Deprecated names and features</a></h2>
<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>
Expand Down Expand Up @@ -129,9 +130,9 @@ <h2><a name="Deprecated-names">Deprecated names and features</a></h2>
<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>
Expand Down Expand Up @@ -206,9 +207,9 @@ <h2><a name="Deprecated-names">Deprecated names and features</a></h2>
<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">
Expand All @@ -222,13 +223,13 @@ <h2><a name="Deprecated-names">Deprecated names and features</a></h2>
<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">
Expand All @@ -237,7 +238,7 @@ <h2><a name="Deprecated-names">Deprecated names and features</a></h2>
<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">
Expand Down Expand Up @@ -341,7 +342,7 @@ <h3><code>initial_path</code> function</h3>
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>
Expand Down
120 changes: 60 additions & 60 deletions doc/design.htm
Original file line number Diff line number Diff line change
@@ -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>
Expand All @@ -42,8 +42,8 @@ <h2><a name="Introduction">Introduction</a></h2>
<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
Expand All @@ -53,31 +53,31 @@ <h2><a name="Requirements">Requirements</a></h2>
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,
Expand All @@ -86,32 +86,32 @@ <h2><a name="Requirements">Requirements</a></h2>
<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
Expand All @@ -122,68 +122,68 @@ <h2><a name="Requirements">Requirements</a></h2>
<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
Expand Down Expand Up @@ -315,7 +315,7 @@ <h2><a name="References">References</a></h2>
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>
Expand All @@ -338,7 +338,7 @@ <h2><a name="References">References</a></h2>
</tr>
</table>

<hr>
<hr/>

<p>&copy; Copyright Beman Dawes, 2002</p>
<p> Use, modification, and distribution are subject to the Boost Software
Expand Down
Loading

0 comments on commit 47dd78b

Please sign in to comment.