From 66c5853406bbcccecf35372795078c0641a5f385 Mon Sep 17 00:00:00 2001 From: Furkan Onder Date: Mon, 12 Jul 2021 15:48:01 +0300 Subject: bpo-26329: update os.path.normpath documentation (GH-20138) * bpo-26329: update os.path.normpath documentation * Update os.path.rst * Update posixpath.py * update Pathname Resolution note --- Doc/library/os.path.rst | 8 ++++++++ Lib/posixpath.py | 1 + 2 files changed, 9 insertions(+) diff --git a/Doc/library/os.path.rst b/Doc/library/os.path.rst index d06d9ce..e2f4342 100644 --- a/Doc/library/os.path.rst +++ b/Doc/library/os.path.rst @@ -340,6 +340,14 @@ the :mod:`glob` module.) that contains symbolic links. On Windows, it converts forward slashes to backward slashes. To normalize case, use :func:`normcase`. + .. note:: + On POSIX systems, in accordance with `IEEE Std 1003.1 2013 Edition; 4.13 + Pathname Resolution `_, + if a pathname begins with exactly two slashes, the first component + following the leading characters may be interpreted in an implementation-defined + manner, although more than two leading characters shall be treated as a + single character. + .. versionchanged:: 3.6 Accepts a :term:`path-like object`. diff --git a/Lib/posixpath.py b/Lib/posixpath.py index 259baa6..1953746 100644 --- a/Lib/posixpath.py +++ b/Lib/posixpath.py @@ -352,6 +352,7 @@ def normpath(path): initial_slashes = path.startswith(sep) # POSIX allows one or two initial slashes, but treats three or more # as single slash. + # (see http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_13) if (initial_slashes and path.startswith(sep*2) and not path.startswith(sep*3)): initial_slashes = 2 -- cgit v0.12