@@ -2071,7 +2071,7 @@ _comp_compgen_allowed_groups()
2071
2071
}
2072
2072
2073
2073
# @since 2.12
2074
- _comp_selinux_users ()
2074
+ _comp_compgen_selinux_users ()
2075
2075
{
2076
2076
_comp_compgen_split -- " $( semanage user -nl 2> /dev/null |
2077
2077
awk ' { print $1 }' ) "
@@ -2308,8 +2308,7 @@ _known_hosts()
2308
2308
# Helper function to locate ssh included files in configs
2309
2309
# This function looks for the "Include" keyword in ssh config files and
2310
2310
# includes them recursively, adding each result to the config variable.
2311
- # TODO:API: rename per conventions
2312
- _included_ssh_config_files ()
2311
+ _comp__included_ssh_config_files ()
2313
2312
{
2314
2313
(( $# < 1 )) &&
2315
2314
echo " bash_completion: $FUNCNAME : missing mandatory argument CONFIG" >&2
@@ -2358,7 +2357,7 @@ _included_ssh_config_files()
2358
2357
fi
2359
2358
done
2360
2359
done
2361
- } # _included_ssh_config_files ()
2360
+ } # _comp__included_ssh_config_files ()
2362
2361
2363
2362
# Helper function for completing _known_hosts.
2364
2363
# This function performs host completion based on ssh's config and known_hosts
@@ -2435,7 +2434,7 @@ _known_hosts_real()
2435
2434
# "Include" keyword in ssh config files
2436
2435
if (( ${# config[@]} > 0 )) ; then
2437
2436
for i in " ${config[@]} " ; do
2438
- _included_ssh_config_files " $i "
2437
+ _comp__included_ssh_config_files " $i "
2439
2438
done
2440
2439
fi
2441
2440
@@ -2659,7 +2658,7 @@ _comp_command_offset()
2659
2658
# If still nothing, just load it for the basename
2660
2659
if [[ ! $cspec ]]; then
2661
2660
compcmd=${cmd##*/ }
2662
- _completion_loader " $compcmd "
2661
+ _comp_load -D -- " $compcmd "
2663
2662
cspec=$( complete -p " $compcmd " 2> /dev/null)
2664
2663
fi
2665
2664
@@ -2838,7 +2837,8 @@ complete -F _comp_longopt \
2838
2837
sed seq shar sort split strip sum tac tail tee \
2839
2838
texindex touch tr uname unexpand uniq units vdir wc who
2840
2839
2841
- declare -Ag _xspecs
2840
+ # @since 2.12
2841
+ declare -Ag _comp_xspecs
2842
2842
2843
2843
# TODO:API: rename per conventions
2844
2844
_filedir_xspec()
@@ -2852,7 +2852,7 @@ _filedir_xspec()
2852
2852
_comp_quote_compgen " $cur "
2853
2853
local quoted=$ret
2854
2854
2855
- local xspec=${_xspecs[${1##*/}]}
2855
+ local xspec=${_comp_xspecs[${1##*/}]- ${ _xspecs[${1##*/}]-} }
2856
2856
local -a toks
2857
2857
_comp_compgen -v toks -c " $quoted " -- -d
2858
2858
@@ -2880,75 +2880,74 @@ _filedir_xspec()
2880
2880
fi
2881
2881
}
2882
2882
2883
- # TODO:API: rename per conventions
2884
- _install_xspec()
2883
+ _comp__init_install_xspec()
2885
2884
{
2886
2885
local xspec=$1 cmd
2887
2886
shift
2888
2887
for cmd in " $@ " ; do
2889
- _xspecs [$cmd ]=$xspec
2888
+ _comp_xspecs [$cmd ]=$xspec
2890
2889
done
2891
2890
}
2892
2891
# bzcmp, bzdiff, bz*grep, bzless, bzmore intentionally not here, see Debian: #455510
2893
- _install_xspec '!*.?(t)bz?(2)' bunzip2 bzcat pbunzip2 pbzcat lbunzip2 lbzcat
2894
- _install_xspec '!*.@(zip|[aegjkswx]ar|exe|pk3|wsz|zargo|xpi|s[tx][cdiw]|sx[gm]|o[dt][tspgfc]|od[bm]|oxt|?(o)xps|epub|cbz|apk|aab|ipa|do[ct][xm]|p[op]t[mx]|xl[st][xm]|pyz|whl|[Ff][Cc][Ss]td)' unzip zipinfo
2895
- _install_xspec '*.Z' compress znew
2892
+ _comp__init_install_xspec '!*.?(t)bz?(2)' bunzip2 bzcat pbunzip2 pbzcat lbunzip2 lbzcat
2893
+ _comp__init_install_xspec '!*.@(zip|[aegjkswx]ar|exe|pk3|wsz|zargo|xpi|s[tx][cdiw]|sx[gm]|o[dt][tspgfc]|od[bm]|oxt|?(o)xps|epub|cbz|apk|aab|ipa|do[ct][xm]|p[op]t[mx]|xl[st][xm]|pyz|whl|[Ff][Cc][Ss]td)' unzip zipinfo
2894
+ _comp__init_install_xspec '*.Z' compress znew
2896
2895
# zcmp, zdiff, z*grep, zless, zmore intentionally not here, see Debian: #455510
2897
- _install_xspec '!*.@(Z|[gGd]z|t[ag]z)' gunzip zcat
2898
- _install_xspec '!*.@(Z|[gGdz]z|t[ag]z)' unpigz
2899
- _install_xspec '!*.Z' uncompress
2896
+ _comp__init_install_xspec '!*.@(Z|[gGd]z|t[ag]z)' gunzip zcat
2897
+ _comp__init_install_xspec '!*.@(Z|[gGdz]z|t[ag]z)' unpigz
2898
+ _comp__init_install_xspec '!*.Z' uncompress
2900
2899
# lzcmp, lzdiff intentionally not here, see Debian: #455510
2901
- _install_xspec '!*.@(tlz|lzma)' lzcat lzegrep lzfgrep lzgrep lzless lzmore unlzma
2902
- _install_xspec '!*.@(?(t)xz|tlz|lzma)' unxz xzcat
2903
- _install_xspec '!*.lrz' lrunzip
2904
- _install_xspec '!*.@(gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx)' ee
2905
- _install_xspec '!*.@(gif|jp?(e)g|tif?(f)|png|p[bgp]m|bmp|x[bp]m|rle|rgb|pcx|fits|pm|svg)' qiv
2906
- _install_xspec '!*.@(gif|jp?(e)g?(2)|j2[ck]|jp[2f]|tif?(f)|png|p[bgp]m|bmp|x[bp]m|rle|rgb|pcx|fits|pm|?(e)ps)' xv
2907
- _install_xspec '!*.@(@(?(e)ps|?(E)PS|pdf|PDF)?(.gz|.GZ|.bz2|.BZ2|.Z))' gv ggv kghostview
2908
- _install_xspec '!*.@(dvi|DVI)?(.@(gz|Z|bz2))' xdvi kdvi
2909
- _install_xspec '!*.dvi' dvips dviselect dvitype dvipdf advi dvipdfm dvipdfmx
2910
- _install_xspec '!*.[pf]df' acroread gpdf xpdf
2911
- _install_xspec '!*.@(?(e)ps|pdf)' kpdf
2912
- _install_xspec '!*.@(okular|@(?(e|x)ps|?(E|X)PS|[pf]df|[PF]DF|dvi|DVI|cb[rz]|CB[RZ]|djv?(u)|DJV?(U)|dvi|DVI|gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx|GIF|JP?(E)G|MIFF|TIF?(F)|PN[GM]|P[BGP]M|BMP|XPM|ICO|XWD|TGA|PCX|epub|EPUB|odt|ODT|fb?(2)|FB?(2)|mobi|MOBI|g3|G3|chm|CHM|md|markdown)?(.?(gz|GZ|bz2|BZ2|xz|XZ)))' okular
2913
- _install_xspec '!*.pdf' epdfview pdfunite
2914
- _install_xspec '!*.@(cb[rz7t]|djv?(u)|?(e)ps|pdf)' zathura
2915
- _install_xspec '!*.@(?(e)ps|pdf)' ps2pdf ps2pdf12 ps2pdf13 ps2pdf14 ps2pdfwr
2916
- _install_xspec '!*.texi*' makeinfo texi2html
2917
- _install_xspec '!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)' tex latex slitex jadetex pdfjadetex pdftex pdflatex texi2dvi xetex xelatex luatex lualatex
2918
- _install_xspec '!*.mp3' mpg123 mpg321 madplay
2919
- _install_xspec '!*@(.@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|fxm|FXM|viv|rm|ram|yuv|mov|MOV|qt|QT|web[am]|WEB[AM]|mp[234]|MP[234]|m?(p)4[av]|M?(P)4[AV]|mkv|MKV|og[agmv]|OG[AGMV]|t[ps]|T[PS]|m2t?(s)|M2T?(S)|mts|MTS|wav|WAV|flac|FLAC|asx|ASX|mng|MNG|srt|m[eo]d|M[EO]D|s[3t]m|S[3T]M|it|IT|xm|XM)|+([0-9]).@(vdr|VDR))?(.@(crdownload|part))' xine aaxine cacaxine fbxine
2920
- _install_xspec '!*@(.@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|fxm|FXM|viv|rm|ram|yuv|mov|MOV|qt|QT|web[am]|WEB[AM]|mp[234]|MP[234]|m?(p)4[av]|M?(P)4[AV]|mkv|MKV|og[agmv]|OG[AGMV]|opus|OPUS|t[ps]|T[PS]|m2t?(s)|M2T?(S)|mts|MTS|wav|WAV|flac|FLAC|asx|ASX|mng|MNG|srt|m[eo]d|M[EO]D|s[3t]m|S[3T]M|it|IT|xm|XM|iso|ISO)|+([0-9]).@(vdr|VDR))?(.@(crdownload|part))' kaffeine dragon totem
2921
- _install_xspec '!*.@(avi|asf|wmv)' aviplay
2922
- _install_xspec '!*.@(rm?(j)|ra?(m)|smi?(l))' realplay
2923
- _install_xspec '!*.@(mpg|mpeg|avi|mov|qt)' xanim
2924
- _install_xspec '!*.@(og[ag]|m3u|flac|spx)' ogg123
2925
- _install_xspec '!*.@(mp3|ogg|pls|m3u)' gqmpeg freeamp
2926
- _install_xspec '!*.fig' xfig
2927
- _install_xspec '!*.@(mid?(i)|cmf)' playmidi
2928
- _install_xspec '!*.@(mid?(i)|rmi|rcp|[gr]36|g18|mod|xm|it|x3m|s[3t]m|kar)' timidity
2929
- _install_xspec '!*.@(669|abc|am[fs]|d[bs]m|dmf|far|it|mdl|m[eo]d|mid?(i)|mt[2m]|oct|okt?(a)|p[st]m|s[3t]m|ult|umx|wav|xm)' modplugplay modplug123
2930
- _install_xspec '*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)' vi vim gvim rvim view rview rgvim rgview gview emacs xemacs sxemacs kate kwrite
2931
- _install_xspec '!*.@(zip|z|gz|tgz)' bzme
2900
+ _comp__init_install_xspec '!*.@(tlz|lzma)' lzcat lzegrep lzfgrep lzgrep lzless lzmore unlzma
2901
+ _comp__init_install_xspec '!*.@(?(t)xz|tlz|lzma)' unxz xzcat
2902
+ _comp__init_install_xspec '!*.lrz' lrunzip
2903
+ _comp__init_install_xspec '!*.@(gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx)' ee
2904
+ _comp__init_install_xspec '!*.@(gif|jp?(e)g|tif?(f)|png|p[bgp]m|bmp|x[bp]m|rle|rgb|pcx|fits|pm|svg)' qiv
2905
+ _comp__init_install_xspec '!*.@(gif|jp?(e)g?(2)|j2[ck]|jp[2f]|tif?(f)|png|p[bgp]m|bmp|x[bp]m|rle|rgb|pcx|fits|pm|?(e)ps)' xv
2906
+ _comp__init_install_xspec '!*.@(@(?(e)ps|?(E)PS|pdf|PDF)?(.gz|.GZ|.bz2|.BZ2|.Z))' gv ggv kghostview
2907
+ _comp__init_install_xspec '!*.@(dvi|DVI)?(.@(gz|Z|bz2))' xdvi kdvi
2908
+ _comp__init_install_xspec '!*.dvi' dvips dviselect dvitype dvipdf advi dvipdfm dvipdfmx
2909
+ _comp__init_install_xspec '!*.[pf]df' acroread gpdf xpdf
2910
+ _comp__init_install_xspec '!*.@(?(e)ps|pdf)' kpdf
2911
+ _comp__init_install_xspec '!*.@(okular|@(?(e|x)ps|?(E|X)PS|[pf]df|[PF]DF|dvi|DVI|cb[rz]|CB[RZ]|djv?(u)|DJV?(U)|dvi|DVI|gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx|GIF|JP?(E)G|MIFF|TIF?(F)|PN[GM]|P[BGP]M|BMP|XPM|ICO|XWD|TGA|PCX|epub|EPUB|odt|ODT|fb?(2)|FB?(2)|mobi|MOBI|g3|G3|chm|CHM|md|markdown)?(.?(gz|GZ|bz2|BZ2|xz|XZ)))' okular
2912
+ _comp__init_install_xspec '!*.pdf' epdfview pdfunite
2913
+ _comp__init_install_xspec '!*.@(cb[rz7t]|djv?(u)|?(e)ps|pdf)' zathura
2914
+ _comp__init_install_xspec '!*.@(?(e)ps|pdf)' ps2pdf ps2pdf12 ps2pdf13 ps2pdf14 ps2pdfwr
2915
+ _comp__init_install_xspec '!*.texi*' makeinfo texi2html
2916
+ _comp__init_install_xspec '!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)' tex latex slitex jadetex pdfjadetex pdftex pdflatex texi2dvi xetex xelatex luatex lualatex
2917
+ _comp__init_install_xspec '!*.mp3' mpg123 mpg321 madplay
2918
+ _comp__init_install_xspec '!*@(.@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|fxm|FXM|viv|rm|ram|yuv|mov|MOV|qt|QT|web[am]|WEB[AM]|mp[234]|MP[234]|m?(p)4[av]|M?(P)4[AV]|mkv|MKV|og[agmv]|OG[AGMV]|t[ps]|T[PS]|m2t?(s)|M2T?(S)|mts|MTS|wav|WAV|flac|FLAC|asx|ASX|mng|MNG|srt|m[eo]d|M[EO]D|s[3t]m|S[3T]M|it|IT|xm|XM)|+([0-9]).@(vdr|VDR))?(.@(crdownload|part))' xine aaxine cacaxine fbxine
2919
+ _comp__init_install_xspec '!*@(.@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|fxm|FXM|viv|rm|ram|yuv|mov|MOV|qt|QT|web[am]|WEB[AM]|mp[234]|MP[234]|m?(p)4[av]|M?(P)4[AV]|mkv|MKV|og[agmv]|OG[AGMV]|opus|OPUS|t[ps]|T[PS]|m2t?(s)|M2T?(S)|mts|MTS|wav|WAV|flac|FLAC|asx|ASX|mng|MNG|srt|m[eo]d|M[EO]D|s[3t]m|S[3T]M|it|IT|xm|XM|iso|ISO)|+([0-9]).@(vdr|VDR))?(.@(crdownload|part))' kaffeine dragon totem
2920
+ _comp__init_install_xspec '!*.@(avi|asf|wmv)' aviplay
2921
+ _comp__init_install_xspec '!*.@(rm?(j)|ra?(m)|smi?(l))' realplay
2922
+ _comp__init_install_xspec '!*.@(mpg|mpeg|avi|mov|qt)' xanim
2923
+ _comp__init_install_xspec '!*.@(og[ag]|m3u|flac|spx)' ogg123
2924
+ _comp__init_install_xspec '!*.@(mp3|ogg|pls|m3u)' gqmpeg freeamp
2925
+ _comp__init_install_xspec '!*.fig' xfig
2926
+ _comp__init_install_xspec '!*.@(mid?(i)|cmf)' playmidi
2927
+ _comp__init_install_xspec '!*.@(mid?(i)|rmi|rcp|[gr]36|g18|mod|xm|it|x3m|s[3t]m|kar)' timidity
2928
+ _comp__init_install_xspec '!*.@(669|abc|am[fs]|d[bs]m|dmf|far|it|mdl|m[eo]d|mid?(i)|mt[2m]|oct|okt?(a)|p[st]m|s[3t]m|ult|umx|wav|xm)' modplugplay modplug123
2929
+ _comp__init_install_xspec '*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)' vi vim gvim rvim view rview rgvim rgview gview emacs xemacs sxemacs kate kwrite
2930
+ _comp__init_install_xspec '!*.@(zip|z|gz|tgz)' bzme
2932
2931
# konqueror not here on purpose, it's more than a web/html browser
2933
- _install_xspec '!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))' netscape mozilla lynx galeon dillo elinks amaya epiphany
2934
- _install_xspec '!*.@(sxw|stw|sxg|sgl|doc?([mx])|dot?([mx])|rtf|txt|htm|html|?(f)odt|ott|odm|pdf)' oowriter lowriter
2935
- _install_xspec '!*.@(sxi|sti|pps?(x)|ppt?([mx])|pot?([mx])|?(f)odp|otp)' ooimpress loimpress
2936
- _install_xspec '!*.@(sxc|stc|xls?([bmx])|xlw|xlt?([mx])|[ct]sv|?(f)ods|ots)' oocalc localc
2937
- _install_xspec '!*.@(sxd|std|sda|sdd|?(f)odg|otg)' oodraw lodraw
2938
- _install_xspec '!*.@(sxm|smf|mml|odf)' oomath lomath
2939
- _install_xspec '!*.odb' oobase lobase
2940
- _install_xspec '!*.[rs]pm' rpm2cpio
2941
- _install_xspec '!*.aux' bibtex
2942
- _install_xspec '!*.po' poedit gtranslator kbabel lokalize
2943
- _install_xspec '!*.@([Pp][Rr][Gg]|[Cc][Ll][Pp])' harbour gharbour hbpp
2944
- _install_xspec '!*.[Hh][Rr][Bb]' hbrun
2945
- _install_xspec '!*.ly' lilypond ly2dvi
2946
- _install_xspec '!*.@(dif?(f)|?(d)patch)?(.@([gx]z|bz2|lzma))' cdiff
2947
- _install_xspec '!@(*.@(ks|jks|jceks|p12|pfx|bks|ubr|gkr|cer|crt|cert|p7b|pkipath|pem|p10|csr|crl)|cacerts)' portecle
2948
- _install_xspec '!*.@(mp[234c]|og[ag]|@(fl|a)ac|m4[abp]|spx|tta|w?(a)v|wma|aif?(f)|asf|ape)' kid3 kid3-qt
2949
- unset -f _install_xspec
2950
-
2951
- # Minimal completion to use as fallback in _completion_loader .
2932
+ _comp__init_install_xspec '!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))' netscape mozilla lynx galeon dillo elinks amaya epiphany
2933
+ _comp__init_install_xspec '!*.@(sxw|stw|sxg|sgl|doc?([mx])|dot?([mx])|rtf|txt|htm|html|?(f)odt|ott|odm|pdf)' oowriter lowriter
2934
+ _comp__init_install_xspec '!*.@(sxi|sti|pps?(x)|ppt?([mx])|pot?([mx])|?(f)odp|otp)' ooimpress loimpress
2935
+ _comp__init_install_xspec '!*.@(sxc|stc|xls?([bmx])|xlw|xlt?([mx])|[ct]sv|?(f)ods|ots)' oocalc localc
2936
+ _comp__init_install_xspec '!*.@(sxd|std|sda|sdd|?(f)odg|otg)' oodraw lodraw
2937
+ _comp__init_install_xspec '!*.@(sxm|smf|mml|odf)' oomath lomath
2938
+ _comp__init_install_xspec '!*.odb' oobase lobase
2939
+ _comp__init_install_xspec '!*.[rs]pm' rpm2cpio
2940
+ _comp__init_install_xspec '!*.aux' bibtex
2941
+ _comp__init_install_xspec '!*.po' poedit gtranslator kbabel lokalize
2942
+ _comp__init_install_xspec '!*.@([Pp][Rr][Gg]|[Cc][Ll][Pp])' harbour gharbour hbpp
2943
+ _comp__init_install_xspec '!*.[Hh][Rr][Bb]' hbrun
2944
+ _comp__init_install_xspec '!*.ly' lilypond ly2dvi
2945
+ _comp__init_install_xspec '!*.@(dif?(f)|?(d)patch)?(.@([gx]z|bz2|lzma))' cdiff
2946
+ _comp__init_install_xspec '!@(*.@(ks|jks|jceks|p12|pfx|bks|ubr|gkr|cer|crt|cert|p7b|pkipath|pem|p10|csr|crl)|cacerts)' portecle
2947
+ _comp__init_install_xspec '!*.@(mp[234c]|og[ag]|@(fl|a)ac|m4[abp]|spx|tta|w?(a)v|wma|aif?(f)|asf|ape)' kid3 kid3-qt
2948
+ unset -f _comp__init_install_xspec
2949
+
2950
+ # Minimal completion to use as fallback in _comp_complete_load .
2952
2951
# TODO:API: rename per conventions
2953
2952
_minimal()
2954
2953
{
@@ -2960,9 +2959,22 @@ _minimal()
2960
2959
# https://lists.gnu.org/archive/html/bug-bash/2012-01/msg00045.html
2961
2960
complete -F _minimal ''
2962
2961
2963
- # TODO:API: rename per conventions
2964
- __load_completion ()
2962
+ # @since 2.12
2963
+ _comp_load ()
2965
2964
{
2965
+ local flag_fallback_default=" " IFS=$' \t\n'
2966
+ local OPTIND=1 OPTARG=" " OPTERR=0 opt
2967
+ while getopts ':D' opt " $@ " ; do
2968
+ case $opt in
2969
+ D) flag_fallback_default=set ;;
2970
+ *)
2971
+ echo " bash_completion: $FUNCNAME : usage error" >&2
2972
+ return 2
2973
+ ;;
2974
+ esac
2975
+ done
2976
+ shift " $(( OPTIND - 1 )) "
2977
+
2966
2978
local cmd=$1 cmdname=${1##*/ } dir compfile
2967
2979
local -a paths
2968
2980
[[ $cmdname ]] || return 1
@@ -3069,25 +3081,28 @@ __load_completion()
3069
3081
done
3070
3082
3071
3083
# Look up simple " xspec" completions
3072
- [[ -v _xspecs[$cmdname ] ]] &&
3084
+ [[ -v _comp_xspecs[ $cmdname ] || -v _xspecs[$cmdname ] ]] &&
3073
3085
complete -F _filedir_xspec " $cmdname " " $backslash$cmdname " && return 0
3074
3086
3087
+ if [[ $flag_fallback_default ]]; then
3088
+ complete -F _minimal -- " $origcmd " && return 0
3089
+ fi
3090
+
3075
3091
return 1
3076
3092
}
3077
3093
3078
3094
# set up dynamic completion loading
3079
- # TODO:API: rename per conventions
3080
- _completion_loader ()
3095
+ # @since 2.12
3096
+ _comp_complete_load ()
3081
3097
{
3082
3098
# $1 =_EmptycmD_ already for empty cmds in bash 4.3, set to it for earlier
3083
3099
local cmd=${1:- _EmptycmD_}
3084
3100
3085
- __load_completion " $cmd " && return 124
3086
-
3087
- # Need to define *something*, otherwise there will be no completion at all.
3088
- complete -F _minimal -- " $cmd " && return 124
3101
+ # Pass -D to define *something*, or otherwise there will be no completion
3102
+ # at all.
3103
+ _comp_load -D -- " $cmd " && return 124
3089
3104
} &&
3090
- complete -D -F _completion_loader
3105
+ complete -D -F _comp_complete_load
3091
3106
3092
3107
# Function for loading and calling functions from dynamically loaded
3093
3108
# completion files that may not have been sourced yet.
@@ -3102,7 +3117,7 @@ _comp_xfunc()
3102
3117
local xfunc_name=$2
3103
3118
[[ $xfunc_name == _* ]] ||
3104
3119
xfunc_name=_comp_xfunc_${1// [^a-zA-Z0-9_]/ _} _$xfunc_name
3105
- declare -F " $xfunc_name " & > /dev/null || __load_completion " $1 "
3120
+ declare -F " $xfunc_name " & > /dev/null || _comp_load " $1 "
3106
3121
" $xfunc_name " " ${@: 3} "
3107
3122
}
3108
3123
0 commit comments