# DP: Install libstdc++ man pages with suffix .3cxx instead of .3

--- a/src/libstdc++-v3/doc/doxygen/user.cfg.in
+++ b/src/libstdc++-v3/doc/doxygen/user.cfg.in
@@ -2146,7 +2146,7 @@ MAN_OUTPUT             = man
 # The default value is: .3.
 # This tag requires that the tag GENERATE_MAN is set to YES.
 
-MAN_EXTENSION          = .3
+MAN_EXTENSION          = .3cxx
 
 # The MAN_SUBDIR tag determines the name of the directory created within
 # MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
--- a/src/libstdc++-v3/scripts/run_doxygen
+++ b/src/libstdc++-v3/scripts/run_doxygen
@@ -262,6 +262,9 @@ fi
 if $do_man; then
 echo ::
 echo :: Fixing up the man pages...
+mkdir -p $outdir/man/man3
+mv $outdir/man/man3cxx/* $outdir/man/man3/
+rmdir $outdir/man/man3cxx
 cd $outdir/man/man3
 
 # File names with embedded spaces (EVIL!) need to be....?  renamed or removed?
@@ -291,7 +294,7 @@ cxxflags="-Og -g -std=gnu++23"
 $gxx $cppflags $cxxflags ${srcdir}/doc/doxygen/stdheader.cc -o ./stdheader || exit 1
 # Doxygen outputs something like "\fC#include <unique_lock\&.h>\fP" and
 # we want that internal header to be replaced with something like <mutex>.
-problematic=`grep -E -l '#include <.*h>' [a-z]*.3`
+problematic=`grep -E -l '#include <.*h>' [a-z]*.3 [a-z]*.3cxx`
 for f in $problematic; do
     # this is also slow, but safe and easy to debug
     oldh=`sed -n '/fC#include </s/.*<\(.*\)>.*/\1/p' $f`
@@ -303,7 +306,7 @@ rm stdheader
 # Some of the pages for generated modules have text that confuses certain
 # implementations of man(1), e.g. on GNU/Linux.  We need to have another
 # top-level *roff tag to /stop/ the .SH NAME entry.
-problematic=`grep -E --files-without-match '^\.SH SYNOPSIS' [A-Z]*.3`
+problematic=`grep -E --files-without-match '^\.SH SYNOPSIS' [A-Z]*.3cxx`
 #problematic='Containers.3 Sequences.3 Assoc_containers.3 Iterator_types.3'
 
 for f in $problematic; do
@@ -317,7 +320,7 @@ a\
 done
 
 # Also, break this (generated) line up.  It's ugly as sin.
-problematic=`grep -l '[^^]Definition at line' *.3`
+problematic=`grep -l '[^^]Definition at line' *.3 *.3cxx`
 for f in $problematic; do
     sed 's/Definition at line/\
 .PP\
@@ -435,8 +438,8 @@ for f in ios streambuf istream ostream i
 	 istringstream ostringstream stringstream filebuf ifstream \
 	 ofstream fstream string
 do
-    echo ".so man3/std::basic_${f}.3" > std::${f}.3
-    echo ".so man3/std::basic_${f}.3" > std::w${f}.3
+    echo ".so man3/std::basic_${f}.3cxx" > std::${f}.3cxx
+    echo ".so man3/std::basic_${f}.3cxx" > std::w${f}.3cxx
 done
 
 echo ::
