+ local name token pre post
+ local -i init funcall
+
+ if (( ARGC == 0 )); then
+ GRML_theme_add_token_usage
+ return 0
+ fi
+
+ init=0
+ funcall=0
+ pre=''
+ post=''
+ name=$1
+ shift
+ if [[ $1 == '-f' ]]; then
+ funcall=1
+ shift
+ elif [[ $1 == '-i' ]]; then
+ init=1
+ shift
+ fi
+
+ if (( ARGC == 0 )); then
+ printf '
+grml_theme_add_token: No token-string/function-name provided!\n\n'
+ GRML_theme_add_token_usage
+ return 1
+ fi
+ token=$1
+ shift
+ if (( ARGC != 0 && ARGC != 2 )); then
+ printf '
+grml_theme_add_token: <pre> and <post> need to by specified _both_!\n\n'
+ GRML_theme_add_token_usage
+ return 1
+ fi
+ if (( ARGC )); then
+ pre=$1
+ post=$2
+ shift 2
+ fi
+
+ if (( ${+grml_prompt_token_default[$name]} )); then
+ printf '
+grml_theme_add_token: Token `%s'\'' exists! Giving up!\n\n' $name
+ GRML_theme_add_token_usage
+ return 2
+ fi
+ if (( init )); then
+ $token $name
+ token=$REPLY
+ fi
+ grml_prompt_pre_default[$name]=$pre
+ grml_prompt_post_default[$name]=$post
+ if (( funcall )); then
+ grml_prompt_token_function[$name]=$token
+ grml_prompt_token_default[$name]=23
+ else
+ grml_prompt_token_default[$name]=$token
+ fi
+}
+
+function grml_typeset_and_wrap () {
+ emulate -L zsh
+ local target="$1"
+ local new="$2"
+ local left="$3"
+ local right="$4"
+
+ if (( ${+parameters[$new]} )); then
+ typeset -g "${target}=${(P)target}${left}${(P)new}${right}"
+ fi
+}
+
+function grml_prompt_addto () {
+ emulate -L zsh
+ local target="$1"
+ local lr it apre apost new v