File tree 2 files changed +30
-12
lines changed
2 files changed +30
-12
lines changed Original file line number Diff line number Diff line change @@ -44,6 +44,21 @@ _comp__init_blacklist_glob='@(acroread.sh)'
44
44
# Turn on extended globbing and programmable completion
45
45
shopt -s extglob progcomp
46
46
47
+ # Declare a compatibility function name
48
+ # @param $1 Old function name
49
+ # @param $2 New function name
50
+ _comp_deprecate_func ()
51
+ {
52
+ if [[ $1 != [a-zA-Z_]* ([a-zA-Z_0-9]) ]]; then
53
+ printf ' bash_completion: %s: %s\n' " $FUNCNAME " " \$ 1: invalid function name '$1 '" >&2
54
+ return 2
55
+ elif [[ $2 != [a-zA-Z_]* ([a-zA-Z_0-9]) ]]; then
56
+ printf ' bash_completion: %s: %s\n' " $FUNCNAME " " \$ 2: invalid function name '$2 '" >&2
57
+ return 2
58
+ fi
59
+ eval -- " $1 () { $2 \"\$ @\" ; }"
60
+ }
61
+
47
62
# A lot of the following one-liners were taken directly from the
48
63
# completion examples provided with the bash 2.04 source distribution
49
64
@@ -2442,18 +2457,7 @@ _comp_xfunc()
2442
2457
" $xfunc_name " " ${@: 3} "
2443
2458
}
2444
2459
2445
- # Function for loading and calling functions from dynamically loaded
2446
- # completion files that may not have been sourced yet.
2447
- # @param $1 completion file to load function from in case it is missing
2448
- # @param $2... function and its arguments
2449
- _xfunc ()
2450
- {
2451
- set -- " $@ "
2452
- local srcfile=$1
2453
- shift
2454
- declare -F $1 & > /dev/null || __load_completion " $srcfile "
2455
- " $@ "
2456
- }
2460
+ _comp_deprecate_func _xfunc _comp_xfunc
2457
2461
2458
2462
# source compat completion directory definitions
2459
2463
_comp__init_compat_dir=${BASH_COMPLETION_COMPAT_DIR:-/ etc/ bash_completion.d}
Original file line number Diff line number Diff line change
1
+ import pytest
2
+
3
+ from conftest import assert_bash_exec
4
+
5
+
6
+ @pytest .mark .bashcomp (cmd = None , ignore_env = r"^\+declare -f func[12]$" )
7
+ class TestUnitDeprecateFunc :
8
+ def test_1 (self , bash ):
9
+ assert_bash_exec (
10
+ bash ,
11
+ 'func1() { echo "func1($*)"; }; _comp_deprecate_func func2 func1' ,
12
+ )
13
+ output = assert_bash_exec (bash , "func2 1 2 3" , want_output = True )
14
+ assert output .strip () == "func1(1 2 3)"
You can’t perform that action at this time.
0 commit comments