From 6c09f2a45c5541e9c207d14fc7aa21a4a0066bde Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 4 May 2024 03:03:19 +0200 Subject: Merging upstream version 1:2.12.0. Signed-off-by: Daniel Baumann --- completions/kldload | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) (limited to 'completions/kldload') diff --git a/completions/kldload b/completions/kldload index f511158..3c2396d 100644 --- a/completions/kldload +++ b/completions/kldload @@ -2,20 +2,31 @@ [[ $OSTYPE == *freebsd* ]] || return 1 -_kldload() +_comp_cmd_kldload() { - local cur prev words cword - _init_completion || return + local cur prev words cword comp_args + _comp_initialize -- "$@" || return - local moddir=/modules/ - [[ -d $moddir ]] || moddir=/boot/kernel/ + if _comp_looks_like_path "$cur"; then + _comp_compgen_filedir ko + return + fi - compopt -o filenames - COMPREPLY=($(compgen -f "$moddir$cur")) - COMPREPLY=(${COMPREPLY[@]#$moddir}) - COMPREPLY=(${COMPREPLY[@]%.ko}) + local moddirs modules i + if _comp_split -F ";" moddirs "$(kldconfig -r 2>/dev/null)"; then + compopt -o filenames + for i in "${moddirs[@]}"; do + _comp_compgen -v modules -c "$i/$cur" -- -f && + COMPREPLY+=("${modules[@]#$i/}") + done + ((${#COMPREPLY[@]})) && + COMPREPLY=("${COMPREPLY[@]%.ko}") + fi + + # also add dirs in current dir + _comp_compgen -a filedir -d } && - complete -F _kldload kldload + complete -F _comp_cmd_kldload kldload # ex: filetype=sh -- cgit v1.2.3