+# autoload wrapper - use this one instead of autoload directly
+# We need to define this function as early as this, because autoloading
+# 'is-at-least()' needs it.
+function zrcautoload() {
+ setopt local_options extended_glob
+ local fdir ffile
+ local -i ffound
+
+ ffile=${1}
+ (( found = 0 ))
+ for fdir in ${fpath} ; do
+ [[ -e ${fdir}/${ffile} ]] && (( ffound = 1 ))
+ done
+
+ (( ffound == 0 )) && return 1
+ if [[ $ZSH_VERSION == 3.1.<6-> || $ZSH_VERSION == <4->* ]] ; then
+ autoload -U ${ffile} || return 1
+ else
+ autoload ${ffile} || return 1
+ fi
+ return 0
+}
+
+# Load is-at-least() for more precise version checks
+# Note that this test will *always* fail, if the is-at-least
+# function could not be marked for autoloading.
+zrcautoload is-at-least || is-at-least() { return 1 }
+
+# }}}
+
+# setting some default values {{{
+
+NOCOR=${NOCOR:-0}
+NOMENU=${NOMENU:-0}
+NOPRECMD=${NOPRECMD:-0}
+BATTERY=${BATTERY:-0}
+GRMLSMALL_SPECIFIC=${GRMLSMALL_SPECIFIC:-1}
+GRML_ALWAYS_LOAD_ALL=${GRML_ALWAYS_LOAD_ALL:-0}
+GRML_WARN_SKEL=${GRML_WARN_SKEL:-1}
+
+if (( GRML_WARN_SKEL != 0 )) ; then
+
+function grml_warn_skel_main() {
+ printf '
+Dear user,
+
+You updated grml'\''s zshrc which brings a major change.
+The configuration is kept only in one file, being the global zshrc.
+In the past, the configuration was split in two files, with the
+second file being the .zshrc file from /etc/skel.
+
+If you have a .zshrc file in your home directory that originally
+came from the skel directory, please remove it. This is also the case
+if you followed earlier instructions from the grml-zsh-refcard or
+from <http://grml.org/console> on non-grml systems.
+
+Please see the current grml-zsh-refcard for updated installation
+information. In short, you don'\''t want a .zshrc.global file. Install
+the global zshrc to ~/.zshrc and be done.
+
+If you need changes to the configuration, use ~/.zshrc.pre and
+~/.zshrc.local.
+
+'
+}
+
+function grml_warn_skel_remove() {
+ printf 'To remove this warning execute '\''grml_do_not_warn_skel'\''.\n\n'
+}
+
+function grml_do_not_warn_skel() {
+ printf '# Do not warn about old skel dot-files anymore\n' >>! ~/.zshrc.pre
+ printf 'GRML_WARN_SKEL=0\n' >>! ~/.zshrc.pre
+}
+
+# let's try to guess how the user uses us.
+if is-at-least 4.3.7 ; then
+ # funcsourcetrace requires at least version 4.3.7 of zsh.
+ GRML_SRC_FILE="${${funcsourcetrace[1]}%:*}"
+
+ grml_warn_skel_main
+ case ${GRML_SRC_FILE} in
+ (${HOME}/.zshrc.global)
+ grml_warn_skel_remove
+ printf '\nIt looks like you copied the grml zshrc to '\''~/.zshrc.global'\''.\n'
+ printf 'Nowadays you just copy the global zshrc to '\''~/.zshrc'\'' to use\n'
+ printf 'it on a non-grml-system.\n'
+ ;;
+ (${HOME}/.zshrc)
+ printf '\nIt looks like you copied the grml zshrc to '\''~/.zshrc'\''.\n'
+ printf 'We'\''ll disable this warning automatically for later sessions.\n'
+ grml_do_not_warn_skel
+ ;;
+ (*)
+ grml_do_not_warn_skel
+ ;;
+ esac
+else
+ grml_warn_skel_main
+ grml_warn_skel_remove
+fi
+
+unfunction grml_warn_skel_remove grml_warn_skel_main
+
+fi # GRML_WARN_SKEL
+