changeset 20125:191ab08e7099

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).
author Sean Farley <sean.michael.farley@gmail.com>
date Wed, 20 Nov 2013 13:19:55 -0500
parents dd3af304b3c8
children 25cb1d96c307
files contrib/bash_completion
diffstat 1 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/contrib/bash_completion	Wed Nov 20 15:16:54 2013 -0500
+++ b/contrib/bash_completion	Wed Nov 20 13:19:55 2013 -0500
@@ -130,12 +130,19 @@
 
 _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"