Jacob Keller <jacob.keller@xxxxxxxxx> writes: > On Fri, Sep 25, 2020 at 3:00 PM Ákos Uzonyi <uzonyi.akos@xxxxxxxxx> wrote: >> >> In both _git_checkout and _git_switch a new "prevword" variable were >> introduced, however the "prev" variable already contains the last word. >> >> The "prevword" variable is replaced with "prev", and the case is moved >> to the beginning of the function, like it's done in many other places >> (e.g. _git_commit). Also the indentaion of the case is fixed. >> > > Ahhh... didn't realize $prev existed. Yup, makes a lot of sense. Thanks, Ákos. Will queue. > >> Signed-off-by: Ákos Uzonyi <uzonyi.akos@xxxxxxxxx> >> --- >> contrib/completion/git-completion.bash | 66 +++++++++++++------------- >> 1 file changed, 32 insertions(+), 34 deletions(-) >> >> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash >> index 8be4a0316e..3d02bd4de7 100644 >> --- a/contrib/completion/git-completion.bash >> +++ b/contrib/completion/git-completion.bash >> @@ -1508,6 +1508,22 @@ _git_checkout () >> { >> __git_has_doubledash && return >> >> + local dwim_opt="$(__git_checkout_default_dwim_mode)" >> + >> + case "$prev" in >> + -b|-B|--orphan) >> + # Complete local branches (and DWIM branch >> + # remote branch names) for an option argument >> + # specifying a new branch name. This is for >> + # convenience, assuming new branches are >> + # possibly based on pre-existing branch names. >> + __git_complete_refs $dwim_opt --mode="heads" >> + return >> + ;; >> + *) >> + ;; >> + esac >> + >> case "$cur" in >> --conflict=*) >> __gitcomp "diff3 merge" "" "${cur##--conflict=}" >> @@ -1516,23 +1532,6 @@ _git_checkout () >> __gitcomp_builtin checkout >> ;; >> *) >> - local dwim_opt="$(__git_checkout_default_dwim_mode)" >> - local prevword prevword="${words[cword-1]}" >> - >> - case "$prevword" in >> - -b|-B|--orphan) >> - # Complete local branches (and DWIM branch >> - # remote branch names) for an option argument >> - # specifying a new branch name. This is for >> - # convenience, assuming new branches are >> - # possibly based on pre-existing branch names. >> - __git_complete_refs $dwim_opt --mode="heads" >> - return >> - ;; >> - *) >> - ;; >> - esac >> - >> # At this point, we've already handled special completion for >> # the arguments to -b/-B, and --orphan. There are 3 main >> # things left we can possibly complete: >> @@ -2392,6 +2391,22 @@ _git_status () >> >> _git_switch () >> { >> + local dwim_opt="$(__git_checkout_default_dwim_mode)" >> + >> + case "$prev" in >> + -c|-C|--orphan) >> + # Complete local branches (and DWIM branch >> + # remote branch names) for an option argument >> + # specifying a new branch name. This is for >> + # convenience, assuming new branches are >> + # possibly based on pre-existing branch names. >> + __git_complete_refs $dwim_opt --mode="heads" >> + return >> + ;; >> + *) >> + ;; >> + esac >> + >> case "$cur" in >> --conflict=*) >> __gitcomp "diff3 merge" "" "${cur##--conflict=}" >> @@ -2400,23 +2415,6 @@ _git_switch () >> __gitcomp_builtin switch >> ;; >> *) >> - local dwim_opt="$(__git_checkout_default_dwim_mode)" >> - local prevword prevword="${words[cword-1]}" >> - >> - case "$prevword" in >> - -c|-C|--orphan) >> - # Complete local branches (and DWIM branch >> - # remote branch names) for an option argument >> - # specifying a new branch name. This is for >> - # convenience, assuming new branches are >> - # possibly based on pre-existing branch names. >> - __git_complete_refs $dwim_opt --mode="heads" >> - return >> - ;; >> - *) >> - ;; >> - esac >> - >> # Unlike in git checkout, git switch --orphan does not take >> # a start point. Thus we really have nothing to complete after >> # the branch name. >> -- >> 2.28.0 >>