[PATCH 3 of 7] bash_completion: determine root executable in case of alias

Sean Farley sean.michael.farley at gmail.com
Fri Nov 22 19:48:15 UTC 2013


On Thu, Nov 21, 2013 at 5:56 PM, Sean Farley
<sean.michael.farley at gmail.com> wrote:
> # HG changeset patch
> # User Sean Farley <sean.michael.farley at gmail.com>
> # Date 1384971595 18000
> #      Wed Nov 20 13:19:55 2013 -0500
> # Node ID d43f240774e9ca3acb00d49584c192f0d47b4de5
> # Parent  cac5a729db513d9fe374157d4ce225a6cd22149b
> bash_completion: determine root executable in case of alias
>
> This solves an issue for users that have "alias hg='hg --some_opts'" where they
> would see wrong entries in the completion output (such as color codes).
>
> diff --git a/contrib/bash_completion b/contrib/bash_completion
> --- a/contrib/bash_completion
> +++ b/contrib/bash_completion
> @@ -128,16 +128,23 @@
>      echo $(($count - 1))
>  }
>
>  _hg()
>  {
> -    local cur prev cmd cmd_index opts i
> +    local cur prev cmd cmd_index opts i aliashg
>      # global options that receive an argument
>      local global_args='--cwd|-R|--repository'
>      local hg="$1"
>      local canonical=0
>
> +    aliashg=$(alias $hg 2>/dev/null)
> +    if [[ -n "$aliashg" ]]; then
> +      aliashg=${aliashg#"alias $hg='"}
> +      aliashg=${aliashg%"'"}
> +      hg=$aliashg
> +    fi
> +
>      COMPREPLY=()
>      cur="$2"
>      prev="$3"
>
>      # searching for the command
> diff --git a/setup.py b/setup.py
> --- a/setup.py
> +++ b/setup.py
> @@ -573,5 +573,6 @@
>                     bdist_mpkg=dict(zipdist=True,
>                                     license='COPYING',
>                                     readme='contrib/macosx/Readme.html',
>                                     welcome='contrib/macosx/Welcome.html')),
>        **extra)
> +asdf

Because of this typo and the fact that I have another patch to go in
this series, please ignore this for now. I'll resend another version.



More information about the Mercurial-devel mailing list