+# Preserve environment variables.
+ignore_environment_user=0
+for candidate in "$HOME" "$PROFILE_HOME"; do
+ [ -n "$candidate" ] || continue
+ BECOME="$candidate/.become/environment"
+ [ -d "$BECOME" ] || continue
+
+ # Script to run when becoming any user.
+ [ -z "$allusersenvironment" ] && allusersenvironment="$BECOME/all"
+ [ -f "$allusersenvironment" ] || allusersenvironment=
+
+ # Set $HOME/all sticky to ignore $PROFILE_HOME/$user.
+ if [ "$candidate" = "$HOME" ]; then
+ [ -k "$BECOME/all" ] && ignore_environment_user=1
+ else
+ [ $ignore_environment_user = 1 ] && continue
+ fi
+
+ # Environment variables to preserve when becomeing this user.
+ [ -z "$userenvironment" ] && userenvironment="$BECOME/$user"
+ [ -f "$userenvironment" ] || userenvironment=
+done
+