X-Git-Url: https://git.grml.org/?a=blobdiff_plain;f=etc%2Fzsh%2Fzshrc;h=5a74feedf7413ac4c4c6cea54237370b74c645ce;hb=4db20203215091835dbf4aab193a620800f1f25c;hp=50b1730acffad6b8966548e597122da0d3ac18e1;hpb=412012bb01aeff370fd3fd217eb83beaad55eb9a;p=grml-etc-core.git diff --git a/etc/zsh/zshrc b/etc/zsh/zshrc index 50b1730..5a74fee 100644 --- a/etc/zsh/zshrc +++ b/etc/zsh/zshrc @@ -108,11 +108,75 @@ if [[ $ZSH_PROFILE_RC -gt 0 ]] ; then zmodload zsh/zprof fi +typeset -A GRML_STATUS_FEATURES + +function grml_status_feature () { + emulate -L zsh + local f=$1 + local -i success=$2 + if (( success == 0 )); then + GRML_STATUS_FEATURES[$f]=success + else + GRML_STATUS_FEATURES[$f]=failure + fi + return 0 +} + +function grml_status_features () { + emulate -L zsh + local mode=${1:-+-} + local this + if [[ $mode == -h ]] || [[ $mode == --help ]]; then + cat <* ]] && return 0 + return 1 +} + function is4 () { [[ $ZSH_VERSION == <4->* ]] && return 0 return 1 @@ -657,7 +721,8 @@ typeset -U path PATH cdpath CDPATH fpath FPATH manpath MANPATH # Load a few modules is4 && \ for mod in parameter complist deltochar mathfunc ; do - zmodload -i zsh/${mod} 2>/dev/null || print "Notice: no ${mod} available :(" + zmodload -i zsh/${mod} 2>/dev/null + grml_status_feature mod:$mod $? done && builtin unset -v mod # autoload zsh modules when they are referenced @@ -672,10 +737,11 @@ COMPDUMPFILE=${COMPDUMPFILE:-${ZDOTDIR:-${HOME}}/.zcompdump} if zrcautoload compinit ; then typeset -a tmp zstyle -a ':grml:completion:compinit' arguments tmp - compinit -d ${COMPDUMPFILE} "${tmp[@]}" || print 'Notice: no compinit available :(' + compinit -d ${COMPDUMPFILE} "${tmp[@]}" + grml_status_feature compinit $? unset tmp else - print 'Notice: no compinit available :(' + grml_status_feature compinit 1 function compdef { } fi @@ -1584,7 +1650,13 @@ zrcautoload zed # else # print 'Notice: no url-quote-magic available :(' # fi -alias url-quote='autoload -U url-quote-magic ; zle -N self-insert url-quote-magic' +if is51 ; then + # url-quote doesn't work without bracketed-paste-magic since Zsh 5.1 + alias url-quote='autoload -U bracketed-paste-magic url-quote-magic; + zle -N bracketed-paste bracketed-paste-magic; zle -N self-insert url-quote-magic' +else + alias url-quote='autoload -U url-quote-magic ; zle -N self-insert url-quote-magic' +fi #m# k ESC-h Call \kbd{run-help} for the 1st word on the command line alias run-help >&/dev/null && unalias run-help @@ -2433,6 +2505,7 @@ function grml_prompt_fallback () { } if zrcautoload promptinit && promptinit 2>/dev/null ; then + grml_status_feature promptinit 0 # Since we define the required functions in here and not in files in # $fpath, we need to stick the theme's name into `$prompt_themes' # ourselves, since promptinit does not pick them up otherwise. @@ -2440,7 +2513,7 @@ if zrcautoload promptinit && promptinit 2>/dev/null ; then # Also, keep the array sorted... prompt_themes=( "${(@on)prompt_themes}" ) else - print 'Notice: no promptinit available :(' + grml_status_feature promptinit 1 grml_prompt_fallback function precmd () { (( ${+functions[vcs_info]} )) && vcs_info; } fi @@ -3507,6 +3580,11 @@ function simple-extract () { USES_STDIN=true USES_STDOUT=false ;; + *tar.lrz) + DECOMP_CMD="lrzuntar" + USES_STDIN=false + USES_STDOUT=false + ;; *tar) DECOMP_CMD="tar -xvf -" USES_STDIN=true @@ -3557,6 +3635,11 @@ function simple-extract () { USES_STDIN=true USES_STDOUT=true ;; + *lrz) + DECOMP_CMD="lrunzip -" + USES_STDIN=true + USES_STDOUT=true + ;; *) print "ERROR: '$ARCHIVE' has unrecognized archive type." >&2 RC=$((RC+1)) @@ -3843,6 +3926,8 @@ fi zrclocal +unfunction grml_status_feature + ## genrefcard.pl settings ### doc strings for external functions from files