summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp>2018-03-22 12:53:40 +0900
committerJun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp>2018-03-22 12:53:40 +0900
commitfc37d15e3e102ecba8fcdf38f389843fcab11065 (patch)
tree746a756aaae5b1f7d06d6a27a9b24fdc7fe6a756
parentbc349023aa6c0204d3242cb97f395c8f20289c69 (diff)
downloadzsh-fc37d15e3e102ecba8fcdf38f389843fcab11065.tar.gz
zsh-fc37d15e3e102ecba8fcdf38f389843fcab11065.zip
42191: new completion for otool (macOS)
-rw-r--r--ChangeLog4
-rw-r--r--Completion/Darwin/Command/_otool47
2 files changed, 51 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index ff845df5f..1868161d7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2018-03-22 Jun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp>
+
+ * 42191: Completion/Darwin/Command/_otool: new completion
+
2018-03-21 Peter Stephenson <p.stephenson@samsung.com>
* 42487: Src/Zle/compctl.c: remove gcc 7.3.0 warnings and
diff --git a/Completion/Darwin/Command/_otool b/Completion/Darwin/Command/_otool
new file mode 100644
index 000000000..8c6c00867
--- /dev/null
+++ b/Completion/Darwin/Command/_otool
@@ -0,0 +1,47 @@
+#compdef otool llvm-otool
+#
+local opts args files variant curcontext=$context state state_descr line
+typeset -A opt_args
+
+_arguments \
+ '-a[display the archive header]' \
+ '-S[display the contents of the __.SYMDEF file]' \
+ '-f[display the universal headers]' \
+ '-h[display the Mach header]' \
+ '-l[display the load commands]' \
+ '-L[display names and versions of shared libs that the object file uses]' \
+ '-D[display just the internal name of shared lib]' \
+ '-s[display the contents of the specified section]:segment name: :section name: ' \
+ '-t[display the contents of (__TEXT,__text) section]' \
+ '-d[display the contents of (__DATA,__data) section]' \
+ '-o[display the contents of __OBJC segment]' \
+ '-r[display the relocation entries]' \
+ '-c[display the argument strings from a core file]' \
+ '-I[display the indirect symbol table]' \
+ '-T[display the table of contents for a dynamic shared library]' \
+ '-R[display the reference table of a dynamic shared library]' \
+ '-M[display the module table of dymamic shared library]' \
+ '-H[display the two-level namespace hints table]' \
+ '-G[display the data in code table]' \
+ '-C[display the linker optimization hints]' \
+ '-P[print the info_plist section as strings]' \
+ '-p[with -t and -v/V: start disassembly from the specified symbol]:symbol name: ' \
+ '-v[display verbosely (symbolically) when possible]' \
+ '-V[display disassembled operands symbolically]' \
+ "-X[don't print leading addresses/headers with disassembly]" \
+ '-q[use the llvm disassembler (default)]' \
+ '-mcpu=[use the specified cpu for the llvm disassembler]:target:->targets' \
+ '-function_offsets[with disassembly, print decimal offset from the last label]' \
+ '-j[with disassembly, print opcode bytes]' \
+ "-Q[use otool's disassembler]" \
+ '-arch[select the specified architecture from a universal file]:arch:(i386 x86_64)' \
+ '-m[object file names are not assuemd to be in archive(member) syntax]' \
+ '(- *)--version[print version of otool]' \
+ '*:file:_object_files' && return 0
+
+case $state in
+ targets)
+ _values "target architecture" "${(z)${(@)${(f)$(_call_program targets
+ ${~words[1]} --version 2>/dev/null)##*Registered Targets:}/ -*}}"
+ ;;
+esac