K 10 svn:author V 6 kevans K 8 svn:date V 27 2022-04-24T13:31:09.998920Z K 7 svn:log V 990 cp: fix -R recursion detection The correct logic is a lot simpler than the previous iteration. We record the base fts_name to avoid having to worry about whether we needed the root symlink name or not (as applicable), then we can simply shift all of that logic to after path translation to make it less fragile. If we're copying to DNE, then we'll have swapped out the NULL root_stat pointer and then attempted to recurse on it. The previously nonexistent directory shouldn't exist at all in the new structure, so just back out from that tree entirely and move on. The tests have been amended to indicate our expectations better with subdirectory recursion. If we copy A to A/B, then we expect to copy everything from A/B/* into A/B/A/B, with exception to the A that we create in A/B. Reviewed by: bapt Sponsored by: Klara, Inc. (cherry picked from commit f00f8b4fbd268a212687984e44daa3e0d0a16b87) Git Hash: a605ca25ef681452e25622a44917cbb5033eaae4 Git Author: kevans@FreeBSD.org END