gcc/libstdc++-v3
Jonathan Wakely dd35da2cbe PR libstdc++/87116 fix path::lexically_normal() handling of dot-dot
Previously the logic that turned "a/b/c/../.." into "a/" failed to
preserve an empty path at the end of the iteration sequence, as required
by the trailing slash. That meant the result didn't meet the class
invariants, and that "a/b/c/d/../../.." would remove four components
instead of the three that "../../.." should remove.

	PR libstdc++/87116
	* src/filesystem/std-path.cc (path::lexically_normal): When handling
	a dot-dot filename, preserve an empty final component in the iteration
	sequence.
	[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use preferred-separator for
	root-directory.
	* testsuite/27_io/filesystem/path/generation/normal.cc: Add new tests
	for more than two adjacent dot-dot filenames.
	[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Replace slashes with
	preferred-separator in expected normalized strings.

From-SVN: r263922
2018-08-28 16:33:53 +01:00
..
config PR libstdc++/85343 overload __throw_ios_failure to take errno 2018-08-14 13:09:57 +01:00
doc PR libstdc++/77854 document size_type for containers 2018-08-22 13:11:17 +01:00
include Forward declare debug containers so std::pmr aliases work 2018-08-24 18:43:18 +01:00
libsupc++ new(nothrow) is malloc-like 2018-08-24 18:24:42 +00:00
po
python PR libstdc++/86963 Implement LWG 2729 constraints on tuple assignment 2018-08-17 18:52:49 +01:00
scripts Fix comments in testsuite script 2018-08-23 16:10:35 +01:00
src PR libstdc++/87116 fix path::lexically_normal() handling of dot-dot 2018-08-28 16:33:53 +01:00
testsuite PR libstdc++/87116 fix path::lexically_normal() handling of dot-dot 2018-08-28 16:33:53 +01:00
acinclude.m4
aclocal.m4
ChangeLog PR libstdc++/87116 fix path::lexically_normal() handling of dot-dot 2018-08-28 16:33:53 +01:00
ChangeLog-1998
ChangeLog-1999
ChangeLog-2000
ChangeLog-2001
ChangeLog-2002
ChangeLog-2003
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009
ChangeLog-2010
ChangeLog-2011
ChangeLog-2012
ChangeLog-2013
ChangeLog-2014
ChangeLog-2015
ChangeLog-2016
ChangeLog-2017
config.h.in
configure
configure.ac
configure.host Don't force visibility to hidden for Darwin > 8. 2018-08-25 09:02:28 +00:00
crossconfig.m4
fragment.am
linkage.m4
Makefile.am
Makefile.in
README

file: libstdc++-v3/README

New users may wish to point their web browsers to the file
index.html in the 'doc/html' subdirectory.  It contains brief
building instructions and notes on how to configure the library in
interesting ways.