mirror of
git://git.code.sf.net/p/zsh/code
synced 2024-11-20 05:53:52 +01:00
moved to Completion/Unix/Command/_gprof
This commit is contained in:
parent
0c57eacae6
commit
3df5882eac
@ -1,58 +0,0 @@
|
||||
#compdef gprof
|
||||
|
||||
local curcontext="$curcontext" state line ret=1
|
||||
typeset -A opt_args
|
||||
|
||||
_arguments -C -s -{a,b,c,D,h,i,l,L,s,T,v,w,x,y,z} \
|
||||
-{A,C,e,E,f,F,J,n,N,O,p,P,q,Q,Z}:'function name:->funcs' \
|
||||
'-I:directory:_dir_list' \
|
||||
'-d-:debug level:' '-k:function names:->pair' \
|
||||
'-m:minimum execution count:' \
|
||||
':executable:_files -g \*\(\*\)' \
|
||||
':profile file:_files -g gmon.\*' \
|
||||
-- -s '((#s)--[no-] --)' \
|
||||
'*=name*:function name:->funcs' \
|
||||
'*=dirs*:directory:_dir_list' && ret=0
|
||||
|
||||
if [[ -n "$state" ]]; then
|
||||
local cmd pair expl
|
||||
|
||||
_tags functions || return 1
|
||||
|
||||
[[ "$state" = pair ]] && pair=yes
|
||||
|
||||
if [[ $#line -gt 1 ]]; then
|
||||
cmd="$line[2]"
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [[ -n "$cmd" ]]; then
|
||||
if [[ "$cmd" = /* ]]; then
|
||||
tmp="$cmd"
|
||||
else
|
||||
tmp="$PWD/$cmd"
|
||||
fi
|
||||
|
||||
if [[ "$tmp" != "$_gprof_command" ]]; then
|
||||
_gprof_command="$tmp"
|
||||
_gprof_funcs=( "${(@)${(@M)${(@f)$(nm $cmd)}:#[^ ]# [tT] ([^_]|_[^_])*}##* }" )
|
||||
fi
|
||||
|
||||
if [[ -n "$pair" ]]; then
|
||||
if compset -P '*/'; then
|
||||
expl='call arc to function'
|
||||
else
|
||||
expl='call arc from function'
|
||||
fi
|
||||
else
|
||||
expl=function
|
||||
fi
|
||||
_wanted functions expl "$expl" \
|
||||
compadd -M 'r:|_=* r:|=*' -a _gprof_funcs && ret=0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
|
||||
return ret
|
Loading…
Reference in New Issue
Block a user