zsh-workers
 help / color / mirror / code / Atom feed
4344d0b6ef9a5feed1f7e838cdc1d74c837eaf7d blob 2574 bytes (raw)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
 
## vim:ft=zsh:foldmethod=marker
##
## vcs_info - provide version control information
##
## Written by Frank Terbeck <ft@bewatermyfriend.org>
##
## This file and all corresponding files in Functions/VCS_Info/ are
## distributed under the same BSD-ish license as zsh itself.
##

setopt localoptions noksharrays extendedglob NO_shwordsplit
local file func sys
local -a static_functions

static_functions=(
    VCS_INFO_adjust
    VCS_INFO_bydir_detect
    VCS_INFO_check_com
    VCS_INFO_formats
    VCS_INFO_get_cmd
    VCS_INFO_maxexports
    VCS_INFO_nvcsformats
    VCS_INFO_realpath
    VCS_INFO_reposub
    VCS_INFO_set

    vcs_info_lastmsg
    vcs_info_printsys
    vcs_info_setsys
)

for func in ${static_functions} ; do
    autoload -Uz ${func}
done

VCS_INFO_set --nvcs '-preinit-'
vcs_info_setsys

# and now, finally create the real vcs_info function
vcs_info () {
    emulate -L zsh
    setopt extendedglob

    [[ -r . ]] || return 0

    local pat
    local -i found
    local -a enabled disabled dps
    local -x usercontext vcs rrn
    local -ix maxexports
    local -ax msgs
    local -Ax vcs_comm

    vcs='-init-'; rrn='-all-'
    usercontext=${1:-default}

    zstyle -a ":vcs_info:${vcs}:${usercontext}:${rrn}" "enable" enabled
    (( ${#enabled} == 0 )) && enabled=( all )

    if [[ -n ${(M)enabled:#(#i)none} ]] ; then
        [[ -n ${vcs_info_msg_0_} ]] && VCS_INFO_set --clear
        return 0
    fi

    if [[ -n ${(M)enabled:#(#i)all} ]] ; then
        enabled=( ${VCS_INFO_backends} )
        zstyle -a ":vcs_info:${vcs}:${usercontext}:${rrn}" "disable" disabled
    fi

    zstyle -a ":vcs_info:${vcs}:${usercontext}:${rrn}" "disable-patterns" dps

    for pat in ${dps} ; do
        if [[ ${PWD} == ${~pat} ]] ; then
            [[ -n ${vcs_info_msg_0_} ]] && VCS_INFO_set --clear
            return 0
        fi
    done

    VCS_INFO_maxexports

    (( found = 0 ))
    for vcs in ${enabled} ; do
        [[ -n ${(M)disabled:#${vcs}} ]] && continue
        if (( ${+functions[VCS_INFO_detect_${vcs}]} == 0 )) ; then
            printf 'vcs_info: configured unknown backend: '\''%s'\''\n' ${vcs}
            printf 'vcs_info: use '\''vcs_info_printsys'\'' to find supported systems.\n'
            continue
        fi
        vcs_comm=()
        VCS_INFO_get_cmd
        VCS_INFO_detect_${vcs} && (( found = 1 )) && break
    done

    (( found == 0 )) && {
        VCS_INFO_set --nvcs
        return 0
    }

    VCS_INFO_get_data_${vcs} || {
        VCS_INFO_set --nvcs
        return 1
    }

    VCS_INFO_set
    return 0
}

vcs_info "$@"
debug log:

solving 4344d0b ...
found 4344d0b in https://git.vuxu.org/mirror/zsh/

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).