-case "`uname`" in *BSD*)
- mkdir -m 700 "/tmp/home-$LOGNAME" > /dev/null 2>&1
- unlink "$HOME/tmp" > /dev/null 2>&1
- ln -sFh "/tmp/home-$LOGNAME" "$HOME/tmp";;
-esac
+#XXX: ensure we override /etc/profile, gets loaded after .zshenv
+source ~/.zshenv
+
+t="${TMPDIR:-/tmp}/home-$LOGNAME"
+h="$HOME/tmp"
+if [[ ! -e "$t" ]] {
+ mkdir -m 700 "$t" > /dev/null 2>&1
+ #TODO: check if dir exists after mkdir
+}
+#allow opaque entries to override
+if [[ ! -e "$h" ]] {
+ ln -sf "$t" "$h" > /dev/null 2>&1
+}
+unset t
+unset h