-# Get the current hostname (first part before a dot).
-host=${$(hostname)//.*/}
-
-# Load environmental related settings used by all shells.
-if [[ -f ~/.shell/env ]]; then
- . ~/.shell/env
-# Fallback functions as ~/.shell/env couldn't be loaded.
-else
- function source_debug() {
- echo $@
- }
- function source_config() {
- echo "Couldn't load source_config(), can't source files." >&2
- }
-fi
-
-source_debug "sourcing ~/.zsh/env"
-
-# Load global env file for current hostname (first part before a dot) or
-# global env.local.
-source_config ~/.shell "" env $host
-
-# Load rc file for current OS.
-source_config ~/.zsh os env $(uname) nolocal
-# Load env file for current hostname (first part before a dot) or env.local.
-source_config ~/.zsh host env $host
-
-source_debug "finished sourcing ~/.zsh/env"
+
+. ~/.shell/functions
+
+source_config ~/.shell/env
+
+
+# Make sure elements in PATH are unique.
+typeset -U path PATH
+
+# Use $TMPDIR/zsh as directory for temporary Zsh files to prevent symlink
+# attacks - only helps if $TMPDIR points to a safe directory (which should be
+# true with the settings in shell/env).
+TMPPREFIX="$TMPDIR/zsh"
+
+
+source_config ~/.zsh/env.local