Skip to content

Commit a7f52d1

Browse files
committed
[fs.path.generic] Move descriptions of grammar elements out of the
grammar and into separate paragraphs, and format path grammar as we format the language grammar. Also rephrase description of root-name to use the defined term "implementation-defined" directly rather than separating it into "implementations [...] define".
1 parent 04a9e5d commit a7f52d1

File tree

1 file changed

+34
-28
lines changed

1 file changed

+34
-28
lines changed

source/iostreams.tex

Lines changed: 34 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -10646,6 +10646,9 @@
1064610646

1064710647
\rSec3[fs.path.generic]{Generic pathname format}
1064810648

10649+
\def\impldefrootname{\impldef{supported \grammarterm{root-name}{s} in addition to
10650+
any operating system dependent \grammarterm{root-name}{s}}}
10651+
1064910652
\begin{ncbnf}
1065010653
\nontermdef{pathname}\br
1065110654
root-name root-directory\opt relative-path\opt\br
@@ -10655,21 +10658,8 @@
1065510658

1065610659
\begin{ncbnf}
1065710660
\nontermdef{root-name}\br
10658-
\textnormal{An operating system dependent name identifying the
10659-
starting location for pathname resolution~(\ref{fs.def.pathres}).
10660-
If the operating system does not define at least one \grammarterm{root-name},
10661-
then the implementation defines a \grammarterm{root-name}.
10662-
Implementations are permitted to define additional \grammarterm{root-name}{s}.
10663-
\begin{note} Many operating systems define a name
10664-
beginning with two \grammarterm{directory-separator} characters
10665-
as a \grammarterm{root-name} that identifies
10666-
network or other resource locations.
10667-
Some operating systems
10668-
define a single letter followed by a colon
10669-
as a drive specifier -- a \grammarterm{root-name}
10670-
identifying a specific device such as a disk drive.
10671-
\end{note}
10672-
}
10661+
\textnormal{operating system dependent sequences of characters}\br
10662+
\textnormal{\impldefrootname{} sequences of characters}
1067310663
\end{ncbnf}
1067410664

1067510665
\begin{ncbnf}
@@ -10687,17 +10677,7 @@
1068710677

1068810678
\begin{ncbnf}
1068910679
\nontermdef{filename}\br
10690-
\textnormal{A non-empty sequence of characters other than \grammarterm{directory-separator} characters.
10691-
\begin{note}
10692-
Operating systems often place restrictions
10693-
on the characters that may be used in a \grammarterm{filename}.
10694-
For wide portability, users may wish to limit \grammarterm{filename}
10695-
characters to the POSIX Portable Filename Character Set: \\
10696-
\tcode{A B C D E F G H I J K L M N O P Q R S T U V W X Y Z} \\
10697-
\tcode{a b c d e f g h i j k l m n o p q r s t u v w x y z} \\
10698-
\tcode{0 1 2 3 4 5 6 7 8 9 . _ -}
10699-
\end{note}
10700-
}
10680+
\textnormal{non-empty sequence of characters other than \grammarterm{directory-separator} characters}
1070110681
\end{ncbnf}
1070210682

1070310683
\begin{ncbnf}
@@ -10710,14 +10690,25 @@
1071010690

1071110691
\begin{ncbnf}
1071210692
\nontermdef{preferred-separator}\br
10713-
\textnormal{An operating system dependent directory separator character. May be a synonym for \grammarterm{slash}.}
10693+
\textnormal{operating system dependent directory separator character\footnote{May be a synonym for \grammarterm{slash}.}}
1071410694
\end{ncbnf}
1071510695

1071610696
\begin{ncbnf}
1071710697
\nontermdef{slash}\br
10718-
\textnormal{The slash character (\tcode{/}).}
10698+
\tcode{/}
1071910699
\end{ncbnf}
1072010700

10701+
\pnum
10702+
\begin{note}
10703+
Operating systems often place restrictions
10704+
on the characters that may be used in a \grammarterm{filename}.
10705+
For wide portability, users may wish to limit \grammarterm{filename}
10706+
characters to the POSIX Portable Filename Character Set: \\
10707+
\tcode{A B C D E F G H I J K L M N O P Q R S T U V W X Y Z} \\
10708+
\tcode{a b c d e f g h i j k l m n o p q r s t u v w x y z} \\
10709+
\tcode{0 1 2 3 4 5 6 7 8 9 . _ -}
10710+
\end{note}
10711+
1072110712
\pnum
1072210713
Except in a \grammarterm{root-name},
1072310714
multiple successive \grammarterm{directory-separator} characters are considered to
@@ -10730,6 +10721,21 @@
1073010721
relative to \grammarterm{root-directory} is \impldef{meaning of \grammarterm{dot-dot} in \grammarterm{root-directory}}.
1073110722
Specific filenames may have special meanings for a particular operating system.
1073210723

10724+
\pnum
10725+
A \grammarterm{root-name} identifies the
10726+
starting location for pathname resolution~(\ref{fs.def.pathres}).
10727+
If there are no operating system dependent \grammarterm{root-name}{s},
10728+
at least one \impldefrootname{} \grammarterm{root-name} is required.
10729+
\begin{note} Many operating systems define a name
10730+
beginning with two \grammarterm{directory-separator} characters
10731+
as a \grammarterm{root-name} that identifies
10732+
network or other resource locations.
10733+
Some operating systems
10734+
define a single letter followed by a colon
10735+
as a drive specifier -- a \grammarterm{root-name}
10736+
identifying a specific device such as a disk drive.
10737+
\end{note}
10738+
1073310739
\pnum
1073410740
If a \grammarterm{root-name} is otherwise ambiguous,
1073510741
the possibility with the longest sequence of characters is chosen.

0 commit comments

Comments
 (0)