30 Input/output library [input.output]

30.10 File systems [filesystems]

30.10.15 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:

  1. If the path is empty, stop.

  2. Replace each slash character in the root-name with a preferred-separator.

  3. 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-separators. end note]

  4. Remove each dot filename and any immediately following directory-separator.

  5. 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.

  6. If there is a root-directory, remove all dot-dot filenames and any directory-separators immediately following them. [Note: These dot-dot filenames attempt to refer to nonexistent parent directories. end note]

  7. If the last filename is dot-dot, remove any trailing directory-separator.

  8. If the path is empty, add a dot.