equal
deleted
inserted
replaced
97 if [ -z "$cmd" ] || [ $COMP_CWORD -eq $i ]; then |
97 if [ -z "$cmd" ] || [ $COMP_CWORD -eq $i ]; then |
98 _hg_commands |
98 _hg_commands |
99 return |
99 return |
100 fi |
100 fi |
101 |
101 |
102 # canonicalize command name |
102 # try to generate completion candidates for whatever command the user typed |
103 cmd=$("$hg" -q help "$cmd" 2>/dev/null | sed -e 's/^hg //; s/ .*//; 1q') |
103 local help |
|
104 local canonical=0 |
|
105 if _hg_command_specific; then |
|
106 return |
|
107 fi |
104 |
108 |
105 if [ "$cmd" != status ] && [ "$prev" = -r ] || [ "$prev" = --rev ]; then |
109 # canonicalize the command name and try again |
106 _hg_tags |
110 help=$("$hg" help "$cmd" 2>/dev/null) |
|
111 if [ $? -ne 0 ]; then |
|
112 # Probably either the command doesn't exist or it's ambiguous |
107 return |
113 return |
|
114 fi |
|
115 cmd=${help#hg } |
|
116 cmd=${cmd%%[$' \n']*} |
|
117 canonical=1 |
|
118 _hg_command_specific |
|
119 } |
|
120 |
|
121 _hg_command_specific() |
|
122 { |
|
123 if [ "$cmd" != status ] && [ "$prev" = -r ] || [ "$prev" == --rev ]; then |
|
124 if [ $canonical = 1 ]; then |
|
125 _hg_tags |
|
126 return 0 |
|
127 elif [[ status != "$cmd"* ]]; then |
|
128 _hg_tags |
|
129 return 0 |
|
130 else |
|
131 return 1 |
|
132 fi |
108 fi |
133 fi |
109 |
134 |
110 case "$cmd" in |
135 case "$cmd" in |
111 help) |
136 help) |
112 _hg_commands |
137 _hg_commands |
150 COMPREPLY=(${COMPREPLY[@]:-} $(compgen -f -X "!*.i" -- "$cur")) |
175 COMPREPLY=(${COMPREPLY[@]:-} $(compgen -f -X "!*.i" -- "$cur")) |
151 ;; |
176 ;; |
152 debugdata) |
177 debugdata) |
153 COMPREPLY=(${COMPREPLY[@]:-} $(compgen -f -X "!*.d" -- "$cur")) |
178 COMPREPLY=(${COMPREPLY[@]:-} $(compgen -f -X "!*.d" -- "$cur")) |
154 ;; |
179 ;; |
|
180 *) |
|
181 return 1 |
|
182 ;; |
155 esac |
183 esac |
156 |
184 |
|
185 return 0 |
157 } |
186 } |
158 |
187 |
159 complete -o bashdefault -o default -F _hg hg 2>/dev/null \ |
188 complete -o bashdefault -o default -F _hg hg 2>/dev/null \ |
160 || complete -o default -F _hg hg |
189 || complete -o default -F _hg hg |