Hi, On Thu, Aug 26, 2010 at 10:45:56PM -0400, Mark Lodato wrote: > Modify git-completion.bash so that it also works with zsh when using > bashcompinit. In particular: > > declare -F > Zsh doesn't have the same 'declare -F' as bash, but 'declare -f' > is the same, and it works just as well for our purposes. > @@ -2372,17 +2383,22 @@ _git () > fi > > local completion_func="_git_${command//-/_}" > - declare -F $completion_func >/dev/null && $completion_func && return > + declare -f $completion_func >/dev/null && $completion_func && return > > local expansion=$(__git_aliased_command "$command") > if [ -n "$expansion" ]; then > completion_func="_git_${expansion//-/_}" > - declare -F $completion_func >/dev/null && $completion_func > + declare -f $completion_func >/dev/null && $completion_func > fi > } I chose -F back then because it does not print the definition of the completion function, so there is less stuff to throw away immediately. However, the run-time difference seems to be barely measureable (i.e. 'time declare -f _git_config >/dev/null' vs. 'declare -F _git_config >/dev/null' sometimes shows 0.001s difference), so I'm fine with this change. > @@ -2417,3 +2433,29 @@ if [ Cygwin = "$(uname -o 2>/dev/null)" ]; then > complete -o bashdefault -o default -o nospace -F _git git.exe 2>/dev/null \ > || complete -o default -o nospace -F _git git.exe > fi > + > +if [[ -z $ZSH_VERSION ]]; then -z? I think you wanted to use -n here, like at the other places. Nit: why "if [[ ... ]]"? FWIW "if [ ... ]" would be enough. > + shopt () { > + local option > + if [ $# -ne 2 ]; then > + echo "USAGE: $0 (-q|-s|-u) <option>" >&2 > + return 1 > + fi > + case "$2" in > + nullglob) > + option="$2" > + ;; > + *) > + echo "$0: invalid option: $2" >&2 > + return 1 > + esac > + case "$1" in > + -q) setopt | grep -q "$option" ;; > + -u) unsetopt "$option" ;; > + -s) setopt "$option" ;; > + *) > + echo "$0: invalid flag: $1" >&2 > + return 1 > + esac > + } > +fi > -- > 1.7.2.2 > -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html