@@ -187,15 +187,21 @@ impl CommandCompleter for Bash {
187
187
188
188
let script = r#"
189
189
_clap_complete_NAME() {
190
- export IFS=$'\013'
191
- export _CLAP_COMPLETE_INDEX=${COMP_CWORD}
192
- export _CLAP_COMPLETE_COMP_TYPE=${COMP_TYPE}
190
+ local IFS=$'\013'
191
+ local _CLAP_COMPLETE_INDEX=${COMP_CWORD}
192
+ local _CLAP_COMPLETE_COMP_TYPE=${COMP_TYPE}
193
193
if compopt +o nospace 2> /dev/null; then
194
- export _CLAP_COMPLETE_SPACE=false
194
+ local _CLAP_COMPLETE_SPACE=false
195
195
else
196
- export _CLAP_COMPLETE_SPACE=true
196
+ local _CLAP_COMPLETE_SPACE=true
197
197
fi
198
- COMPREPLY=( $("COMPLETER" complete bash -- "${COMP_WORDS[@]}") )
198
+ COMPREPLY=( $( \
199
+ IFS="$IFS" \
200
+ _CLAP_COMPLETE_INDEX="$_CLAP_COMPLETE_INDEX" \
201
+ _CLAP_COMPLETE_COMP_TYPE="$_CLAP_COMPLETE_COMP_TYPE" \
202
+ _CLAP_COMPLETE_SPACE="$_CLAP_COMPLETE_SPACE" \
203
+ "COMPLETER" complete bash -- "${COMP_WORDS[@]}" \
204
+ ) )
199
205
if [[ $? != 0 ]]; then
200
206
unset COMPREPLY
201
207
elif [[ $SUPPRESS_SPACE == 1 ]] && [[ "${COMPREPLY-}" =~ [=/:]$ ]]; then
@@ -471,10 +477,14 @@ impl CommandCompleter for Zsh {
471
477
472
478
let script = r#"#compdef BIN
473
479
function _clap_dynamic_completer() {
474
- export _CLAP_COMPLETE_INDEX=$(expr $CURRENT - 1)
475
- export _CLAP_IFS=$'\n'
476
-
477
- local completions=("${(@f)$(COMPLETER complete zsh -- ${words} 2>/dev/null)}")
480
+ local _CLAP_COMPLETE_INDEX=$(expr $CURRENT - 1)
481
+ local _CLAP_IFS=$'\n'
482
+
483
+ local completions=("${(@f)$( \
484
+ _CLAP_IFS="$_CLAP_IFS" \
485
+ _CLAP_COMPLETE_INDEX="$_CLAP_COMPLETE_INDEX" \
486
+ COMPLETER complete zsh -- ${words} 2>/dev/null \
487
+ )}")
478
488
479
489
if [[ -n $completions ]]; then
480
490
compadd -a completions
0 commit comments