From 0bc58b66a4850cdb8458a86c3d9a2fc81de82aa3 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 28 Apr 2024 11:14:42 +0200 Subject: Adding upstream version 1:2.11. Signed-off-by: Daniel Baumann --- completions/strace | 99 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 completions/strace (limited to 'completions/strace') diff --git a/completions/strace b/completions/strace new file mode 100644 index 0000000..2b46ce8 --- /dev/null +++ b/completions/strace @@ -0,0 +1,99 @@ +# bash completion for strace -*- shell-script -*- + +_strace() +{ + local cur prev words cword + _init_completion -n = || return + + # check if we're still completing strace + local offset=0 i + for ((i = 1; i <= cword; i++)); do + case ${words[i]} in + -o | -e | -p) + ((i++)) + continue + ;; + -*) + continue + ;; + esac + offset=$i + break + done + + if ((offset > 0)); then + _command_offset $offset + else + + case $prev in + -*e) + if [[ $cur == *=* ]]; then + prev=${cur/=*/} + cur=${cur/*=/} + + case $prev in + trace) + # Import arch-specific syscalls + #+ -- not foolproof IMHO --David Paleino + local define syscall rest + local -A syscalls + while read -r define syscall rest; do + [[ $define == "#define" && \ + $syscall =~ ^__NR_(.+) ]] && + syscalls[${BASH_REMATCH[1]}]=1 + done 2>/dev/null /dev/null <$unistd + fi + + COMPREPLY=($(compgen -W '${!syscalls[@]} file + process network signal ipc desc all none' \ + -- "$cur")) + return + ;; + esac + else + compopt -o nospace + COMPREPLY=($(compgen -S"=" -W 'trace abbrev verbose raw + signal read write' -- "$cur")) + fi + return + ;; + -*o) + _filedir + return + ;; + -*p) + _pids + return + ;; + -*S) + COMPREPLY=($(compgen -W 'time calls name nothing' -- "$cur")) + return + ;; + -*u) + _allowed_users + return + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=($(compgen -W '$(_parse_help "$1" -h)' -- "$cur")) + else + COMPREPLY=($(compgen -c -- "$cur")) + fi + fi +} && + complete -F _strace -o default strace + +# ex: filetype=sh -- cgit v1.2.3