@@ -1148,15 +1148,20 @@ _mac_addresses()
11481148#
11491149_configured_interfaces ()
11501150{
1151+ local -a files
11511152 if [[ -f /etc/debian_version ]]; then
11521153 # Debian system
1154+ _comp_expand_glob files ' /etc/network/interfaces /etc/network/interfaces.d/*'
1155+ (( ${# files[@]} )) || return 0
11531156 COMPREPLY=($( compgen -W " $( command sed -ne ' s|^iface \([^ ]\{1,\}\).*$|\1|p' \
1154- /etc/network/interfaces /etc/network/interfaces.d/ * 2> /dev/null) " \
1157+ " ${files[@]} " 2> /dev/null) " \
11551158 -- " $cur " ) )
11561159 elif [[ -f /etc/SuSE-release ]]; then
11571160 # SuSE system
1161+ _comp_expand_glob files ' /etc/sysconfig/network/ifcfg-*'
1162+ (( ${# files[@]} )) || return 0
11581163 COMPREPLY=($( compgen -W " $( printf ' %s\n' \
1159- /etc/sysconfig/network/ifcfg- * |
1164+ " ${files[@]} " |
11601165 command sed -ne ' s|.*ifcfg-\([^*].*\)$|\1|p' ) " -- " $cur " ) )
11611166 elif [[ -f /etc/pld-release ]]; then
11621167 # PLD Linux
@@ -1165,8 +1170,10 @@ _configured_interfaces()
11651170 command sed -ne ' s|.*ifcfg-\([^*].*\)$|\1|p' ) " -- " $cur " ) )
11661171 else
11671172 # Assume Red Hat
1173+ _comp_expand_glob files ' /etc/sysconfig/network-scripts/ifcfg-*'
1174+ (( ${# files[@]} )) || return 0
11681175 COMPREPLY=($( compgen -W " $( printf ' %s\n' \
1169- /etc/sysconfig/network-scripts/ifcfg- * |
1176+ " ${files[@]} " |
11701177 command sed -ne ' s|.*ifcfg-\([^*].*\)$|\1|p' ) " -- " $cur " ) )
11711178 fi
11721179}
@@ -1422,12 +1429,12 @@ _xinetd_services()
14221429{
14231430 local xinetddir=${_comp__test_xinetd_dir:-/ etc/ xinetd.d}
14241431 if [[ -d $xinetddir ]]; then
1425- local IFS=$' \t\n ' reset=$( shopt -p nullglob)
1426- shopt -s nullglob
1427- local -a svcs=($xinetddir /! ($_comp_backup_glob ))
1428- $reset
1429- (( ! ${# svcs[@]} )) ||
1432+ local -a svcs
1433+ _comp_expand_glob svcs ' $xinetddir/!($_comp_backup_glob)'
1434+ if (( ${# svcs[@]} )) ; then
1435+ local IFS=$' \n '
14301436 COMPREPLY+=($( compgen -W ' "${svcs[@]#$xinetddir/}"' -- " ${cur-} " ) )
1437+ fi
14311438 fi
14321439}
14331440
@@ -1438,12 +1445,9 @@ _services()
14381445 local sysvdirs
14391446 _sysvdirs
14401447
1441- local IFS=$' \t\n ' reset=$( shopt -p nullglob)
1442- shopt -s nullglob
1443- COMPREPLY=(
1444- $( printf ' %s\n' ${sysvdirs[0]} /! ($_comp_backup_glob | functions| README)) )
1445- $reset
1448+ _comp_expand_glob COMPREPLY ' ${sysvdirs[0]}/!($_comp_backup_glob|functions|README)'
14461449
1450+ local IFS=$' \n '
14471451 COMPREPLY+=($( {
14481452 systemctl list-units --full --all ||
14491453 systemctl list-unit-files
@@ -1474,7 +1478,7 @@ _service()
14741478 _services
14751479 [[ -e /etc/mandrake-release ]] && _xinetd_services
14761480 else
1477- local sysvdirs
1481+ local IFS= $' \n ' sysvdirs
14781482 _sysvdirs
14791483 COMPREPLY=($( compgen -W ' `command sed -e "y/|/ /" \
14801484 -ne "s/^.*\(U\|msg_u\)sage.*{\(.*\)}.*$/\2/p" \
@@ -1726,7 +1730,9 @@ _terms()
17261730 {
17271731 toe -a || toe
17281732 } | awk ' { print $1 }'
1729- find /{etc,lib,usr/lib,usr/share}/terminfo/? -type f -maxdepth 1 |
1733+ _comp_expand_glob dirs ' /{etc,lib,usr/lib,usr/share}/terminfo/?'
1734+ (( ${# dirs[@]} )) &&
1735+ find " ${dirs[@]} " -type f -maxdepth 1 |
17301736 awk -F/ ' { print $NF }'
17311737 } 2> /dev/null) " -- " $cur " ) )
17321738}
0 commit comments