gcc/libstdc++-v3
Jonathan Wakely 9c5365902a PR libstdc++/89117 fix path::replace_extension("") case
Previously the operator+=(extension) call would have re-parsed the path
and recreated the components with the right extension. Since optimising
it to not re-parse the whole string, we need to actually remove the
extension from the final filename before appending anything to it, and
append the dot to that final component too.

	PR libstdc++/89117
	* src/c++17/fs_path.cc (path::replace_extension): Erase extension from
	final component as well as from _M_pathname. Append the dot using
	operator+= instead of only to _M_pathname.
	(path::_M_find_extension): Reformat slightly.
	* testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
	Add more test cases.

From-SVN: r268406
2019-01-30 23:18:22 +00:00
..
config Add missing exports for symbols used by directory iterators 2019-01-29 00:47:43 +00:00
doc * doc/xml/manual/status_cxx2020.xml: Update P0600 entry. 2019-01-30 16:23:44 +00:00
include Avoid ambiguity between C++2a std::erase_if and LFTS version 2019-01-29 00:47:38 +00:00
libsupc++ Fix after P0600. 2019-01-21 11:47:30 +00:00
po
python PR libstdc++/87855 fix optional for types with non-trivial copy/move 2019-01-08 23:00:46 +00:00
scripts
src PR libstdc++/89117 fix path::replace_extension("") case 2019-01-30 23:18:22 +00:00
testsuite PR libstdc++/89117 fix path::replace_extension("") case 2019-01-30 23:18:22 +00:00
acinclude.m4 Fix build for systems without POSIX truncate 2019-01-07 12:38:51 +00:00
aclocal.m4
ChangeLog PR libstdc++/89117 fix path::replace_extension("") case 2019-01-30 23:18:22 +00: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
ChangeLog-2018
config.h.in Fix build for systems without POSIX truncate 2019-01-07 12:38:51 +00:00
configure Fix build for systems without POSIX truncate 2019-01-07 12:38:51 +00:00
configure.ac
configure.host
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.