Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit df248e60 authored by Patrik Fimml's avatar Patrik Fimml
Browse files

Don't override zsh users' compinit options.

I call "compinit -i" in my .zshrc, to allow loading autocompletion from
"unsafe" locations. envsetup.sh breaks that. Change behavior to only
call compinit if bash-style completion is not already enabled.

This is a minimal fix; an alternative would be to rely on the user
to call 'bashcompinit' in their .zshrc instead, and just skip all
autocomplete functionality if they don't.

Test: manual - source ./envsetup.sh in {bash, zsh, zsh -f} and test
	completion for lunch
Change-Id: Ibb10eb68a96d69c19b9db9b21e0546fe8ae299b2
parent 0e91bac0
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -1574,9 +1574,12 @@ function atest()
}

# Zsh needs bashcompinit called to support bash-style completion.
function add_zsh_completion() {
function enable_zsh_completion() {
    # Don't override user's options if bash-style completion is already enabled.
    if ! declare -f complete >/dev/null; then
        autoload -U compinit && compinit
        autoload -U bashcompinit && bashcompinit
    fi
}

function validate_current_shell() {
@@ -1587,7 +1590,7 @@ function validate_current_shell() {
            ;;
        *zsh*)
            function check_type() { type "$1"; }
            add_zsh_completion ;;
            enable_zsh_completion ;;
        *)
            echo -e "WARNING: Only bash and zsh are supported.\nUse of other shell would lead to erroneous results."
            ;;