From 27b59c6b31ecbe007ea4ed09b0019eff78bcf5f3 Mon Sep 17 00:00:00 2001 From: Paul Ackersviller Date: Mon, 26 Nov 2007 03:55:46 +0000 Subject: Merge of 24046: Nikolai Weibull: improve completion for Solaris and GNU strips. --- Completion/Unix/Command/_strip | 60 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 Completion/Unix/Command/_strip diff --git a/Completion/Unix/Command/_strip b/Completion/Unix/Command/_strip new file mode 100644 index 000000000..06f7243b5 --- /dev/null +++ b/Completion/Unix/Command/_strip @@ -0,0 +1,60 @@ +#compdef strip + +local curcontext=$curcontext state line ret=0 +declare -A opt_args +declare -a args + +if _pick_variant gnu=GNU solaris --version; then + if [[ -prefix @* ]]; then + compset -P '@' + + local expl + + _description files expl 'command-line-options file' + _files $expl && ret=0 + return $ret + fi + args=( + '(-F --target)'{-F+,--target=}'[object code format to use]:bfd name:->bfdnames' + '--help[display usage information and exit]' + '--info[display list of architectures and object formats]' + '(-I --input-target)'{-I+,--input-target=}'[object code format of input]:bfd name:->bfdnames' + '(-O --output-target)'{-I+,--output-target=}'[object code format of output]:bfd name:->bfdnames' + '*'{-R+,--remove-section=}'[remove given sections]:section name' + '(-s --strip-all)'{-s,--strip-all}'[remove all symbols]' + '(-g -S -d --strip-debug)'{-g,-S,-d,--strip-debug}'[remove debugging symbols]' + '--strip-unneeded[remove symbols not needed for relocation processing]' + '*'{-K+,--keep-symbol=}'[keep given symbol]:symbol name' + '*'{-N+,--strip-symbol=}'[strip given symbol]:symbol name' + '(*)-o+[output file]:output file:_files' + '(-p --preserve-dates)'{-p,--preserve-dates}'[preserve access and modification dates]' + '(-w --wildcard)'{-w,--wildcard}'[permit wilcards in symbol names]' + '(-x --discard-all)'{-x,--discard-all}'[remove non-global symbols]' + '(-X --discard-locals)'{-X,--discard-locals}'[remove compiler-generated local symbols]' + '--keep-file-symbols[retain symbols specifying source file names]' + '--only-keep-debug[remove everything except debugging information]' + '(-V --version)'{-V,--version}'[display version information and exit]' + '(-v --verbose)'{-v,--verbose}'[list all object files modified or members of archives]') +else + args=( + '-l[strip line information only]' + '-V[display version information on stderr and exit]' + '-x[do not strip the symbol table]') +fi + +_arguments \ + $args \ + '1:executable:_files -g "*(-*)"' \ + '*::executable:_files -g "*(-*)"' && ret=0 + +case $state in + (bfdnames) + local expl + declare -a bfdnames + + bfdnames=(${=${(M)${(f)"$(_call_program bfdnames strip --help 2>/dev/null)"}:#strip: supported targets: *}#strip: supported targets: }) + _describe -t bfdnames 'bfd name' bfdnames && ret=0 + ;; +esac + +return $ret -- cgit 1.4.1