From 27e53dd580dee05368f26ff76ada5b3a244d6c0c Mon Sep 17 00:00:00 2001
From: Zac Medico <zmedico@gentoo.org>
Date: Sun, 5 Oct 2008 03:39:27 +0000
Subject: [PATCH] Bug #239529 - Fix 'doins' to work with symlinks to
 directories, like it did before the changes from bug #210575.

svn path=/main/trunk/; revision=11623
---
 bin/doins | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/bin/doins b/bin/doins
index 57a21c4bb..12a48eb69 100755
--- a/bin/doins
+++ b/bin/doins
@@ -64,9 +64,17 @@ for x in "$@" ; do
 		else
 			pushd "${x%/*}" >/dev/null
 		fi
-		find "${x##*/}" -type d -exec dodir "${INSDESTTREE}/{}" \;
-		find "${x##*/}" \( -type f -or -type l \) -print0 | _xdoins
-		popd >/dev/null
+		x=${x##*/}
+		# Follow any symlinks recursively until we've got
+		# a normal directory for 'find' to traverse.
+		while [ -L "$x" ] ; do
+			pushd "$(readlink "$x")"
+			x=${PWD##*/}
+			pushd ${PWD%/*}
+		done
+		find "$x" -type d -exec dodir "${INSDESTTREE}/{}" \;
+		find "$x" \( -type f -or -type l \) -print0 | _xdoins
+		while popd >/dev/null ; do true ; done
 		((++success))
 	else
 		_doins "${x}" && ((++success))
-- 
2.26.2