about summary refs log tree commit diff
path: root/Completion/Unix/Type
diff options
context:
space:
mode:
authorOliver Kiddle <opk@zsh.org>2016-07-17 12:32:02 +0200
committerOliver Kiddle <opk@zsh.org>2016-07-17 12:32:02 +0200
commit52f46cca751cc40db978b88dd6379866cad30b15 (patch)
tree903f96a00ba12a96825a16d3d03ac4db239701c9 /Completion/Unix/Type
parentccb45b320124d17f4a2594e85c80c970bb0259ef (diff)
downloadzsh-52f46cca751cc40db978b88dd6379866cad30b15.tar.gz
zsh-52f46cca751cc40db978b88dd6379866cad30b15.tar.xz
zsh-52f46cca751cc40db978b88dd6379866cad30b15.zip
38867: update strace completion
Also factor out completion for system calls and new functions for
truss and ltrace.
Diffstat (limited to 'Completion/Unix/Type')
-rw-r--r--Completion/Unix/Type/_sys_calls20
1 files changed, 20 insertions, 0 deletions
diff --git a/Completion/Unix/Type/_sys_calls b/Completion/Unix/Type/_sys_calls
new file mode 100644
index 000000000..bd9b34f70
--- /dev/null
+++ b/Completion/Unix/Type/_sys_calls
@@ -0,0 +1,20 @@
+#autoload
+
+# Options:
+#
+# -a    add "all" as an additional match
+# -n    add "none" as an additional match
+
+local expl all none
+local ifile=/usr/include/sys/syscall.h
+local -au syscalls
+
+zparseopts -D -K -E a=all n=none
+
+[[ $OSTYPE = linux* ]] && ifile=/usr/include/bits/syscall.h
+syscalls=( ${${${(M)${(f)"$(<$ifile)"}:#?define[[:blank:]]##SYS_*}#*[[:blank:]]SYS_}%%[[:blank:]]*} ) 2>/dev/null
+[[ -n $all ]] && syscalls+=( all )
+[[ -n $none ]] && syscalls+=( none )
+
+_description syscalls expl 'system call'
+compadd "$@" "$expl[@]" -a syscalls