diff --git a/completions/rsync b/completions/rsync index 60ba4e0967a..16379d8e4e3 100644 --- a/completions/rsync +++ b/completions/rsync @@ -85,11 +85,15 @@ _comp_cmd_rsync() # meaning before v3.2.0) contain the following unusual line in # --help: # "(-h) --help show this help (-h is --help only if used alone)" - _comp_compgen -Rv tmp help - <<<"$("$1" --help 2>&1 | command sed -e 's/^([^)]*)//')" + if _comp_compgen -Rv tmp help - <<<"$("$1" --help 2>&1 | command sed -e 's/^([^)]*)//')"; then - _comp_compgen -- -W '"${tmp[@]}" - --daemon --old-d{,irs} - --no-{blocking-io,detach,whole-file,inc-recursive,i-r}' -X '--no-OPTION' + _comp_compgen -- -W '"${tmp[@]}" + --daemon --old-d{,irs} + --no-{blocking-io,detach,whole-file,inc-recursive,i-r}' -X '--no-OPTION' + # We didn't find any options using _comp_compgen_help, try _usage for BSD style usage + else + _comp_compgen_usage + fi [[ ${COMPREPLY-} == *= ]] || compopt +o nospace ;; *:*) diff --git a/test/t/test_rsync.py b/test/t/test_rsync.py index e440c6ee81c..b527c4fa8f2 100644 --- a/test/t/test_rsync.py +++ b/test/t/test_rsync.py @@ -17,9 +17,10 @@ def test_2(self, completion): def test_3(self, completion): assert completion == "rsh ssh".split() - @pytest.mark.complete("rsync --", require_cmd=True) + @pytest.mark.complete("rsync --", require_longopt=True) def test_4(self, completion): - assert "--help" in completion + assert "--compress" in completion + assert "--timeout=" in completion @pytest.mark.parametrize( "ver1,ver2,result",