30
Input/output library
[input.output]
30.10
File systems
[filesystems]
30.10.4
Terms and definitions
[fs.definitions]
30.10.4.11
normal form
[fs.def.normal.form]
A path in normal form is said to be
normalized
.
The process of obtaining a normalized path from a path that is not in normal form is called
normalization
.
Normalization of a generic format pathname means:
If the path is empty, stop
.
Replace each slash character in the
root-name
with a
preferred-separator
.
Replace each
directory-separator
with a
preferred-separator
.
[
Note
:
The generic pathname grammar (
[fs.path.generic]
) defines
directory-separator
as one or more slashes and
preferred-separator
s
.
—
end note
]
Remove each
dot
filename and any immediately following
directory-separator
.
As long as any appear, remove a non-
dot-dot
filename immediately followed by a
directory-separator
and a
dot-dot
filename, along with any immediately following
directory-separator
.
If there is a
root-directory
, remove all
dot-dot
filenames and any
directory-separator
s
immediately following them
.
[
Note
:
These
dot-dot
filenames attempt to refer to nonexistent parent directories
.
—
end note
]
If the last filename is
dot-dot
, remove any trailing
directory-separator
.
If the path is empty, add a
dot
.