mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-10-31 06:00:54 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			43 lines
		
	
	
	
		
			834 B
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
	
		
			834 B
		
	
	
	
		
			Text
		
	
	
	
	
	
| #autoload
 | |
| 
 | |
| local __gopt=-J __len __tmp __pre __suf __ret=1 __descr __spec __prev
 | |
| 
 | |
| if [[ "$1" = - ]]; then
 | |
|   __prev=-
 | |
|   shift
 | |
| fi
 | |
| 
 | |
| if [[ "$1" = -([12]|)[VJ] ]]; then
 | |
|   __gopt="$1"
 | |
|   shift
 | |
| fi
 | |
| 
 | |
| __tmp=${argv[(ib:4:)-]}
 | |
| __len=$#
 | |
| if [[ __tmp -lt __len ]]; then
 | |
|   __pre=$(( __tmp-1 ))
 | |
|   __suf=$__tmp
 | |
| elif [[ __tmp -eq $# ]]; then
 | |
|   __pre=-2
 | |
|   __suf=$(( __len+1 ))
 | |
| else
 | |
|   __pre=4
 | |
|   __suf=5
 | |
| fi
 | |
| 
 | |
| while comptags "-A$__prev" "$1" curtag __spec; do
 | |
|   _comp_tags="$_comp_tags $__spec "
 | |
|   if [[ "$curtag" = *:* ]]; then
 | |
|     zformat -f __descr "${curtag#*:}" "d:$3"
 | |
|     _description "$__gopt" "${curtag%:*}" "$2" "$__descr"
 | |
|     curtag="${curtag%:*}"
 | |
| 
 | |
|     "$4" "${(P@)2}" "${(@)argv[5,-1]}" && __ret=0
 | |
|   else
 | |
|     _description "$__gopt" "$curtag" "$2" "$3"
 | |
| 
 | |
|     "${(@)argv[4,__pre]}" "${(P@)2}" "${(@)argv[__suf,-1]}" && __ret=0
 | |
|   fi
 | |
| done
 | |
| 
 | |
| return __ret
 |