mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-11-04 07:21:06 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			60 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
#compdef strip
 | 
						|
 | 
						|
local curcontext=$curcontext state line ret=1
 | 
						|
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[@]"
 | 
						|
    return
 | 
						|
  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)"}:#strip: supported targets: *}#strip: supported targets: })
 | 
						|
    _describe -t bfdnames 'bfd name' bfdnames && ret=0
 | 
						|
    ;;
 | 
						|
esac
 | 
						|
 | 
						|
return ret
 |