Ted Pavlic <ted@xxxxxxxxxxxxx> wrote: > Another try at fixing bash completions in "set -u" environments. I agree with Junio; setting -u in your interactive shell is as bad as export CDPATH. Its crazy. > Additionally added some comments and omitted things like Vim modelines. These are orthogonal to the -u corrections. They should be in a different patch. The comments are wecome. The '#!bash' looks like a good idea. But a vim specific modeline, I don't like, for the reasons Junio has already stated. > +# __gitdir accepts 0 or 1 arguments (i.e., location) > +# returns location of .git repo > __gitdir () > { > - if [ -z "$1" ]; then > + if [ $# -eq 0 ] || [ -z "$1" ]; then This is one of those places where [ -z "${1-}" ] is likely easier to read then the || usage you have introduced. We don't care if we got no args, or we got one that is the empty string, either way the $1 cannot be a gitdir and we need to guess it. > @@ -111,7 +116,7 @@ __git_ps1 () > fi > fi > > - if [ -n "$1" ]; then > + if [ $# -gt 0 ] && [ -n "$1" ]; then > printf "$1" "${b##refs/heads/}$r" Eh, I'd rather see [ -n "${1-}" ] over the && test. > -complete -o default -o nospace -F _git git > -complete -o default -o nospace -F _gitk gitk > +complete -o bashdefault -o default -o nospace -F _git git 2>/dev/null \ > + || complete -o default -o nospace -F _git git > +complete -o bashdefault -o default -o nospace -F _gitk gitk 2>/dev/null \ > + || complete -o default -o nospace -F _gitk gitk Why are we switching to bashdefault? Is this an unrelated change from the -u stuff and should go into its own commit, with its own justification? -- Shawn. -- 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