v1ral_ITS

oh-my-zsh fuctions

Apr 9th, 2019
327
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 153.93 KB | None | 0 0
  1. _SUSEconfig () {
  2.     # undefined
  3.     builtin autoload -XUz
  4. }
  5. _a2ps () {
  6.     # undefined
  7.     builtin autoload -XUz
  8. }
  9. _a2utils () {
  10.     # undefined
  11.     builtin autoload -XUz
  12. }
  13. _aap () {
  14.     # undefined
  15.     builtin autoload -XUz
  16. }
  17. _absolute_command_paths () {
  18.     # undefined
  19.     builtin autoload -XUz
  20. }
  21. _ack () {
  22.     # undefined
  23.     builtin autoload -XUz
  24. }
  25. _acpi () {
  26.     # undefined
  27.     builtin autoload -XUz
  28. }
  29. _acpitool () {
  30.     # undefined
  31.     builtin autoload -XUz
  32. }
  33. _acroread () {
  34.     # undefined
  35.     builtin autoload -XUz
  36. }
  37. _adb () {
  38.     # undefined
  39.     builtin autoload -XUz
  40. }
  41. _add-zle-hook-widget () {
  42.     # undefined
  43.     builtin autoload -XUz
  44. }
  45. _add-zsh-hook () {
  46.     # undefined
  47.     builtin autoload -XUz
  48. }
  49. _alias () {
  50.     # undefined
  51.     builtin autoload -XUz
  52. }
  53. _aliases () {
  54.     # undefined
  55.     builtin autoload -XUz
  56. }
  57. _all_labels () {
  58.     local __gopt __len __tmp __pre __suf __ret=1 __descr __spec __prev
  59.     if [[ "$1" = - ]]
  60.     then
  61.         __prev=-
  62.         shift
  63.     fi
  64.     __gopt=()
  65.     zparseopts -D -a __gopt 1 2 V J x
  66.     __tmp=${argv[(ib:4:)-]}
  67.     __len=$#
  68.     if [[ __tmp -lt __len ]]
  69.     then
  70.         __pre=$(( __tmp-1 ))
  71.         __suf=$__tmp
  72.     elif [[ __tmp -eq $# ]]
  73.     then
  74.         __pre=-2
  75.         __suf=$(( __len+1 ))
  76.     else
  77.         __pre=4
  78.         __suf=5
  79.     fi
  80.     while comptags "-A$__prev" "$1" curtag __spec
  81.     do
  82.         (( $#funcstack > _tags_level )) && _comp_tags="${_comp_tags% * }"
  83.         _tags_level=$#funcstack
  84.         _comp_tags="$_comp_tags $__spec "
  85.         if [[ "$curtag" = *[^\\]:* ]]
  86.         then
  87.             zformat -f __descr "${curtag#*:}" "d:$3"
  88.             _description "$__gopt[@]" "${curtag%:*}" "$2" "$__descr"
  89.             curtag="${curtag%:*}"
  90.             "$4" "${(P@)2}" "${(@)argv[5,-1]}" && __ret=0
  91.         else
  92.             _description "$__gopt[@]" "$curtag" "$2" "$3"
  93.             "${(@)argv[4,__pre]}" "${(P@)2}" "${(@)argv[__suf,-1]}" && __ret=0
  94.         fi
  95.     done
  96.     return __ret
  97. }
  98. _all_matches () {
  99.     # undefined
  100.     builtin autoload -XUz
  101. }
  102. _alternative () {
  103.     local tags def expl descr action mesgs nm="$compstate[nmatches]" subopts
  104.     local opt ws curcontext="$curcontext"
  105.     subopts=()
  106.     while getopts 'O:C:' opt
  107.     do
  108.         case "$opt" in
  109.             (O) subopts=("${(@P)OPTARG}")  ;;
  110.             (C) curcontext="${curcontext%:*}:$OPTARG"  ;;
  111.         esac
  112.     done
  113.     shift OPTIND-1
  114.     [[ "$1" = -(|-) ]] && shift
  115.     mesgs=()
  116.     _tags "${(@)argv%%:*}"
  117.     while _tags
  118.     do
  119.         for def
  120.         do
  121.             if _requested "${def%%:*}"
  122.             then
  123.                 descr="${${def#*:}%%:*}"
  124.                 action="${def#*:*:}"
  125.                 _description "${def%%:*}" expl "$descr"
  126.                 if [[ "$action" = \ # ]]
  127.                 then
  128.                     mesgs=("$mesgs[@]" "${def%%:*}:$descr")
  129.                 elif [[ "$action" = \(\(*\)\) ]]
  130.                 then
  131.                     eval ws\=\( "${action[3,-3]}" \)
  132.                     _describe -t "${def%%:*}" "$descr" ws -M 'r:|[_-]=* r:|=*' "$subopts[@]"
  133.                 elif [[ "$action" = \(*\) ]]
  134.                 then
  135.                     eval ws\=\( "${action[2,-2]}" \)
  136.                     _all_labels "${def%%:*}" expl "$descr" compadd "$subopts[@]" -a - ws
  137.                 elif [[ "$action" = \{*\} ]]
  138.                 then
  139.                     while _next_label "${def%%:*}" expl "$descr"
  140.                     do
  141.                         eval "$action[2,-2]"
  142.                     done
  143.                 elif [[ "$action" = \ * ]]
  144.                 then
  145.                     eval "action=( $action )"
  146.                     while _next_label "${def%%:*}" expl "$descr"
  147.                     do
  148.                         "$action[@]"
  149.                     done
  150.                 else
  151.                     eval "action=( $action )"
  152.                     while _next_label "${def%%:*}" expl "$descr"
  153.                     do
  154.                         "$action[1]" "$subopts[@]" "$expl[@]" "${(@)action[2,-1]}"
  155.                     done
  156.                 fi
  157.             fi
  158.         done
  159.         [[ nm -ne compstate[nmatches] ]] && return 0
  160.     done
  161.     for descr in "$mesgs[@]"
  162.     do
  163.         _message -e "${descr%%:*}" "${descr#*:}"
  164.     done
  165.     return 1
  166. }
  167. _analyseplugin () {
  168.     # undefined
  169.     builtin autoload -XUz
  170. }
  171. _ansible () {
  172.     # undefined
  173.     builtin autoload -XUz
  174. }
  175. _ant () {
  176.     # undefined
  177.     builtin autoload -XUz
  178. }
  179. _antiword () {
  180.     # undefined
  181.     builtin autoload -XUz
  182. }
  183. _apachectl () {
  184.     # undefined
  185.     builtin autoload -XUz
  186. }
  187. _apm () {
  188.     # undefined
  189.     builtin autoload -XUz
  190. }
  191. _approximate () {
  192.     # undefined
  193.     builtin autoload -XUz
  194. }
  195. _apt () {
  196.     # undefined
  197.     builtin autoload -XUz
  198. }
  199. _apt-file () {
  200.     # undefined
  201.     builtin autoload -XUz
  202. }
  203. _apt-move () {
  204.     # undefined
  205.     builtin autoload -XUz
  206. }
  207. _apt-show-versions () {
  208.     # undefined
  209.     builtin autoload -XUz
  210. }
  211. _aptitude () {
  212.     # undefined
  213.     builtin autoload -XUz
  214. }
  215. _arch_archives () {
  216.     # undefined
  217.     builtin autoload -XUz
  218. }
  219. _arch_namespace () {
  220.     # undefined
  221.     builtin autoload -XUz
  222. }
  223. _arg_compile () {
  224.     # undefined
  225.     builtin autoload -XUz
  226. }
  227. _arguments () {
  228.     local long cmd="$words[1]" descr odescr mesg subopts opt opt2 usecc autod
  229.     local oldcontext="$curcontext" hasopts rawret optarg singopt alwopt
  230.     local setnormarg start rest
  231.     local -a match mbegin mend
  232.     subopts=()
  233.     singopt=()
  234.     while [[ "$1" = -([AMO]*|[CRSWnsw]) ]]
  235.     do
  236.         case "$1" in
  237.             (-C) usecc=yes
  238.                 shift ;;
  239.             (-O) subopts=("${(@P)2}")
  240.                 shift 2 ;;
  241.             (-O*) subopts=("${(@P)${1[3,-1]}}")
  242.                 shift ;;
  243.             (-R) rawret=yes
  244.                 shift ;;
  245.             (-n) setnormarg=yes
  246.                 NORMARG=-1
  247.                 shift ;;
  248.             (-w) optarg=yes
  249.                 shift ;;
  250.             (-W) alwopt=arg
  251.                 shift ;;
  252.             (-[Ss]) singopt+=($1)
  253.                 shift ;;
  254.             (-[AM]) singopt+=($1 $2)
  255.                 shift 2 ;;
  256.             (-[AM]*) singopt+=($1)
  257.                 shift ;;
  258.         esac
  259.     done
  260.     [[ $1 = ':' ]] && shift
  261.     singopt+=(':')
  262.     [[ "$PREFIX" = [-+] ]] && alwopt=arg
  263.     long=$argv[(I)--]
  264.     if (( long ))
  265.     then
  266.         local name tmp tmpargv
  267.         tmpargv=("${(@)argv[1,long-1]}")
  268.         name=${~words[1]}  2> /dev/null
  269.         [[ "$name" = [^/]*/* ]] && name="$PWD/$name"
  270.         name="_args_cache_${name}"
  271.         name="${name//[^a-zA-Z0-9_]/_}"
  272.         if (( ! ${(P)+name} ))
  273.         then
  274.             local iopts sopts lflag pattern tmpo dir cur cache
  275.             typeset -Ua lopts
  276.             cache=()
  277.             set -- "${(@)argv[long+1,-1]}"
  278.             iopts=()
  279.             sopts=()
  280.             while [[ "$1" = -[lis]* ]]
  281.             do
  282.                 if [[ "$1" = -l ]]
  283.                 then
  284.                     lflag='-l'
  285.                     shift
  286.                     continue
  287.                 fi
  288.                 if [[ "$1" = -??* ]]
  289.                 then
  290.                     tmp="${1[3,-1]}"
  291.                     cur=1
  292.                 else
  293.                     tmp="$2"
  294.                     cur=2
  295.                 fi
  296.                 if [[ "$tmp[1]" = '(' ]]
  297.                 then
  298.                     tmp=(${=tmp[2,-2]})
  299.                 else
  300.                     tmp=("${(@P)tmp}")
  301.                 fi
  302.                 if [[ "$1" = -i* ]]
  303.                 then
  304.                     iopts+=("$tmp[@]")
  305.                 else
  306.                     sopts+=("$tmp[@]")
  307.                 fi
  308.                 shift cur
  309.             done
  310.             tmp=()
  311.             _call_program $lflag options ${~words[1]} --help 2>&1 | while IFS= read -r opt
  312.             do
  313.                 if (( ${#tmp} ))
  314.                 then
  315.                     if [[ $opt = [[:space:]][[:space:]][[:space:]]*[[:alpha:]]* ]]
  316.                     then
  317.                         opt=${opt##[[:space:]]##}
  318.                         lopts+=("${^tmp[@]}":${${${opt//:/-}//\[/(}//\]/)})
  319.                         tmp=()
  320.                         continue
  321.                     else
  322.                         lopts+=("${^tmp[@]}":)
  323.                         tmp=()
  324.                     fi
  325.                 fi
  326.                 while [[ $opt = [,[:space:]]#(#b)(-[^,[:space:]]#)(*) ]]
  327.                 do
  328.                     start=${match[1]}
  329.                     rest=${match[2]}
  330.                     if [[ -z ${tmp[(r)${start%%[^a-zA-Z0-9_-]#}]} ]]
  331.                     then
  332.                         if [[ $start = (#b)(*)\[(*)\](*) ]]
  333.                         then
  334.                             tmp+=("${match[1]}${match[2]}${match[3]}" "${match[1]}${match[3]}")
  335.                         else
  336.                             tmp+=($start)
  337.                         fi
  338.                     fi
  339.                     opt=$rest
  340.                 done
  341.                 opt=${opt## [^[:space:]]##  }
  342.                 opt=${opt##[[:space:]]##}
  343.                 if [[ -n $opt ]]
  344.                 then
  345.                     lopts+=("${^tmp[@]}":${${${opt//:/-}//\[/(}//\]/)})
  346.                     tmp=()
  347.                 fi
  348.             done
  349.             if (( ${#tmp} ))
  350.             then
  351.                 lopts+=("${^tmp[@]}":)
  352.             fi
  353.             tmp=()
  354.             for opt in "${(@)${(@)lopts:#--}%%[\[:=]*}"
  355.             do
  356.                 let "$tmpargv[(I)(|\([^\)]#\))(|\*)${opt}(|[-+]|=(|-))(|\[*\])(|:*)]" || tmp+=("$lopts[(r)$opt(|[\[:=]*)]")
  357.             done
  358.             lopts=("$tmp[@]")
  359.             while (( $#iopts ))
  360.             do
  361.                 lopts=(${lopts:#$~iopts[1](|[\[:=]*)})
  362.                 shift iopts
  363.             done
  364.             while (( $#sopts ))
  365.             do
  366.                 lopts+=(${lopts/$~sopts[1]/$sopts[2]})
  367.                 shift 2 sopts
  368.             done
  369.             argv+=('*=FILE*:file:_files' '*=(DIR|PATH)*:directory:_files -/' '*=*:=: ' '*: :  ')
  370.             while (( $# ))
  371.             do
  372.                 pattern="${${${(M)1#*[^\\]:}[1,-2]}//\\\\:/:}"
  373.                 descr="${1#${pattern}}"
  374.                 if [[ "$pattern" = *\(-\) ]]
  375.                 then
  376.                     pattern="$pattern[1,-4]"
  377.                     dir=-
  378.                 else
  379.                     dir=
  380.                 fi
  381.                 shift
  382.                 tmp=("${(@M)lopts:##$~pattern:*}")
  383.                 lopts=("${(@)lopts:##$~pattern:*}")
  384.                 (( $#tmp )) || continue
  385.                 opt=''
  386.                 tmp=("${(@)tmp%:}")
  387.                 tmpo=("${(@M)tmp:#[^:]##\[\=*}")
  388.                 if (( $#tmpo ))
  389.                 then
  390.                     tmp=("${(@)tmp:#[^:]##\[\=*}")
  391.                     for opt in "$tmpo[@]"
  392.                     do
  393.                         if [[ $opt = (#b)(*):([^:]#) ]]
  394.                         then
  395.                             opt=$match[1]
  396.                             odescr="[${match[2]}]"
  397.                         else
  398.                             odescr=
  399.                         fi
  400.                         if [[ $opt = (#b)(*)\[\=* ]]
  401.                         then
  402.                             opt2=${${match[1]}//[^a-zA-Z0-9_-]}=-${dir}${odescr}
  403.                         else
  404.                             opt2=${${opt}//[^a-zA-Z0-9_-]}=${dir}${odescr}
  405.                         fi
  406.                         if [[ "$descr" = :\=* ]]
  407.                         then
  408.                             cache+=("${opt2}::${(L)${opt%\]}#*\=}: ")
  409.                         elif [[ "$descr" = ::* ]]
  410.                         then
  411.                             cache+=("${opt2}${descr}")
  412.                         else
  413.                             cache+=("${opt2}:${descr}")
  414.                         fi
  415.                     done
  416.                 fi
  417.                 tmpo=("${(@M)tmp:#[^:]##\=*}")
  418.                 if (( $#tmpo ))
  419.                 then
  420.                     tmp=("${(@)tmp:#[^:]##\=*}")
  421.                     for opt in "$tmpo[@]"
  422.                     do
  423.                         if [[ $opt = (#b)(*):([^:]#) ]]
  424.                         then
  425.                             opt=$match[1]
  426.                             odescr="[${match[2]}]"
  427.                         else
  428.                             odescr=
  429.                         fi
  430.                         opt2="${${opt%%\=*}//[^a-zA-Z0-9_-]}=${dir}${odescr}"
  431.                         if [[ "$descr" = :\=* ]]
  432.                         then
  433.                             cache+=("${opt2}:${(L)${opt%\]}#*\=}: ")
  434.                         else
  435.                             cache+=("${opt2}${descr}")
  436.                         fi
  437.                     done
  438.                 fi
  439.                 if (( $#tmp ))
  440.                 then
  441.                     tmp=("${(@)^${(@)tmp:#^*:*}//:/[}]" "${(@)${(@)tmp:#*:*}//[^a-zA-Z0-9_-]}")
  442.                     if [[ -n "$descr" && "$descr" != ': :  ' ]]
  443.                     then
  444.                         cache+=("${(@)^tmp}${descr}")
  445.                     else
  446.                         cache+=("$tmp[@]")
  447.                     fi
  448.                 fi
  449.             done
  450.             set -A "$name" "${(@)cache:# #}"
  451.         fi
  452.         set -- "$tmpargv[@]" "${(@P)name}"
  453.     fi
  454.     zstyle -s ":completion:${curcontext}:options" auto-description autod
  455.     if (( $# )) && comparguments -i "$autod" "$singopt[@]" "$@"
  456.     then
  457.         local action noargs aret expl local tried ret=1
  458.         local next direct odirect equal single matcher matched ws tmp1 tmp2 tmp3
  459.         local opts subc tc prefix suffix descrs actions subcs anum
  460.         local origpre="$PREFIX" origipre="$IPREFIX" nm="$compstate[nmatches]"
  461.         if comparguments -D descrs actions subcs
  462.         then
  463.             if comparguments -O next direct odirect equal
  464.             then
  465.                 opts=yes
  466.                 _tags "$subcs[@]" options
  467.             else
  468.                 _tags "$subcs[@]"
  469.             fi
  470.         else
  471.             if comparguments -a
  472.             then
  473.                 noargs='no more arguments'
  474.             else
  475.                 noargs='no arguments'
  476.             fi
  477.             if comparguments -O next direct odirect equal
  478.             then
  479.                 opts=yes
  480.                 _tags options
  481.             elif [[ $? -eq 2 ]]
  482.             then
  483.                 compadd -Q - "${PREFIX}${SUFFIX}"
  484.                 return 0
  485.             else
  486.                 _message "$noargs"
  487.                 return 1
  488.             fi
  489.         fi
  490.         comparguments -M matcher
  491.         context=()
  492.         state=()
  493.         state_descr=()
  494.         while true
  495.         do
  496.             while _tags
  497.             do
  498.                 anum=1
  499.                 if [[ -z "$tried" ]]
  500.                 then
  501.                     while [[ anum -le $#descrs ]]
  502.                     do
  503.                         action="$actions[anum]"
  504.                         descr="$descrs[anum]"
  505.                         subc="$subcs[anum++]"
  506.                         if [[ $subc = argument* && -n $setnormarg ]]
  507.                         then
  508.                             comparguments -n NORMARG
  509.                         fi
  510.                         if [[ -n "$matched" ]] || _requested "$subc"
  511.                         then
  512.                             curcontext="${oldcontext%:*}:$subc"
  513.                             _description "$subc" expl "$descr"
  514.                             if [[ "$action" = \=\ * ]]
  515.                             then
  516.                                 action="$action[3,-1]"
  517.                                 words=("$subc" "$words[@]")
  518.                                 (( CURRENT++ ))
  519.                             fi
  520.                             if [[ "$action" = -\>* ]]
  521.                             then
  522.                                 action="${${action[3,-1]##[     ]#}%%[  ]#}"
  523.                                 if (( ! $state[(I)$action] ))
  524.                                 then
  525.                                     comparguments -W line opt_args
  526.                                     state+=("$action")
  527.                                     state_descr+=("$descr")
  528.                                     if [[ -n "$usecc" ]]
  529.                                     then
  530.                                         curcontext="${oldcontext%:*}:$subc"
  531.                                     else
  532.                                         context+=("$subc")
  533.                                     fi
  534.                                     compstate[restore]=''
  535.                                     aret=yes
  536.                                 fi
  537.                             else
  538.                                 if [[ -z "$local" ]]
  539.                                 then
  540.                                     local line
  541.                                     typeset -A opt_args
  542.                                     local=yes
  543.                                 fi
  544.                                 comparguments -W line opt_args
  545.                                 if [[ "$action" = \ # ]]
  546.                                 then
  547.                                     _message -e "$subc" "$descr"
  548.                                     mesg=yes
  549.                                     tried=yes
  550.                                     alwopt=${alwopt:-yes}
  551.                                 elif [[ "$action" = \(\(*\)\) ]]
  552.                                 then
  553.                                     eval ws\=\( "${action[3,-3]}" \)
  554.                                     _describe -t "$subc" "$descr" ws -M "$matcher" "$subopts[@]" || alwopt=${alwopt:-yes}
  555.                                     tried=yes
  556.                                 elif [[ "$action" = \(*\) ]]
  557.                                 then
  558.                                     eval ws\=\( "${action[2,-2]}" \)
  559.                                     _all_labels "$subc" expl "$descr" compadd "$subopts[@]" -a - ws || alwopt=${alwopt:-yes}
  560.                                     tried=yes
  561.                                 elif [[ "$action" = \{*\} ]]
  562.                                 then
  563.                                     while _next_label "$subc" expl "$descr"
  564.                                     do
  565.                                         eval "$action[2,-2]" && ret=0
  566.                                     done
  567.                                     (( ret )) && alwopt=${alwopt:-yes}
  568.                                     tried=yes
  569.                                 elif [[ "$action" = \ * ]]
  570.                                 then
  571.                                     eval "action=( $action )"
  572.                                     while _next_label "$subc" expl "$descr"
  573.                                     do
  574.                                         "$action[@]" && ret=0
  575.                                     done
  576.                                     (( ret )) && alwopt=${alwopt:-yes}
  577.                                     tried=yes
  578.                                 else
  579.                                     eval "action=( $action )"
  580.                                     while _next_label "$subc" expl "$descr"
  581.                                     do
  582.                                         "$action[1]" "$subopts[@]" "$expl[@]" "${(@)action[2,-1]}" && ret=0
  583.                                     done
  584.                                     (( ret )) && alwopt=${alwopt:-yes}
  585.                                     tried=yes
  586.                                 fi
  587.                             fi
  588.                         fi
  589.                     done
  590.                 fi
  591.                 if _requested options && [[ -z "$hasopts" && -z "$matched" && ( -z "$aret" || "$PREFIX" = "$origpre" ) ]] && {
  592.                         ! zstyle -T ":completion:${oldcontext%:*}:options" prefix-needed || [[ "$origpre" = [-+]* || -z "$aret$mesg$tried" ]]
  593.                     }
  594.                 then
  595.                     local prevpre="$PREFIX" previpre="$IPREFIX" prevcontext="$curcontext"
  596.                     curcontext="${oldcontext%:*}:options"
  597.                     hasopts=yes
  598.                     PREFIX="$origpre"
  599.                     IPREFIX="$origipre"
  600.                     if [[ -z "$alwopt" || -z "$tried" || "$alwopt" = arg ]] && comparguments -s single
  601.                     then
  602.                         if [[ "$single" = direct ]]
  603.                         then
  604.                             _all_labels options expl option compadd -QS '' - "${PREFIX}${SUFFIX}"
  605.                         elif [[ -z "$optarg" && "$single" = next ]]
  606.                         then
  607.                             _all_labels options expl option compadd -Q - "${PREFIX}${SUFFIX}"
  608.                         elif [[ "$single" = equal ]]
  609.                         then
  610.                             _all_labels options expl option compadd -QqS= - "${PREFIX}${SUFFIX}"
  611.                         else
  612.                             tmp1=("$next[@]" "$direct[@]" "$odirect[@]" "$equal[@]")
  613.                             [[ "$PREFIX" = [-+]* ]] && tmp1=("${(@M)tmp1:#${PREFIX[1]}*}")
  614.                             [[ "$single" = next ]] && tmp1=("${(@)tmp1:#[-+]${PREFIX[-1]}((#e)|:*)}")
  615.                             [[ "$PREFIX" != --* ]] && tmp1=("${(@)tmp1:#--*}")
  616.                             tmp3=("${(M@)tmp1:#[-+]?[^:]*}")
  617.                             tmp1=("${(M@)tmp1:#[-+]?(|:*)}")
  618.                             tmp2=("${PREFIX}${(@M)^${(@)${(@)tmp1%%:*}#[-+]}:#?}")
  619.                             _describe -O option tmp1 tmp2 -Q -S '' -- tmp3 -Q
  620.                             [[ -n "$optarg" && "$single" = next && nm -eq $compstate[nmatches] ]] && _all_labels options expl option compadd -Q - "${PREFIX}${SUFFIX}"
  621.                         fi
  622.                         single=yes
  623.                     else
  624.                         next+=("$odirect[@]")
  625.                         _describe -O option next -Q -M "$matcher" -- direct -QS '' -M "$matcher" -- equal -QqS= -M "$matcher"
  626.                     fi
  627.                     PREFIX="$prevpre"
  628.                     IPREFIX="$previpre"
  629.                     curcontext="$prevcontext"
  630.                 fi
  631.                 [[ -n "$tried" && "${${alwopt:+$origpre}:-$PREFIX}" != [-+]* ]] && break
  632.             done
  633.             if [[ -n "$opts" && -z "$aret" && -z "$matched" && ( -z "$tried" || -n "$alwopt" ) && nm -eq compstate[nmatches] ]]
  634.             then
  635.                 PREFIX="$origpre"
  636.                 IPREFIX="$origipre"
  637.                 prefix="${PREFIX#*\=}"
  638.                 suffix="$SUFFIX"
  639.                 PREFIX="${PREFIX%%\=*}"
  640.                 SUFFIX=''
  641.                 compadd -M "$matcher" -D equal - "${(@)equal%%:*}"
  642.                 if [[ $#equal -eq 1 ]]
  643.                 then
  644.                     PREFIX="$prefix"
  645.                     SUFFIX="$suffix"
  646.                     IPREFIX="${IPREFIX}${equal[1]%%:*}="
  647.                     matched=yes
  648.                     comparguments -L "${equal[1]%%:*}" descrs actions subcs
  649.                     _tags "$subcs[@]"
  650.                     continue
  651.                 fi
  652.             fi
  653.             break
  654.         done
  655.         [[ -z "$aret" || -z "$usecc" ]] && curcontext="$oldcontext"
  656.         if [[ -n "$aret" ]]
  657.         then
  658.             [[ -n $rawret ]] && return 300
  659.         else
  660.             [[ -n "$noargs" && nm -eq "$compstate[nmatches]" ]] && _message "$noargs"
  661.         fi
  662.         [[ nm -ne "$compstate[nmatches]" ]]
  663.     else
  664.         return 1
  665.     fi
  666. }
  667. _arp () {
  668.     # undefined
  669.     builtin autoload -XUz
  670. }
  671. _arping () {
  672.     # undefined
  673.     builtin autoload -XUz
  674. }
  675. _arrays () {
  676.     # undefined
  677.     builtin autoload -XUz
  678. }
  679. _asciidoctor () {
  680.     # undefined
  681.     builtin autoload -XUz
  682. }
  683. _asciinema () {
  684.     # undefined
  685.     builtin autoload -XUz
  686. }
  687. _assign () {
  688.     # undefined
  689.     builtin autoload -XUz
  690. }
  691. _at () {
  692.     # undefined
  693.     builtin autoload -XUz
  694. }
  695. _attr () {
  696.     # undefined
  697.     builtin autoload -XUz
  698. }
  699. _augeas () {
  700.     # undefined
  701.     builtin autoload -XUz
  702. }
  703. _auto-apt () {
  704.     # undefined
  705.     builtin autoload -XUz
  706. }
  707. _autocd () {
  708.     _command_names
  709.     local ret=$?
  710.     [[ -o autocd ]] && _cd || return ret
  711. }
  712. _awk () {
  713.     # undefined
  714.     builtin autoload -XUz
  715. }
  716. _axi-cache () {
  717.     # undefined
  718.     builtin autoload -XUz
  719. }
  720. _base64 () {
  721.     # undefined
  722.     builtin autoload -XUz
  723. }
  724. _basename () {
  725.     # undefined
  726.     builtin autoload -XUz
  727. }
  728. _bash () {
  729.     # undefined
  730.     builtin autoload -XUz
  731. }
  732. _bash_completions () {
  733.     # undefined
  734.     builtin autoload -XUz
  735. }
  736. _baudrates () {
  737.     # undefined
  738.     builtin autoload -XUz
  739. }
  740. _baz () {
  741.     # undefined
  742.     builtin autoload -XUz
  743. }
  744. _be_name () {
  745.     # undefined
  746.     builtin autoload -XUz
  747. }
  748. _beadm () {
  749.     # undefined
  750.     builtin autoload -XUz
  751. }
  752. _beep () {
  753.     # undefined
  754.     builtin autoload -XUz
  755. }
  756. _bibtex () {
  757.     # undefined
  758.     builtin autoload -XUz
  759. }
  760. _bind_addresses () {
  761.     # undefined
  762.     builtin autoload -XUz
  763. }
  764. _bindkey () {
  765.     # undefined
  766.     builtin autoload -XUz
  767. }
  768. _bison () {
  769.     # undefined
  770.     builtin autoload -XUz
  771. }
  772. _bittorrent () {
  773.     # undefined
  774.     builtin autoload -XUz
  775. }
  776. _bogofilter () {
  777.     # undefined
  778.     builtin autoload -XUz
  779. }
  780. _bpf_filters () {
  781.     # undefined
  782.     builtin autoload -XUz
  783. }
  784. _bpython () {
  785.     # undefined
  786.     builtin autoload -XUz
  787. }
  788. _brace_parameter () {
  789.     # undefined
  790.     builtin autoload -XUz
  791. }
  792. _brctl () {
  793.     # undefined
  794.     builtin autoload -XUz
  795. }
  796. _bsd_pkg () {
  797.     # undefined
  798.     builtin autoload -XUz
  799. }
  800. _bsdconfig () {
  801.     # undefined
  802.     builtin autoload -XUz
  803. }
  804. _bsdinstall () {
  805.     # undefined
  806.     builtin autoload -XUz
  807. }
  808. _btrfs () {
  809.     # undefined
  810.     builtin autoload -XUz
  811. }
  812. _bts () {
  813.     # undefined
  814.     builtin autoload -XUz
  815. }
  816. _bug () {
  817.     # undefined
  818.     builtin autoload -XUz
  819. }
  820. _builtin () {
  821.     # undefined
  822.     builtin autoload -XUz
  823. }
  824. _bzip2 () {
  825.     # undefined
  826.     builtin autoload -XUz
  827. }
  828. _bzr () {
  829.     # undefined
  830.     builtin autoload -XUz
  831. }
  832. _cabal () {
  833.     # undefined
  834.     builtin autoload -XUz
  835. }
  836. _cache_invalid () {
  837.     # undefined
  838.     builtin autoload -XUz
  839. }
  840. _caffeinate () {
  841.     # undefined
  842.     builtin autoload -XUz
  843. }
  844. _cal () {
  845.     # undefined
  846.     builtin autoload -XUz
  847. }
  848. _calendar () {
  849.     # undefined
  850.     builtin autoload -XUz
  851. }
  852. _call_function () {
  853.     # undefined
  854.     builtin autoload -XUz
  855. }
  856. _call_program () {
  857.     local curcontext="${curcontext}" tmp err_fd=-1 clocale='_comp_locale;'
  858.     local -a prefix
  859.     if [[ "$1" = -p ]]
  860.     then
  861.         shift
  862.         if (( $#_comp_priv_prefix ))
  863.         then
  864.             curcontext="${curcontext%:*}/${${(@M)_comp_priv_prefix:#^*[^\\]=*}[1]}:"
  865.             zstyle -t ":completion:${curcontext}:${1}" gain-privileges && prefix=($_comp_priv_prefix)
  866.         fi
  867.     elif [[ "$1" = -l ]]
  868.     then
  869.         shift
  870.         clocale=''
  871.     fi
  872.     if (( ${debug_fd:--1} > 2 )) || [[ ! -t 2 ]]
  873.     then
  874.         exec {err_fd}>&2
  875.     else
  876.         exec {err_fd}> /dev/null
  877.     fi
  878.     {
  879.         if zstyle -s ":completion:${curcontext}:${1}" command tmp
  880.         then
  881.             if [[ "$tmp" = -* ]]
  882.             then
  883.                 eval $clocale "$tmp[2,-1]" "$argv[2,-1]"
  884.             else
  885.                 eval $clocale $prefix "$tmp"
  886.             fi
  887.         else
  888.             eval $clocale $prefix "$argv[2,-1]"
  889.         fi 2>&$err_fd
  890.     } always {
  891.         exec {err_fd}>&-
  892.     }
  893. }
  894. _call_whatis () {
  895.     case "$(whatis --version)" in
  896.         ("whatis from "*) local -A args
  897.             zparseopts -D -A args s: r:
  898.             apropos "${args[-r]:-"$@"}" | fgrep "($args[-s]" ;;
  899.         (*) whatis "$@" ;;
  900.     esac
  901. }
  902. _canonical_paths () {
  903.     # undefined
  904.     builtin autoload -XUz
  905. }
  906. _cat () {
  907.     local -a args
  908.     if _pick_variant gnu=GNU unix --version
  909.     then
  910.         args=('(-A --show-all)'{-A,--show-all}'[equivalent to -vET]' '(-b --number-nonblank -n --number)'{-b,--number-nonblank}'[number nonempty output lines, overrides -n]' '-e[equivalent to -vE]' '(-E --show-ends)'{-E,--show-ends}'[display $ at end of each line]' '(-n --number)'{-n,--number}'[number all output lines]' '(-s --squeeze-blank)'{-s,--squeeze-blank}'[suppress repeated empty output lines]' '-t[equivalent to -vT]' '(-T --show-tabs)'{-T,--show-tabs}'[display TAB characters as ^I]' '-u[ignored]' '(-v --show-nonprinting)'{-v,--show-nonprinting}'[use ^ and M- notation, except for LFD and TAB]' '(- : *)--help[display help and exit]' '(- : *)--version[output version information and exit]' '*: :_files')
  911.     elif [[ "$OSTYPE" == (*bsd|dragonfly|darwin)* ]]
  912.     then
  913.         args=(-A "-*" '(-n)-b[number non-blank output lines]' '(-v)-e[display $ at the end of each line (implies -v)]' '-n[number all output lines]' '-s[squeeze multiple blank lines into one]' '(-v)-t[display tab as ^I (implies -v)]' '-u[do not buffer output]' '-v[display non-printing chars as ^X or M-a]' '*: :_files')
  914.         [[ $OSTYPE = (free|net)bsd* ]] && args+=('-l[set a lock on the stdout file descriptor]')
  915.         [[ $OSTYPE = netbsd* ]] && args+=('-B+[read with buffer of specified size]:size (bytes)' '-f[only attempt to display regular files]')
  916.     elif [[ $OSTYPE = solaris* ]]
  917.     then
  918.         args=(-A "-*" '(-b)-n[number all output lines]' '(-n)-b[number non-blank output lines]' "-u[don't buffer output]" '-s[be silent about non-existent files]' '-v[display non-printing chars as ^X or M-a]' '-e[display $ at the end of each line (requires -v)]' '-t[display tab as ^I and formfeeds and ^L (requires -v)]' '*: :_files')
  919.     else
  920.         args=('-n[number all output lines]' '-u[do not buffer output]' '*: :_files')
  921.     fi
  922.     _arguments -s -S $args
  923. }
  924. _ccal () {
  925.     # undefined
  926.     builtin autoload -XUz
  927. }
  928. _cd () {
  929.     _cd_options () {
  930.         _arguments -s '-q[quiet, no output or use of hooks]' '-s[refuse to use paths with symlinks]' '(-P)-L[retain symbolic links ignoring CHASE_LINKS]' '(-L)-P[resolve symbolic links as CHASE_LINKS]'
  931.     }
  932.     setopt localoptions nonomatch
  933.     local expl ret=1 curarg
  934.     integer argstart=2 noopts match mbegin mend
  935.     if (( CURRENT > 1 ))
  936.     then
  937.         while [[ $words[$argstart] = -* && argstart -lt CURRENT ]]
  938.         do
  939.             curarg=$words[$argstart]
  940.             [[ $curarg = -<-> ]] && break
  941.             (( argstart++ ))
  942.             [[ $curarg = -- ]] && noopts=1  && break
  943.         done
  944.     fi
  945.     if [[ CURRENT -eq $((argstart+1)) ]]
  946.     then
  947.         local rep
  948.         rep=(${~PWD/$words[$argstart]/*}~$PWD(-/))
  949.         rep=(${${rep#${PWD%%$words[$argstart]*}}%${PWD#*$words[$argstart]}})
  950.         (( $#rep )) && _wanted -C replacement strings expl replacement compadd -a rep
  951.     else
  952.         if [[ "$PREFIX" == (#b)(\~|)[^/]# && ( -n "$match[1]" || ( CURRENT -gt 1 && ! -o cdablevars ) ) ]]
  953.         then
  954.             _directory_stack && ret=0
  955.         fi
  956.         local -a tmpWpath
  957.         if [[ $PREFIX = (|*/)../* ]]
  958.         then
  959.             local tmpprefix
  960.             tmpprefix=$(cd ${PREFIX%/*} >&/dev/null && print $PWD)
  961.             if [[ -n $tmpprefix ]]
  962.             then
  963.                 tmpWpath=(-W $tmpprefix)
  964.                 IPREFIX=${IPREFIX}${PREFIX%/*}/
  965.                 PREFIX=${PREFIX##*/}
  966.             fi
  967.         fi
  968.         if [[ $PREFIX != (\~|/|./|../)* && $IPREFIX != ../* ]]
  969.         then
  970.             local tmpcdpath alt
  971.             alt=()
  972.             tmpcdpath=(${${(@)cdpath:#.}:#$PWD})
  973.             (( $#tmpcdpath )) && alt=('path-directories:directory in cdpath:_path_files -W tmpcdpath -/')
  974.             if [[ -o cdablevars && -n "$PREFIX" && "$PREFIX" != <-> ]]
  975.             then
  976.                 if [[ "$PREFIX" != */* ]]
  977.                 then
  978.                     alt=("$alt[@]" 'named-directories: : _tilde')
  979.                 else
  980.                     local oipre="$IPREFIX" opre="$PREFIX" dirpre dir
  981.                     dirpre="${PREFIX%%/*}/"
  982.                     IPREFIX="$IPREFIX$dirpre"
  983.                     eval "dir=( ~$dirpre )"
  984.                     PREFIX="${PREFIX#*/}"
  985.                     [[ $#dir -eq 1 && "$dir[1]" != "~$dirpre" ]] && _wanted named-directories expl 'directory after cdablevar' _path_files -W dir -/ && ret=0
  986.                     PREFIX="$opre"
  987.                     IPREFIX="$oipre"
  988.                 fi
  989.             fi
  990.             [[ CURRENT -ne 1 || ( -z "$path[(r).]" && $PREFIX != */* ) ]] && alt=("${cdpath+local-}directories:${cdpath+local }directory:_path_files ${(j: :)${(@q)tmpWpath}} -/" "$alt[@]")
  991.             if [[ CURRENT -eq argstart && noopts -eq 0 && $PREFIX = -* ]] && zstyle -t ":completion:${curcontext}:options" complete-options
  992.             then
  993.                 alt=("$service-options:$service option:_cd_options" "$alt[@]")
  994.             fi
  995.             _alternative "$alt[@]" && ret=0
  996.             return ret
  997.         fi
  998.         [[ CURRENT -ne 1 ]] && _wanted directories expl directory _path_files $tmpWpath -/ && ret=0
  999.         return ret
  1000.     fi
  1001. }
  1002. _cd_options () {
  1003.     _arguments -s '-q[quiet, no output or use of hooks]' '-s[refuse to use paths with symlinks]' '(-P)-L[retain symbolic links ignoring CHASE_LINKS]' '(-L)-P[resolve symbolic links as CHASE_LINKS]'
  1004. }
  1005. _cdbs-edit-patch () {
  1006.     # undefined
  1007.     builtin autoload -XUz
  1008. }
  1009. _cdcd () {
  1010.     # undefined
  1011.     builtin autoload -XUz
  1012. }
  1013. _cdr () {
  1014.     # undefined
  1015.     builtin autoload -XUz
  1016. }
  1017. _cdrdao () {
  1018.     # undefined
  1019.     builtin autoload -XUz
  1020. }
  1021. _cdrecord () {
  1022.     # undefined
  1023.     builtin autoload -XUz
  1024. }
  1025. _chattr () {
  1026.     # undefined
  1027.     builtin autoload -XUz
  1028. }
  1029. _chflags () {
  1030.     # undefined
  1031.     builtin autoload -XUz
  1032. }
  1033. _chkconfig () {
  1034.     # undefined
  1035.     builtin autoload -XUz
  1036. }
  1037. _chmod () {
  1038.     # undefined
  1039.     builtin autoload -XUz
  1040. }
  1041. _chown () {
  1042.     # undefined
  1043.     builtin autoload -XUz
  1044. }
  1045. _chroot () {
  1046.     # undefined
  1047.     builtin autoload -XUz
  1048. }
  1049. _chrt () {
  1050.     # undefined
  1051.     builtin autoload -XUz
  1052. }
  1053. _chsh () {
  1054.     # undefined
  1055.     builtin autoload -XUz
  1056. }
  1057. _cksum () {
  1058.     # undefined
  1059.     builtin autoload -XUz
  1060. }
  1061. _clay () {
  1062.     # undefined
  1063.     builtin autoload -XUz
  1064. }
  1065. _cmdambivalent () {
  1066.     # undefined
  1067.     builtin autoload -XUz
  1068. }
  1069. _cmdstring () {
  1070.     # undefined
  1071.     builtin autoload -XUz
  1072. }
  1073. _cmp () {
  1074.     # undefined
  1075.     builtin autoload -XUz
  1076. }
  1077. _code () {
  1078.     # undefined
  1079.     builtin autoload -XUz
  1080. }
  1081. _column () {
  1082.     # undefined
  1083.     builtin autoload -XUz
  1084. }
  1085. _combination () {
  1086.     # undefined
  1087.     builtin autoload -XUz
  1088. }
  1089. _comm () {
  1090.     # undefined
  1091.     builtin autoload -XUz
  1092. }
  1093. _command () {
  1094.     # undefined
  1095.     builtin autoload -XUz
  1096. }
  1097. _command_names () {
  1098.     local args defs ffilt
  1099.     zstyle -t ":completion:${curcontext}:commands" rehash && rehash
  1100.     zstyle -t ":completion:${curcontext}:functions" prefix-needed && [[ $PREFIX != [_.]* ]] && ffilt='[(I)[^_.]*]'
  1101.     defs=('commands:external command:_path_commands')
  1102.     [[ -n "$path[(r).]" || $PREFIX = */* ]] && defs+=('executables:executable file:_files -g \*\(-\*\)')
  1103.     if [[ "$1" = -e ]]
  1104.     then
  1105.         shift
  1106.     else
  1107.         [[ "$1" = - ]] && shift
  1108.         defs=("$defs[@]" 'builtins:builtin command:compadd -Qk builtins' "functions:shell function:compadd -k 'functions$ffilt'" 'aliases:alias:compadd -Qk aliases' 'suffix-aliases:suffix alias:_suffix_alias_files' 'reserved-words:reserved word:compadd -Qk reswords' 'jobs:: _jobs -t' 'parameters:: _parameters -g "^*(readonly|association)*" -qS= -r "\n\t\- =[+"' 'parameters:: _parameters -g "*association*~*readonly*" -qS\[ -r "\n\t\- =[+"')
  1109.     fi
  1110.     args=("$@")
  1111.     local -a cmdpath
  1112.     if zstyle -a ":completion:${curcontext}" command-path cmdpath && [[ $#cmdpath -gt 0 ]]
  1113.     then
  1114.         local -a +h path
  1115.         local -A +h commands
  1116.         path=($cmdpath)
  1117.     fi
  1118.     _alternative -O args "$defs[@]"
  1119. }
  1120. _comp_locale () {
  1121.     # undefined
  1122.     builtin autoload -XUz
  1123. }
  1124. _compadd () {
  1125.     # undefined
  1126.     builtin autoload -XUz
  1127. }
  1128. _compdef () {
  1129.     # undefined
  1130.     builtin autoload -XUz
  1131. }
  1132. _complete () {
  1133.     local comp name oldcontext ret=1 service
  1134.     typeset -T curcontext="$curcontext" ccarray
  1135.     oldcontext="$curcontext"
  1136.     if [[ -n "$compcontext" ]]
  1137.     then
  1138.         if [[ "${(t)compcontext}" = *array* ]]
  1139.         then
  1140.             local expl
  1141.             _wanted values expl value compadd -a - compcontext
  1142.         elif [[ "${(t)compcontext}" = *assoc* ]]
  1143.         then
  1144.             local expl tmp i
  1145.             tmp=()
  1146.             for i in "${(@k)compcontext[(R)*[^[:blank:]]]}"
  1147.             do
  1148.                 tmp=("$tmp[@]" "${i}:${compcontext[$i]}")
  1149.             done
  1150.             tmp=("$tmp[@]" "${(k@)compcontext[(R)[[:blank:]]#]}")
  1151.             _describe -t values value tmp
  1152.         elif [[ "$compcontext" = *:*:* ]]
  1153.         then
  1154.             local tag="${${compcontext%%:*}:-values}"
  1155.             local descr="${${${compcontext#${tag}:}%%:*}:-value}"
  1156.             local action="${compcontext#${tag}:${descr}:}" expl ws ret=1
  1157.             case "$action" in
  1158.                 (\ #) _message -e "$tag" "$descr" ;;
  1159.                 (\(\(*\)\)) eval ws\=\( "${action[3,-3]}" \)
  1160.                     _describe -t "$tag" "$descr" ws ;;
  1161.                 (\(*\)) eval ws\=\( "${action[2,-2]}" \)
  1162.                     _wanted "$tag" expl "$descr" compadd -a - ws ;;
  1163.                 (\{*\}) _tags "$tag"
  1164.                     while _tags
  1165.                     do
  1166.                         while _next_label "$tag" expl "$descr"
  1167.                         do
  1168.                             eval "$action[2,-2]" && ret=0
  1169.                         done
  1170.                         (( ret )) || break
  1171.                     done ;;
  1172.                 (\ *) eval ws\=\( "$action" \)
  1173.                     _tags "$tag"
  1174.                     while _tags
  1175.                     do
  1176.                         while _next_label "$tag" expl "$descr"
  1177.                         do
  1178.                             "$ws[@]"
  1179.                         done
  1180.                         (( ret )) || break
  1181.                     done ;;
  1182.                 (*) eval ws\=\( "$action" \)
  1183.                     _tags "$tag"
  1184.                     while _tags
  1185.                     do
  1186.                         while _next_label "$tag" expl "$descr"
  1187.                         do
  1188.                             "$ws[1]" "$expl[@]" "${(@)ws[2,-1]}"
  1189.                         done
  1190.                         (( ret )) || break
  1191.                     done ;;
  1192.             esac
  1193.         else
  1194.             ccarray[3]="$compcontext"
  1195.             comp="$_comps[$compcontext]"
  1196.             [[ -n "$comp" ]] && eval "$comp"
  1197.         fi
  1198.         return
  1199.     fi
  1200.     comp="$_comps[-first-]"
  1201.     if [[ -n "$comp" ]]
  1202.     then
  1203.         service="${_services[-first-]:--first-}"
  1204.         ccarray[3]=-first-
  1205.         eval "$comp" && ret=0
  1206.         if [[ "$_compskip" = all ]]
  1207.         then
  1208.             _compskip=
  1209.             return ret
  1210.         fi
  1211.     fi
  1212.     [[ -n $compstate[vared] ]] && compstate[context]=vared
  1213.     ret=1
  1214.     if [[ "$compstate[context]" = command ]]
  1215.     then
  1216.         curcontext="$oldcontext"
  1217.         _normal -s && ret=0
  1218.     else
  1219.         local cname="-${compstate[context]:s/_/-/}-"
  1220.         ccarray[3]="$cname"
  1221.         comp="$_comps[$cname]"
  1222.         service="${_services[$cname]:-$cname}"
  1223.         if [[ -z "$comp" ]]
  1224.         then
  1225.             if [[ "$_compskip" = *default* ]]
  1226.             then
  1227.                 _compskip=
  1228.                 return 1
  1229.             fi
  1230.             comp="$_comps[-default-]"
  1231.             service="${_services[-default-]:--default-}"
  1232.         fi
  1233.         [[ -n "$comp" ]] && eval "$comp" && ret=0
  1234.     fi
  1235.     _compskip=
  1236.     return ret
  1237. }
  1238. _complete_debug () {
  1239.     # undefined
  1240.     builtin autoload -XUz
  1241. }
  1242. _complete_help () {
  1243.     # undefined
  1244.     builtin autoload -XUz
  1245. }
  1246. _complete_help_generic () {
  1247.     # undefined
  1248.     builtin autoload -XUz
  1249. }
  1250. _complete_tag () {
  1251.     # undefined
  1252.     builtin autoload -XUz
  1253. }
  1254. _completers () {
  1255.     # undefined
  1256.     builtin autoload -XUz
  1257. }
  1258. _composer () {
  1259.     # undefined
  1260.     builtin autoload -XUz
  1261. }
  1262. _compress () {
  1263.     # undefined
  1264.     builtin autoload -XUz
  1265. }
  1266. _condition () {
  1267.     # undefined
  1268.     builtin autoload -XUz
  1269. }
  1270. _configure () {
  1271.     # undefined
  1272.     builtin autoload -XUz
  1273. }
  1274. _coreadm () {
  1275.     # undefined
  1276.     builtin autoload -XUz
  1277. }
  1278. _correct () {
  1279.     # undefined
  1280.     builtin autoload -XUz
  1281. }
  1282. _correct_filename () {
  1283.     # undefined
  1284.     builtin autoload -XUz
  1285. }
  1286. _correct_word () {
  1287.     # undefined
  1288.     builtin autoload -XUz
  1289. }
  1290. _cowsay () {
  1291.     # undefined
  1292.     builtin autoload -XUz
  1293. }
  1294. _cp () {
  1295.     # undefined
  1296.     builtin autoload -XUz
  1297. }
  1298. _cpio () {
  1299.     # undefined
  1300.     builtin autoload -XUz
  1301. }
  1302. _cplay () {
  1303.     # undefined
  1304.     builtin autoload -XUz
  1305. }
  1306. _cpupower () {
  1307.     # undefined
  1308.     builtin autoload -XUz
  1309. }
  1310. _crontab () {
  1311.     # undefined
  1312.     builtin autoload -XUz
  1313. }
  1314. _cryptsetup () {
  1315.     # undefined
  1316.     builtin autoload -XUz
  1317. }
  1318. _cscope () {
  1319.     # undefined
  1320.     builtin autoload -XUz
  1321. }
  1322. _cssh () {
  1323.     # undefined
  1324.     builtin autoload -XUz
  1325. }
  1326. _csup () {
  1327.     # undefined
  1328.     builtin autoload -XUz
  1329. }
  1330. _ctags_tags () {
  1331.     # undefined
  1332.     builtin autoload -XUz
  1333. }
  1334. _cu () {
  1335.     # undefined
  1336.     builtin autoload -XUz
  1337. }
  1338. _curl () {
  1339.     # undefined
  1340.     builtin autoload -XUz
  1341. }
  1342. _cut () {
  1343.     # undefined
  1344.     builtin autoload -XUz
  1345. }
  1346. _cvs () {
  1347.     # undefined
  1348.     builtin autoload -XUz
  1349. }
  1350. _cvsup () {
  1351.     # undefined
  1352.     builtin autoload -XUz
  1353. }
  1354. _cygcheck () {
  1355.     # undefined
  1356.     builtin autoload -XUz
  1357. }
  1358. _cygpath () {
  1359.     # undefined
  1360.     builtin autoload -XUz
  1361. }
  1362. _cygrunsrv () {
  1363.     # undefined
  1364.     builtin autoload -XUz
  1365. }
  1366. _cygserver () {
  1367.     # undefined
  1368.     builtin autoload -XUz
  1369. }
  1370. _cygstart () {
  1371.     # undefined
  1372.     builtin autoload -XUz
  1373. }
  1374. _dak () {
  1375.     # undefined
  1376.     builtin autoload -XUz
  1377. }
  1378. _darcs () {
  1379.     # undefined
  1380.     builtin autoload -XUz
  1381. }
  1382. _date () {
  1383.     # undefined
  1384.     builtin autoload -XUz
  1385. }
  1386. _date_formats () {
  1387.     # undefined
  1388.     builtin autoload -XUz
  1389. }
  1390. _dates () {
  1391.     # undefined
  1392.     builtin autoload -XUz
  1393. }
  1394. _dbus () {
  1395.     # undefined
  1396.     builtin autoload -XUz
  1397. }
  1398. _dchroot () {
  1399.     # undefined
  1400.     builtin autoload -XUz
  1401. }
  1402. _dchroot-dsa () {
  1403.     # undefined
  1404.     builtin autoload -XUz
  1405. }
  1406. _dconf () {
  1407.     # undefined
  1408.     builtin autoload -XUz
  1409. }
  1410. _dcop () {
  1411.     # undefined
  1412.     builtin autoload -XUz
  1413. }
  1414. _dcut () {
  1415.     # undefined
  1416.     builtin autoload -XUz
  1417. }
  1418. _dd () {
  1419.     # undefined
  1420.     builtin autoload -XUz
  1421. }
  1422. _deb_architectures () {
  1423.     # undefined
  1424.     builtin autoload -XUz
  1425. }
  1426. _deb_codenames () {
  1427.     # undefined
  1428.     builtin autoload -XUz
  1429. }
  1430. _deb_packages () {
  1431.     # undefined
  1432.     builtin autoload -XUz
  1433. }
  1434. _debbugs_bugnumber () {
  1435.     # undefined
  1436.     builtin autoload -XUz
  1437. }
  1438. _debchange () {
  1439.     # undefined
  1440.     builtin autoload -XUz
  1441. }
  1442. _debcheckout () {
  1443.     # undefined
  1444.     builtin autoload -XUz
  1445. }
  1446. _debdiff () {
  1447.     # undefined
  1448.     builtin autoload -XUz
  1449. }
  1450. _debfoster () {
  1451.     # undefined
  1452.     builtin autoload -XUz
  1453. }
  1454. _deborphan () {
  1455.     # undefined
  1456.     builtin autoload -XUz
  1457. }
  1458. _debsign () {
  1459.     # undefined
  1460.     builtin autoload -XUz
  1461. }
  1462. _debuild () {
  1463.     # undefined
  1464.     builtin autoload -XUz
  1465. }
  1466. _default () {
  1467.     local ctl
  1468.     if {
  1469.             zstyle -s ":completion:${curcontext}:" use-compctl ctl || zmodload -e zsh/compctl
  1470.         } && [[ "$ctl" != (no|false|0|off) ]]
  1471.     then
  1472.         local opt
  1473.         opt=()
  1474.         [[ "$ctl" = *first* ]] && opt=(-T)
  1475.         [[ "$ctl" = *default* ]] && opt=("$opt[@]" -D)
  1476.         compcall "$opt[@]" || return 0
  1477.     fi
  1478.     _files "$@" && return 0
  1479.     if [[ -o magicequalsubst && "$PREFIX" = *\=* ]]
  1480.     then
  1481.         compstate[parameter]="${PREFIX%%\=*}"
  1482.         compset -P 1 '*='
  1483.         _value "$@"
  1484.     else
  1485.         return 1
  1486.     fi
  1487. }
  1488. _defaults () {
  1489.     # undefined
  1490.     builtin autoload -XUz
  1491. }
  1492. _delimiters () {
  1493.     # undefined
  1494.     builtin autoload -XUz
  1495. }
  1496. _describe () {
  1497.     # undefined
  1498.     builtin autoload -XUz
  1499. }
  1500. _description () {
  1501.     local name gropt nopt xopt format gname hidden hide match opts tag sort
  1502.     opts=()
  1503.     gropt=(-J)
  1504.     xopt=(-X)
  1505.     nopt=()
  1506.     zparseopts -K -D -a nopt 1 2 V=gropt J=gropt x=xopt
  1507.     3="${${3##[[:blank:]]#}%%[[:blank:]]#}"
  1508.     [[ -n "$3" ]] && _lastdescr=("$_lastdescr[@]" "$3")
  1509.     zstyle -s ":completion:${curcontext}:$1" group-name gname && [[ -z "$gname" ]] && gname="$1"
  1510.     _setup "$1" "${gname:--default-}"
  1511.     name="$2"
  1512.     zstyle -s ":completion:${curcontext}:$1" format format || zstyle -s ":completion:${curcontext}:descriptions" format format
  1513.     if zstyle -s ":completion:${curcontext}:$1" hidden hidden && [[ "$hidden" = (all|yes|true|1|on) ]]
  1514.     then
  1515.         [[ "$hidden" = all ]] && format=''
  1516.         opts=(-n)
  1517.     fi
  1518.     zstyle -s ":completion:${curcontext}:$1" matcher match && opts=($opts -M "$match")
  1519.     [[ -n "$_matcher" ]] && opts=($opts -M "$_matcher")
  1520.     if {
  1521.             zstyle -s ":completion:${curcontext}:$1" sort sort || zstyle -s ":completion:${curcontext}:" sort sort
  1522.         } && [[ "$gropt" = -J && $sort != menu ]]
  1523.     then
  1524.         if [[ "$sort" = (yes|true|1|on) ]]
  1525.         then
  1526.             gropt=(-J)
  1527.         else
  1528.             gropt=(-V)
  1529.         fi
  1530.     fi
  1531.     if [[ -z "$_comp_no_ignore" ]]
  1532.     then
  1533.         zstyle -a ":completion:${curcontext}:$1" ignored-patterns _comp_ignore || _comp_ignore=()
  1534.         if zstyle -s ":completion:${curcontext}:$1" ignore-line hidden
  1535.         then
  1536.             local -a qwords
  1537.             qwords=(${words//(#m)[\[\]()\\*?#<>~\^\|]/\\$MATCH})
  1538.             case "$hidden" in
  1539.                 (true | yes | on | 1) _comp_ignore+=($qwords)  ;;
  1540.                 (current) _comp_ignore+=($qwords[CURRENT])  ;;
  1541.                 (current-shown) [[ "$compstate[old_list]" = *shown* ]] && _comp_ignore+=($qwords[CURRENT])  ;;
  1542.                 (other) _comp_ignore+=($qwords[1,CURRENT-1] $qwords[CURRENT+1,-1])  ;;
  1543.             esac
  1544.         fi
  1545.         (( $#_comp_ignore )) && opts=(-F _comp_ignore $opts)
  1546.     else
  1547.         _comp_ignore=()
  1548.     fi
  1549.     tag="$1"
  1550.     shift 2
  1551.     if [[ -z "$1" && $# -eq 1 ]]
  1552.     then
  1553.         format=
  1554.     elif [[ -n "$format" ]]
  1555.     then
  1556.         zformat -f format "$format" "d:$1" "${(@)argv[2,-1]}"
  1557.     fi
  1558.     if [[ -n "$gname" ]]
  1559.     then
  1560.         if [[ -n "$format" ]]
  1561.         then
  1562.             set -A "$name" "$opts[@]" "$nopt[@]" "$gropt" "$gname" "$xopt" "$format"
  1563.         else
  1564.             set -A "$name" "$opts[@]" "$nopt[@]" "$gropt" "$gname"
  1565.         fi
  1566.     else
  1567.         if [[ -n "$format" ]]
  1568.         then
  1569.             set -A "$name" "$opts[@]" "$nopt[@]" "$gropt" -default- "$xopt" "$format"
  1570.         else
  1571.             set -A "$name" "$opts[@]" "$nopt[@]" "$gropt" -default-
  1572.         fi
  1573.     fi
  1574.     if ! (( ${funcstack[2,-1][(I)_description]} ))
  1575.     then
  1576.         local fakestyle descr
  1577.         for fakestyle in fake fake-always
  1578.         do
  1579.             zstyle -a ":completion:${curcontext}:$tag" $fakestyle match || continue
  1580.             descr=("${(@M)match:#*[^\\]:*}")
  1581.             opts=("${(@P)name}")
  1582.             if [[ $fakestyle = fake-always && $opts[1,2] = "-F _comp_ignore" ]]
  1583.             then
  1584.                 shift 2 opts
  1585.             fi
  1586.             compadd "${(@)opts}" - "${(@)${(@)match:#*[^\\]:*}:s/\\:/:/}"
  1587.             (( $#descr )) && _describe -t "$tag" '' descr "${(@)opts}"
  1588.         done
  1589.     fi
  1590.     return 0
  1591. }
  1592. _devtodo () {
  1593.     # undefined
  1594.     builtin autoload -XUz
  1595. }
  1596. _df () {
  1597.     # undefined
  1598.     builtin autoload -XUz
  1599. }
  1600. _dhclient () {
  1601.     # undefined
  1602.     builtin autoload -XUz
  1603. }
  1604. _dhcpinfo () {
  1605.     # undefined
  1606.     builtin autoload -XUz
  1607. }
  1608. _dict () {
  1609.     # undefined
  1610.     builtin autoload -XUz
  1611. }
  1612. _dict_words () {
  1613.     # undefined
  1614.     builtin autoload -XUz
  1615. }
  1616. _diff () {
  1617.     # undefined
  1618.     builtin autoload -XUz
  1619. }
  1620. _diff3 () {
  1621.     # undefined
  1622.     builtin autoload -XUz
  1623. }
  1624. _diff_options () {
  1625.     # undefined
  1626.     builtin autoload -XUz
  1627. }
  1628. _diffstat () {
  1629.     # undefined
  1630.     builtin autoload -XUz
  1631. }
  1632. _dig () {
  1633.     # undefined
  1634.     builtin autoload -XUz
  1635. }
  1636. _dir_list () {
  1637.     # undefined
  1638.     builtin autoload -XUz
  1639. }
  1640. _directories () {
  1641.     # undefined
  1642.     builtin autoload -XUz
  1643. }
  1644. _directory_stack () {
  1645.     # undefined
  1646.     builtin autoload -XUz
  1647. }
  1648. _dirs () {
  1649.     # undefined
  1650.     builtin autoload -XUz
  1651. }
  1652. _disable () {
  1653.     # undefined
  1654.     builtin autoload -XUz
  1655. }
  1656. _dispatch () {
  1657.     local comp pat val name i ret=1 _compskip="$_compskip"
  1658.     local curcontext="$curcontext" service str noskip
  1659.     local -a match mbegin mend
  1660.     if [[ "$1" = -s ]]
  1661.     then
  1662.         noskip=yes
  1663.         shift
  1664.     fi
  1665.     [[ -z "$noskip" ]] && _compskip=
  1666.     curcontext="${curcontext%:*:*}:${1}:"
  1667.     shift
  1668.     if [[ "$_compskip" != (all|*patterns*) ]]
  1669.     then
  1670.         for str in "$@"
  1671.         do
  1672.             [[ -n "$str" ]] || continue
  1673.             service="${_services[$str]:-$str}"
  1674.             for i in "${(@)_patcomps[(K)$str]}"
  1675.             do
  1676.                 if [[ $i = (#b)"="([^=]#)"="(*) ]]
  1677.                 then
  1678.                     service=$match[1]
  1679.                     i=$match[2]
  1680.                 fi
  1681.                 eval "$i" && ret=0
  1682.                 if [[ "$_compskip" = *patterns* ]]
  1683.                 then
  1684.                     break
  1685.                 elif [[ "$_compskip" = all ]]
  1686.                 then
  1687.                     _compskip=''
  1688.                     return ret
  1689.                 fi
  1690.             done
  1691.         done
  1692.     fi
  1693.     ret=1
  1694.     for str in "$@"
  1695.     do
  1696.         [[ -n "$str" ]] || continue
  1697.         str=${(Q)str}
  1698.         name="$str"
  1699.         comp="${_comps[$str]}"
  1700.         service="${_services[$str]:-$str}"
  1701.         [[ -z "$comp" ]] || break
  1702.     done
  1703.     if [[ -n "$comp" && "$name" != "${argv[-1]}" ]]
  1704.     then
  1705.         _compskip=patterns
  1706.         eval "$comp" && ret=0
  1707.         [[ "$_compskip" = (all|*patterns*) ]] && return ret
  1708.     fi
  1709.     if [[ "$_compskip" != (all|*patterns*) ]]
  1710.     then
  1711.         for str
  1712.         do
  1713.             [[ -n "$str" ]] || continue
  1714.             service="${_services[$str]:-$str}"
  1715.             for i in "${(@)_postpatcomps[(K)$str]}"
  1716.             do
  1717.                 _compskip=default
  1718.                 eval "$i" && ret=0
  1719.                 if [[ "$_compskip" = *patterns* ]]
  1720.                 then
  1721.                     break
  1722.                 elif [[ "$_compskip" = all ]]
  1723.                 then
  1724.                     _compskip=''
  1725.                     return ret
  1726.                 fi
  1727.             done
  1728.         done
  1729.     fi
  1730.     [[ "$name" = "${argv[-1]}" && -n "$comp" && "$_compskip" != (all|*default*) ]] && service="${_services[$name]:-$name}"  && eval "$comp" && ret=0
  1731.     _compskip=''
  1732.     return ret
  1733. }
  1734. _django () {
  1735.     # undefined
  1736.     builtin autoload -XUz
  1737. }
  1738. _dkms () {
  1739.     # undefined
  1740.     builtin autoload -XUz
  1741. }
  1742. _dladm () {
  1743.     # undefined
  1744.     builtin autoload -XUz
  1745. }
  1746. _dlocate () {
  1747.     # undefined
  1748.     builtin autoload -XUz
  1749. }
  1750. _dmesg () {
  1751.     # undefined
  1752.     builtin autoload -XUz
  1753. }
  1754. _dmidecode () {
  1755.     # undefined
  1756.     builtin autoload -XUz
  1757. }
  1758. _dnf () {
  1759.     # undefined
  1760.     builtin autoload -XUz
  1761. }
  1762. _dns_types () {
  1763.     # undefined
  1764.     builtin autoload -XUz
  1765. }
  1766. _doas () {
  1767.     # undefined
  1768.     builtin autoload -XUz
  1769. }
  1770. _domains () {
  1771.     # undefined
  1772.     builtin autoload -XUz
  1773. }
  1774. _dos2unix () {
  1775.     # undefined
  1776.     builtin autoload -XUz
  1777. }
  1778. _dpatch-edit-patch () {
  1779.     # undefined
  1780.     builtin autoload -XUz
  1781. }
  1782. _dpkg () {
  1783.     # undefined
  1784.     builtin autoload -XUz
  1785. }
  1786. _dpkg-buildpackage () {
  1787.     # undefined
  1788.     builtin autoload -XUz
  1789. }
  1790. _dpkg-cross () {
  1791.     # undefined
  1792.     builtin autoload -XUz
  1793. }
  1794. _dpkg-repack () {
  1795.     # undefined
  1796.     builtin autoload -XUz
  1797. }
  1798. _dpkg_source () {
  1799.     # undefined
  1800.     builtin autoload -XUz
  1801. }
  1802. _dput () {
  1803.     # undefined
  1804.     builtin autoload -XUz
  1805. }
  1806. _drill () {
  1807.     # undefined
  1808.     builtin autoload -XUz
  1809. }
  1810. _dsh () {
  1811.     # undefined
  1812.     builtin autoload -XUz
  1813. }
  1814. _dtrace () {
  1815.     # undefined
  1816.     builtin autoload -XUz
  1817. }
  1818. _dtruss () {
  1819.     # undefined
  1820.     builtin autoload -XUz
  1821. }
  1822. _du () {
  1823.     # undefined
  1824.     builtin autoload -XUz
  1825. }
  1826. _dumpadm () {
  1827.     # undefined
  1828.     builtin autoload -XUz
  1829. }
  1830. _dumper () {
  1831.     # undefined
  1832.     builtin autoload -XUz
  1833. }
  1834. _dupload () {
  1835.     # undefined
  1836.     builtin autoload -XUz
  1837. }
  1838. _dvi () {
  1839.     # undefined
  1840.     builtin autoload -XUz
  1841. }
  1842. _dynamic_directory_name () {
  1843.     # undefined
  1844.     builtin autoload -XUz
  1845. }
  1846. _e2label () {
  1847.     # undefined
  1848.     builtin autoload -XUz
  1849. }
  1850. _ecasound () {
  1851.     # undefined
  1852.     builtin autoload -XUz
  1853. }
  1854. _echotc () {
  1855.     # undefined
  1856.     builtin autoload -XUz
  1857. }
  1858. _echoti () {
  1859.     # undefined
  1860.     builtin autoload -XUz
  1861. }
  1862. _ed () {
  1863.     # undefined
  1864.     builtin autoload -XUz
  1865. }
  1866. _elfdump () {
  1867.     # undefined
  1868.     builtin autoload -XUz
  1869. }
  1870. _elinks () {
  1871.     # undefined
  1872.     builtin autoload -XUz
  1873. }
  1874. _elm () {
  1875.     # undefined
  1876.     builtin autoload -XUz
  1877. }
  1878. _email_addresses () {
  1879.     # undefined
  1880.     builtin autoload -XUz
  1881. }
  1882. _emulate () {
  1883.     # undefined
  1884.     builtin autoload -XUz
  1885. }
  1886. _enable () {
  1887.     # undefined
  1888.     builtin autoload -XUz
  1889. }
  1890. _enscript () {
  1891.     # undefined
  1892.     builtin autoload -XUz
  1893. }
  1894. _entr () {
  1895.     # undefined
  1896.     builtin autoload -XUz
  1897. }
  1898. _env () {
  1899.     # undefined
  1900.     builtin autoload -XUz
  1901. }
  1902. _eog () {
  1903.     # undefined
  1904.     builtin autoload -XUz
  1905. }
  1906. _equal () {
  1907.     # undefined
  1908.     builtin autoload -XUz
  1909. }
  1910. _espeak () {
  1911.     # undefined
  1912.     builtin autoload -XUz
  1913. }
  1914. _etags () {
  1915.     # undefined
  1916.     builtin autoload -XUz
  1917. }
  1918. _ethtool () {
  1919.     # undefined
  1920.     builtin autoload -XUz
  1921. }
  1922. _evince () {
  1923.     # undefined
  1924.     builtin autoload -XUz
  1925. }
  1926. _exec () {
  1927.     # undefined
  1928.     builtin autoload -XUz
  1929. }
  1930. _expand () {
  1931.     # undefined
  1932.     builtin autoload -XUz
  1933. }
  1934. _expand_alias () {
  1935.     # undefined
  1936.     builtin autoload -XUz
  1937. }
  1938. _expand_word () {
  1939.     # undefined
  1940.     builtin autoload -XUz
  1941. }
  1942. _extensions () {
  1943.     # undefined
  1944.     builtin autoload -XUz
  1945. }
  1946. _external_pwds () {
  1947.     # undefined
  1948.     builtin autoload -XUz
  1949. }
  1950. _fakeroot () {
  1951.     # undefined
  1952.     builtin autoload -XUz
  1953. }
  1954. _fbsd_architectures () {
  1955.     # undefined
  1956.     builtin autoload -XUz
  1957. }
  1958. _fc () {
  1959.     # undefined
  1960.     builtin autoload -XUz
  1961. }
  1962. _feh () {
  1963.     # undefined
  1964.     builtin autoload -XUz
  1965. }
  1966. _fetch () {
  1967.     # undefined
  1968.     builtin autoload -XUz
  1969. }
  1970. _fetchmail () {
  1971.     # undefined
  1972.     builtin autoload -XUz
  1973. }
  1974. _ffmpeg () {
  1975.     # undefined
  1976.     builtin autoload -XUz
  1977. }
  1978. _figlet () {
  1979.     # undefined
  1980.     builtin autoload -XUz
  1981. }
  1982. _file_descriptors () {
  1983.     # undefined
  1984.     builtin autoload -XUz
  1985. }
  1986. _file_flags () {
  1987.     # undefined
  1988.     builtin autoload -XUz
  1989. }
  1990. _file_modes () {
  1991.     # undefined
  1992.     builtin autoload -XUz
  1993. }
  1994. _file_systems () {
  1995.     # undefined
  1996.     builtin autoload -XUz
  1997. }
  1998. _files () {
  1999.     local -a match mbegin mend
  2000.     local ret=1
  2001.     if _have_glob_qual $PREFIX
  2002.     then
  2003.         compset -p ${#match[1]}
  2004.         compset -S '[^\)\|\~]#(|\))'
  2005.         if [[ $_comp_caller_options[extendedglob] == on ]] && compset -P '\#'
  2006.         then
  2007.             _globflags && ret=0
  2008.         else
  2009.             if [[ $_comp_caller_options[extendedglob] == on ]]
  2010.             then
  2011.                 _describe -t globflags "glob flag" '(\#:introduce\ glob\ flag)' -Q -S '' && ret=0
  2012.             fi
  2013.             _globquals && ret=0
  2014.         fi
  2015.         return ret
  2016.     elif [[ $_comp_caller_options[extendedglob] == on && $PREFIX = \(\#[^\)]# ]] && compset -P '\(\#'
  2017.     then
  2018.         _globflags && return
  2019.     fi
  2020.     local opts tmp glob pat pats expl tag i def descr end ign tried
  2021.     local type sdef ignvars ignvar prepath oprefix rfiles rfile
  2022.     zparseopts -a opts '/=tmp' 'f=tmp' 'g+:-=tmp' q n 1 2 P: S: r: R: W: X+: M+: F: J+: V+:
  2023.     type="${(@j::M)${(@)tmp#-}#?}"
  2024.     if (( $tmp[(I)-g*] ))
  2025.     then
  2026.         glob="${${${(@)${(@M)tmp:#-g*}#-g}##[[:blank:]]#}%%[[:blank:]]#}"
  2027.         [[ "$glob" = *[^\\][[:blank:]]* ]] && glob="{${glob//(#b)([^\\])[[:blank:]]##/${match[1]},}}"
  2028.         [[ "$glob" = (#b)(*\()([^\|\~]##\)) && $match[2] != \#q* ]] && glob="${match[1]}#q${match[2]}"
  2029.     elif [[ $type = */* ]]
  2030.     then
  2031.         glob="*(#q-/)"
  2032.     fi
  2033.     tmp=$opts[(I)-F]
  2034.     if (( tmp ))
  2035.     then
  2036.         ignvars=($=opts[tmp+1])
  2037.         if [[ $ignvars = _comp_ignore ]]
  2038.         then
  2039.             ign=($_comp_ignore)
  2040.         elif [[ $ignvars = \(* ]]
  2041.         then
  2042.             ign=(${=ignvars[2,-2]})
  2043.         else
  2044.             ign=()
  2045.             for ignvar in $ignvars
  2046.             do
  2047.                 ign+=(${(P)ignvar})
  2048.             done
  2049.             opts[tmp+1]=_comp_ignore
  2050.         fi
  2051.     else
  2052.         ign=()
  2053.     fi
  2054.     if zstyle -a ":completion:${curcontext}:" file-patterns tmp
  2055.     then
  2056.         pats=()
  2057.         for i in ${tmp//\%p/${${glob:-\*}//:/\\:}}
  2058.         do
  2059.             if [[ $i = *[^\\]:* ]]
  2060.             then
  2061.                 pats+=(" $i ")
  2062.             else
  2063.                 pats+=(" ${i}:files ")
  2064.             fi
  2065.         done
  2066.     elif zstyle -t ":completion:${curcontext}:" list-dirs-first
  2067.     then
  2068.         pats=(" *(-/):directories:directory ${${glob:-*}//:/\\:}(#q^-/):globbed-files" '*:all-files')
  2069.     else
  2070.         pats=("${${glob:-*}//:/\\:}:globbed-files *(-/):directories" '*:all-files ')
  2071.     fi
  2072.     tried=()
  2073.     for def in "$pats[@]"
  2074.     do
  2075.         eval "def=( ${${def//\\:/\\\\\\:}//(#b)([][()|*?^#~<>])/\\${match[1]}} )"
  2076.         tmp="${(@M)def#*[^\\]:}"
  2077.         (( $tried[(I)${(q)tmp}] )) && continue
  2078.         tried=("$tried[@]" "$tmp")
  2079.         for sdef in "$def[@]"
  2080.         do
  2081.             tag="${${sdef#*[^\\]:}%%:*}"
  2082.             pat="${${sdef%%:${tag}*}//\\:/:}"
  2083.             if [[ "$sdef" = *:${tag}:* ]]
  2084.             then
  2085.                 descr="${(Q)sdef#*:${tag}:}"
  2086.             else
  2087.                 if (( $opts[(I)-X] ))
  2088.                 then
  2089.                     descr=
  2090.                 else
  2091.                     descr=file
  2092.                 fi
  2093.                 end=yes
  2094.             fi
  2095.             _tags "$tag"
  2096.             while _tags
  2097.             do
  2098.                 _comp_ignore=()
  2099.                 while _next_label "$tag" expl "$descr"
  2100.                 do
  2101.                     _comp_ignore=($_comp_ignore $ign)
  2102.                     if [[ -n "$end" ]]
  2103.                     then
  2104.                         if _path_files -g "$pat" "$opts[@]" "$expl[@]"
  2105.                         then
  2106.                             ret=0
  2107.                         elif [[ $PREFIX$SUFFIX != */* ]] && zstyle -a ":completion:${curcontext}:$tag" recursive-files rfiles
  2108.                         then
  2109.                             local subtree
  2110.                             for rfile in $rfiles
  2111.                             do
  2112.                                 if [[ $PWD/ = ${~rfile} ]]
  2113.                                 then
  2114.                                     if [[ -z $subtree ]]
  2115.                                     then
  2116.                                         subtree=(**/*(/))
  2117.                                     fi
  2118.                                     for prepath in $subtree
  2119.                                     do
  2120.                                         oprefix=$PREFIX
  2121.                                         PREFIX=$prepath/$PREFIX
  2122.                                         _path_files -g "$pat" "$opts[@]" "$expl[@]" && ret=0
  2123.                                         PREFIX=$oprefix
  2124.                                     done
  2125.                                     break
  2126.                                 fi
  2127.                             done
  2128.                         fi
  2129.                     else
  2130.                         _path_files "$expl[@]" -g "$pat" "$opts[@]" && ret=0
  2131.                     fi
  2132.                 done
  2133.                 (( ret )) || break
  2134.             done
  2135.             [[ "$pat" = '*' ]] && return ret
  2136.         done
  2137.         (( ret )) || return 0
  2138.     done
  2139.     return 1
  2140. }
  2141. _find () {
  2142.     # undefined
  2143.     builtin autoload -XUz
  2144. }
  2145. _find_net_interfaces () {
  2146.     # undefined
  2147.     builtin autoload -XUz
  2148. }
  2149. _finger () {
  2150.     # undefined
  2151.     builtin autoload -XUz
  2152. }
  2153. _fink () {
  2154.     # undefined
  2155.     builtin autoload -XUz
  2156. }
  2157. _first () {
  2158.    
  2159. }
  2160. _flac () {
  2161.     # undefined
  2162.     builtin autoload -XUz
  2163. }
  2164. _flasher () {
  2165.     # undefined
  2166.     builtin autoload -XUz
  2167. }
  2168. _flex () {
  2169.     # undefined
  2170.     builtin autoload -XUz
  2171. }
  2172. _floppy () {
  2173.     # undefined
  2174.     builtin autoload -XUz
  2175. }
  2176. _flowadm () {
  2177.     # undefined
  2178.     builtin autoload -XUz
  2179. }
  2180. _fmadm () {
  2181.     # undefined
  2182.     builtin autoload -XUz
  2183. }
  2184. _fmt () {
  2185.     # undefined
  2186.     builtin autoload -XUz
  2187. }
  2188. _fold () {
  2189.     # undefined
  2190.     builtin autoload -XUz
  2191. }
  2192. _fortune () {
  2193.     # undefined
  2194.     builtin autoload -XUz
  2195. }
  2196. _freebsd-update () {
  2197.     # undefined
  2198.     builtin autoload -XUz
  2199. }
  2200. _fs_usage () {
  2201.     # undefined
  2202.     builtin autoload -XUz
  2203. }
  2204. _fsh () {
  2205.     # undefined
  2206.     builtin autoload -XUz
  2207. }
  2208. _fstat () {
  2209.     # undefined
  2210.     builtin autoload -XUz
  2211. }
  2212. _functions () {
  2213.     # undefined
  2214.     builtin autoload -XUz
  2215. }
  2216. _fuse_arguments () {
  2217.     # undefined
  2218.     builtin autoload -XUz
  2219. }
  2220. _fuse_values () {
  2221.     # undefined
  2222.     builtin autoload -XUz
  2223. }
  2224. _fuser () {
  2225.     # undefined
  2226.     builtin autoload -XUz
  2227. }
  2228. _fusermount () {
  2229.     # undefined
  2230.     builtin autoload -XUz
  2231. }
  2232. _fw_update () {
  2233.     # undefined
  2234.     builtin autoload -XUz
  2235. }
  2236. _gcc () {
  2237.     # undefined
  2238.     builtin autoload -XUz
  2239. }
  2240. _gcore () {
  2241.     # undefined
  2242.     builtin autoload -XUz
  2243. }
  2244. _gdb () {
  2245.     # undefined
  2246.     builtin autoload -XUz
  2247. }
  2248. _geany () {
  2249.     # undefined
  2250.     builtin autoload -XUz
  2251. }
  2252. _gem () {
  2253.     # undefined
  2254.     builtin autoload -XUz
  2255. }
  2256. _generic () {
  2257.     # undefined
  2258.     builtin autoload -XUz
  2259. }
  2260. _genisoimage () {
  2261.     # undefined
  2262.     builtin autoload -XUz
  2263. }
  2264. _getclip () {
  2265.     # undefined
  2266.     builtin autoload -XUz
  2267. }
  2268. _getconf () {
  2269.     # undefined
  2270.     builtin autoload -XUz
  2271. }
  2272. _getent () {
  2273.     # undefined
  2274.     builtin autoload -XUz
  2275. }
  2276. _getfacl () {
  2277.     # undefined
  2278.     builtin autoload -XUz
  2279. }
  2280. _getmail () {
  2281.     # undefined
  2282.     builtin autoload -XUz
  2283. }
  2284. _getopt () {
  2285.     # undefined
  2286.     builtin autoload -XUz
  2287. }
  2288. _ghostscript () {
  2289.     # undefined
  2290.     builtin autoload -XUz
  2291. }
  2292. _git () {
  2293.     # undefined
  2294.     builtin autoload -XUz
  2295. }
  2296. _git-buildpackage () {
  2297.     # undefined
  2298.     builtin autoload -XUz
  2299. }
  2300. _global () {
  2301.     # undefined
  2302.     builtin autoload -XUz
  2303. }
  2304. _global_tags () {
  2305.     # undefined
  2306.     builtin autoload -XUz
  2307. }
  2308. _globflags () {
  2309.     # undefined
  2310.     builtin autoload -XUz
  2311. }
  2312. _globqual_delims () {
  2313.     # undefined
  2314.     builtin autoload -XUz
  2315. }
  2316. _globquals () {
  2317.     # undefined
  2318.     builtin autoload -XUz
  2319. }
  2320. _gnome-gv () {
  2321.     # undefined
  2322.     builtin autoload -XUz
  2323. }
  2324. _gnu_generic () {
  2325.     # undefined
  2326.     builtin autoload -XUz
  2327. }
  2328. _gnupod () {
  2329.     # undefined
  2330.     builtin autoload -XUz
  2331. }
  2332. _gnutls () {
  2333.     # undefined
  2334.     builtin autoload -XUz
  2335. }
  2336. _go () {
  2337.     # undefined
  2338.     builtin autoload -XUz
  2339. }
  2340. _gpasswd () {
  2341.     # undefined
  2342.     builtin autoload -XUz
  2343. }
  2344. _gpg () {
  2345.     # undefined
  2346.     builtin autoload -XUz
  2347. }
  2348. _gphoto2 () {
  2349.     # undefined
  2350.     builtin autoload -XUz
  2351. }
  2352. _gprof () {
  2353.     # undefined
  2354.     builtin autoload -XUz
  2355. }
  2356. _gqview () {
  2357.     # undefined
  2358.     builtin autoload -XUz
  2359. }
  2360. _gradle () {
  2361.     # undefined
  2362.     builtin autoload -XUz
  2363. }
  2364. _graphicsmagick () {
  2365.     # undefined
  2366.     builtin autoload -XUz
  2367. }
  2368. _grep () {
  2369.     # undefined
  2370.     builtin autoload -XUz
  2371. }
  2372. _grep-excuses () {
  2373.     # undefined
  2374.     builtin autoload -XUz
  2375. }
  2376. _groff () {
  2377.     # undefined
  2378.     builtin autoload -XUz
  2379. }
  2380. _groups () {
  2381.     # undefined
  2382.     builtin autoload -XUz
  2383. }
  2384. _growisofs () {
  2385.     # undefined
  2386.     builtin autoload -XUz
  2387. }
  2388. _gsettings () {
  2389.     # undefined
  2390.     builtin autoload -XUz
  2391. }
  2392. _gstat () {
  2393.     # undefined
  2394.     builtin autoload -XUz
  2395. }
  2396. _guard () {
  2397.     # undefined
  2398.     builtin autoload -XUz
  2399. }
  2400. _guilt () {
  2401.     # undefined
  2402.     builtin autoload -XUz
  2403. }
  2404. _gv () {
  2405.     # undefined
  2406.     builtin autoload -XUz
  2407. }
  2408. _gzip () {
  2409.     # undefined
  2410.     builtin autoload -XUz
  2411. }
  2412. _hash () {
  2413.     # undefined
  2414.     builtin autoload -XUz
  2415. }
  2416. _have_glob_qual () {
  2417.     local complete
  2418.     [[ $2 = complete ]] && complete=")"
  2419.     [[ -z $compstate[quote] && ( ( $_comp_caller_options[bareglobqual] == on && $1 = (#b)(((*[^\\\$]|)(\\\\)#)\()([^\)\|\~]#)$complete && ${#match[1]} -gt 1 ) || ( $_comp_caller_options[extendedglob] == on && $1 = (#b)(((*[^\\\$]|)(\\\\)#)"(#q")([^\)]#)$complete ) ) ]]
  2420. }
  2421. _hdiutil () {
  2422.     # undefined
  2423.     builtin autoload -XUz
  2424. }
  2425. _head () {
  2426.     # undefined
  2427.     builtin autoload -XUz
  2428. }
  2429. _hexdump () {
  2430.     # undefined
  2431.     builtin autoload -XUz
  2432. }
  2433. _hg () {
  2434.     # undefined
  2435.     builtin autoload -XUz
  2436. }
  2437. _history () {
  2438.     # undefined
  2439.     builtin autoload -XUz
  2440. }
  2441. _history_complete_word () {
  2442.     # undefined
  2443.     builtin autoload -XUz
  2444. }
  2445. _history_modifiers () {
  2446.     # undefined
  2447.     builtin autoload -XUz
  2448. }
  2449. _host () {
  2450.     # undefined
  2451.     builtin autoload -XUz
  2452. }
  2453. _hostname () {
  2454.     # undefined
  2455.     builtin autoload -XUz
  2456. }
  2457. _hosts () {
  2458.     # undefined
  2459.     builtin autoload -XUz
  2460. }
  2461. _htop () {
  2462.     # undefined
  2463.     builtin autoload -XUz
  2464. }
  2465. _hwinfo () {
  2466.     # undefined
  2467.     builtin autoload -XUz
  2468. }
  2469. _iconv () {
  2470.     # undefined
  2471.     builtin autoload -XUz
  2472. }
  2473. _iconvconfig () {
  2474.     # undefined
  2475.     builtin autoload -XUz
  2476. }
  2477. _id () {
  2478.     # undefined
  2479.     builtin autoload -XUz
  2480. }
  2481. _ifconfig () {
  2482.     # undefined
  2483.     builtin autoload -XUz
  2484. }
  2485. _iftop () {
  2486.     # undefined
  2487.     builtin autoload -XUz
  2488. }
  2489. _ignored () {
  2490.     [[ _matcher_num -gt 1 || $compstate[ignored] -eq 0 ]] && return 1
  2491.     local comp
  2492.     integer ind
  2493.     if ! zstyle -a ":completion:${curcontext}:" completer comp
  2494.     then
  2495.         comp=("${(@)_completers[1,_completer_num-1]}")
  2496.         ind=${comp[(I)_ignored(|:*)]}
  2497.         (( ind )) && comp=("${(@)comp[ind,-1]}")
  2498.     fi
  2499.     local _comp_no_ignore=yes tmp expl _completer _completer_num _matcher _c_matcher _matchers _matcher_num
  2500.     _completer_num=1
  2501.     for tmp in "$comp[@]"
  2502.     do
  2503.         if [[ "$tmp" = *:-* ]]
  2504.         then
  2505.             _completer="${${tmp%:*}[2,-1]//_/-}${tmp#*:}"
  2506.             tmp="${tmp%:*}"
  2507.         elif [[ $tmp = *:* ]]
  2508.         then
  2509.             _completer="${tmp#*:}"
  2510.             tmp="${tmp%:*}"
  2511.         else
  2512.             _completer="${tmp[2,-1]//_/-}"
  2513.         fi
  2514.         curcontext="${curcontext/:[^:]#:/:${_completer}:}"
  2515.         zstyle -a ":completion:${curcontext}:" matcher-list _matchers || _matchers=('')
  2516.         _matcher_num=1
  2517.         _matcher=''
  2518.         for _c_matcher in "$_matchers[@]"
  2519.         do
  2520.             if [[ "$_c_matcher" == +* ]]
  2521.             then
  2522.                 _matcher="$_matcher $_c_matcher[2,-1]"
  2523.             else
  2524.                 _matcher="$_c_matcher"
  2525.             fi
  2526.             if [[ "$tmp" != _ignored ]] && "$tmp"
  2527.             then
  2528.                 if zstyle -s ":completion:${curcontext}:" single-ignored tmp && [[ $compstate[old_list] != shown && $compstate[nmatches] -eq 1 ]]
  2529.                 then
  2530.                     case "$tmp" in
  2531.                         (show) compstate[insert]='' compstate[list]='list force' tmp=''  ;;
  2532.                         (menu) compstate[insert]=menu
  2533.                             _description original expl original
  2534.                             compadd "$expl[@]" -S '' - "$PREFIX$SUFFIX" ;;
  2535.                     esac
  2536.                 fi
  2537.                 return 0
  2538.             fi
  2539.             (( _matcher_num++ ))
  2540.         done
  2541.         (( _completer_num++ ))
  2542.     done
  2543.     return 1
  2544. }
  2545. _imagemagick () {
  2546.     # undefined
  2547.     builtin autoload -XUz
  2548. }
  2549. _in_vared () {
  2550.     # undefined
  2551.     builtin autoload -XUz
  2552. }
  2553. _inetadm () {
  2554.     # undefined
  2555.     builtin autoload -XUz
  2556. }
  2557. _init_d () {
  2558.     # undefined
  2559.     builtin autoload -XUz
  2560. }
  2561. _initctl () {
  2562.     # undefined
  2563.     builtin autoload -XUz
  2564. }
  2565. _install () {
  2566.     # undefined
  2567.     builtin autoload -XUz
  2568. }
  2569. _invoke-rc.d () {
  2570.     # undefined
  2571.     builtin autoload -XUz
  2572. }
  2573. _ionice () {
  2574.     # undefined
  2575.     builtin autoload -XUz
  2576. }
  2577. _iostat () {
  2578.     # undefined
  2579.     builtin autoload -XUz
  2580. }
  2581. _ip () {
  2582.     # undefined
  2583.     builtin autoload -XUz
  2584. }
  2585. _ipadm () {
  2586.     # undefined
  2587.     builtin autoload -XUz
  2588. }
  2589. _ipsec () {
  2590.     # undefined
  2591.     builtin autoload -XUz
  2592. }
  2593. _ipset () {
  2594.     # undefined
  2595.     builtin autoload -XUz
  2596. }
  2597. _iptables () {
  2598.     # undefined
  2599.     builtin autoload -XUz
  2600. }
  2601. _irssi () {
  2602.     # undefined
  2603.     builtin autoload -XUz
  2604. }
  2605. _ispell () {
  2606.     # undefined
  2607.     builtin autoload -XUz
  2608. }
  2609. _iwconfig () {
  2610.     # undefined
  2611.     builtin autoload -XUz
  2612. }
  2613. _jail () {
  2614.     # undefined
  2615.     builtin autoload -XUz
  2616. }
  2617. _jails () {
  2618.     # undefined
  2619.     builtin autoload -XUz
  2620. }
  2621. _java () {
  2622.     # undefined
  2623.     builtin autoload -XUz
  2624. }
  2625. _java_class () {
  2626.     # undefined
  2627.     builtin autoload -XUz
  2628. }
  2629. _jexec () {
  2630.     # undefined
  2631.     builtin autoload -XUz
  2632. }
  2633. _jls () {
  2634.     # undefined
  2635.     builtin autoload -XUz
  2636. }
  2637. _jobs () {
  2638.     local expl disp jobs job jids pfx='%' desc how expls sep
  2639.     if [[ "$1" = -t ]]
  2640.     then
  2641.         zstyle -T ":completion:${curcontext}:jobs" prefix-needed && [[ "$PREFIX" != %* && compstate[nmatches] -ne 0 ]] && return 1
  2642.         shift
  2643.     fi
  2644.     zstyle -t ":completion:${curcontext}:jobs" prefix-hidden && pfx=''
  2645.     zstyle -T ":completion:${curcontext}:jobs" verbose && desc=yes
  2646.     if [[ "$1" = -r ]]
  2647.     then
  2648.         jids=("${(@k)jobstates[(R)running*]}")
  2649.         shift
  2650.         expls='running job'
  2651.     elif [[ "$1" = -s ]]
  2652.     then
  2653.         jids=("${(@k)jobstates[(R)suspended*]}")
  2654.         shift
  2655.         expls='suspended job'
  2656.     else
  2657.         [[ "$1" = - ]] && shift
  2658.         jids=("${(@k)jobtexts}")
  2659.         expls=job
  2660.     fi
  2661.     if [[ -n "$desc" ]]
  2662.     then
  2663.         disp=()
  2664.         zstyle -s ":completion:${curcontext}:jobs" list-separator sep || sep=--
  2665.         for job in "$jids[@]"
  2666.         do
  2667.             [[ -n "$desc" ]] && disp=("$disp[@]" "${pfx}${(r:2:: :)job} $sep ${(r:COLUMNS-8:: :)jobtexts[$job]}")
  2668.         done
  2669.     fi
  2670.     zstyle -s ":completion:${curcontext}:jobs" numbers how
  2671.     if [[ "$how" = (yes|true|on|1) ]]
  2672.     then
  2673.         jobs=("$jids[@]")
  2674.     else
  2675.         local texts i text str tmp num max=0
  2676.         texts=("$jobtexts[@]")
  2677.         jobs=()
  2678.         for i in "$jids[@]"
  2679.         do
  2680.             text="$jobtexts[$i]"
  2681.             str="${text%% *}"
  2682.             if [[ "$text" = *\ * ]]
  2683.             then
  2684.                 text="${text#* }"
  2685.             else
  2686.                 text=""
  2687.             fi
  2688.             tmp=("${(@M)texts:#${str}*}")
  2689.             num=1
  2690.             while [[ -n "$text" && $#tmp -ge 2 ]]
  2691.             do
  2692.                 str="${str} ${text%% *}"
  2693.                 if [[ "$text" = *\ * ]]
  2694.                 then
  2695.                     text="${text#* }"
  2696.                 else
  2697.                     text=""
  2698.                 fi
  2699.                 tmp=("${(@M)texts:#${str}*}")
  2700.                 (( num++ ))
  2701.             done
  2702.             [[ num -gt max ]] && max="$num"
  2703.             jobs=("$jobs[@]" "$str")
  2704.         done
  2705.         if [[ "$how" = [0-9]## && max -gt how ]]
  2706.         then
  2707.             jobs=("$jids[@]")
  2708.         else
  2709.             [[ -z "$pfx" && -n "$desc" ]] && disp=("${(@)disp#%}")
  2710.         fi
  2711.     fi
  2712.     if [[ -n "$desc" ]]
  2713.     then
  2714.         _wanted jobs expl "$expls" compadd "$@" -ld disp - "%$^jobs[@]"
  2715.     else
  2716.         _wanted jobs expl "$expls" compadd "$@" - "%$^jobs[@]"
  2717.     fi
  2718. }
  2719. _jobs_bg () {
  2720.     # undefined
  2721.     builtin autoload -XUz
  2722. }
  2723. _jobs_builtin () {
  2724.     # undefined
  2725.     builtin autoload -XUz
  2726. }
  2727. _jobs_fg () {
  2728.     # undefined
  2729.     builtin autoload -XUz
  2730. }
  2731. _joe () {
  2732.     # undefined
  2733.     builtin autoload -XUz
  2734. }
  2735. _join () {
  2736.     # undefined
  2737.     builtin autoload -XUz
  2738. }
  2739. _jot () {
  2740.     # undefined
  2741.     builtin autoload -XUz
  2742. }
  2743. _jq () {
  2744.     # undefined
  2745.     builtin autoload -XUz
  2746. }
  2747. _kdeconnect () {
  2748.     # undefined
  2749.     builtin autoload -XUz
  2750. }
  2751. _kfmclient () {
  2752.     # undefined
  2753.     builtin autoload -XUz
  2754. }
  2755. _kill () {
  2756.     # undefined
  2757.     builtin autoload -XUz
  2758. }
  2759. _killall () {
  2760.     # undefined
  2761.     builtin autoload -XUz
  2762. }
  2763. _kld () {
  2764.     # undefined
  2765.     builtin autoload -XUz
  2766. }
  2767. _knock () {
  2768.     # undefined
  2769.     builtin autoload -XUz
  2770. }
  2771. _kpartx () {
  2772.     # undefined
  2773.     builtin autoload -XUz
  2774. }
  2775. _kvno () {
  2776.     # undefined
  2777.     builtin autoload -XUz
  2778. }
  2779. _last () {
  2780.     # undefined
  2781.     builtin autoload -XUz
  2782. }
  2783. _ld_debug () {
  2784.     # undefined
  2785.     builtin autoload -XUz
  2786. }
  2787. _ldap () {
  2788.     # undefined
  2789.     builtin autoload -XUz
  2790. }
  2791. _ldconfig () {
  2792.     # undefined
  2793.     builtin autoload -XUz
  2794. }
  2795. _ldd () {
  2796.     # undefined
  2797.     builtin autoload -XUz
  2798. }
  2799. _less () {
  2800.     # undefined
  2801.     builtin autoload -XUz
  2802. }
  2803. _lha () {
  2804.     # undefined
  2805.     builtin autoload -XUz
  2806. }
  2807. _libvirt () {
  2808.     # undefined
  2809.     builtin autoload -XUz
  2810. }
  2811. _lighttpd () {
  2812.     # undefined
  2813.     builtin autoload -XUz
  2814. }
  2815. _limit () {
  2816.     # undefined
  2817.     builtin autoload -XUz
  2818. }
  2819. _limits () {
  2820.     # undefined
  2821.     builtin autoload -XUz
  2822. }
  2823. _links () {
  2824.     # undefined
  2825.     builtin autoload -XUz
  2826. }
  2827. _lintian () {
  2828.     # undefined
  2829.     builtin autoload -XUz
  2830. }
  2831. _list () {
  2832.     # undefined
  2833.     builtin autoload -XUz
  2834. }
  2835. _list_files () {
  2836.     local stat f elt what dir
  2837.     local -a stylevals
  2838.     integer ok
  2839.     listfiles=()
  2840.     listopts=()
  2841.     zstyle -a ":completion:${curcontext}:" file-list stylevals || return 1
  2842.     case $WIDGETSTYLE in
  2843.         (*complete*) what=insert  ;;
  2844.         (*) what=list  ;;
  2845.     esac
  2846.     for elt in $stylevals
  2847.     do
  2848.         case $elt in
  2849.             (*($what|all|true|1|yes)*=<->) (( ${(P)#1} <= ${elt##*=} )) && (( ok = 1 ))
  2850.                 break ;;
  2851.             ([^=]#($what|all|true|1|yes)[^=]#) (( ok = 1 ))
  2852.                 break ;;
  2853.         esac
  2854.     done
  2855.     (( ok )) || return 1
  2856.     zmodload -F zsh/stat b:zstat 2> /dev/null || return 1
  2857.     dir=${2:+$2/}
  2858.     dir=${(Q)dir}
  2859.     for f in ${(PQ)1}
  2860.     do
  2861.         if [[ ! -e "$dir$f" ]]
  2862.         then
  2863.             listfiles+=("$dir$f")
  2864.             continue
  2865.         fi
  2866.         zstat -s -H stat -F "%b %e %H:%M" - "$dir$f" > /dev/null 2>&1
  2867.         listfiles+=("$stat[mode] ${(l:3:)stat[nlink]} ${(r:8:)stat[uid]}  ${(r:8:)stat[gid]} ${(l:8:)stat[size]} $stat[mtime] $f")
  2868.     done
  2869.     (( ${#listfiles} )) && listopts=(-d listfiles -l -o)
  2870.     return 0
  2871. }
  2872. _lldb () {
  2873.     # undefined
  2874.     builtin autoload -XUz
  2875. }
  2876. _ln () {
  2877.     # undefined
  2878.     builtin autoload -XUz
  2879. }
  2880. _loadkeys () {
  2881.     # undefined
  2882.     builtin autoload -XUz
  2883. }
  2884. _locale () {
  2885.     # undefined
  2886.     builtin autoload -XUz
  2887. }
  2888. _localedef () {
  2889.     # undefined
  2890.     builtin autoload -XUz
  2891. }
  2892. _locales () {
  2893.     # undefined
  2894.     builtin autoload -XUz
  2895. }
  2896. _locate () {
  2897.     # undefined
  2898.     builtin autoload -XUz
  2899. }
  2900. _logical_volumes () {
  2901.     # undefined
  2902.     builtin autoload -XUz
  2903. }
  2904. _look () {
  2905.     # undefined
  2906.     builtin autoload -XUz
  2907. }
  2908. _lp () {
  2909.     # undefined
  2910.     builtin autoload -XUz
  2911. }
  2912. _ls () {
  2913.     # undefined
  2914.     builtin autoload -XUz
  2915. }
  2916. _lsattr () {
  2917.     # undefined
  2918.     builtin autoload -XUz
  2919. }
  2920. _lsblk () {
  2921.     # undefined
  2922.     builtin autoload -XUz
  2923. }
  2924. _lscfg () {
  2925.     # undefined
  2926.     builtin autoload -XUz
  2927. }
  2928. _lsdev () {
  2929.     # undefined
  2930.     builtin autoload -XUz
  2931. }
  2932. _lslv () {
  2933.     # undefined
  2934.     builtin autoload -XUz
  2935. }
  2936. _lsof () {
  2937.     # undefined
  2938.     builtin autoload -XUz
  2939. }
  2940. _lspv () {
  2941.     # undefined
  2942.     builtin autoload -XUz
  2943. }
  2944. _lsusb () {
  2945.     # undefined
  2946.     builtin autoload -XUz
  2947. }
  2948. _lsvg () {
  2949.     # undefined
  2950.     builtin autoload -XUz
  2951. }
  2952. _ltrace () {
  2953.     # undefined
  2954.     builtin autoload -XUz
  2955. }
  2956. _lua () {
  2957.     # undefined
  2958.     builtin autoload -XUz
  2959. }
  2960. _luarocks () {
  2961.     # undefined
  2962.     builtin autoload -XUz
  2963. }
  2964. _lynx () {
  2965.     # undefined
  2966.     builtin autoload -XUz
  2967. }
  2968. _lz4 () {
  2969.     # undefined
  2970.     builtin autoload -XUz
  2971. }
  2972. _lzop () {
  2973.     # undefined
  2974.     builtin autoload -XUz
  2975. }
  2976. _mac_applications () {
  2977.     # undefined
  2978.     builtin autoload -XUz
  2979. }
  2980. _mac_files_for_application () {
  2981.     # undefined
  2982.     builtin autoload -XUz
  2983. }
  2984. _madison () {
  2985.     # undefined
  2986.     builtin autoload -XUz
  2987. }
  2988. _mail () {
  2989.     # undefined
  2990.     builtin autoload -XUz
  2991. }
  2992. _mailboxes () {
  2993.     # undefined
  2994.     builtin autoload -XUz
  2995. }
  2996. _main_complete () {
  2997.     local IFS=$' \t\n\0'
  2998.     eval "$_comp_setup"
  2999.     local func funcs ret=1 tmp _compskip format nm call match min max i num _completers _completer _completer_num curtag _comp_force_list _matchers _matcher _c_matcher _matcher_num _comp_tags _comp_mesg mesg str context state state_descr line opt_args val_args curcontext="$curcontext" _last_nmatches=-1 _last_menu_style _def_menu_style _menu_style sel _tags_level=0 _saved_exact="${compstate[exact]}" _saved_lastprompt="${compstate[last_prompt]}" _saved_list="${compstate[list]}" _saved_insert="${compstate[insert]}" _saved_colors="$ZLS_COLORS" _saved_colors_set=${+ZLS_COLORS} _ambiguous_color=''
  3000.     local _comp_priv_prefix
  3001.     unset _comp_priv_prefix
  3002.     local -a precommands
  3003.     typeset -U _lastdescr _comp_ignore _comp_colors
  3004.     {
  3005.         [[ -z "$curcontext" ]] && curcontext=:::
  3006.         zstyle -s ":completion:${curcontext}:" insert-tab tmp || tmp=yes
  3007.         if [[ ( "$tmp" = *pending(|[[:blank:]]*) && PENDING -gt 0 ) || ( "$tmp" = *pending=(#b)([0-9]##)(|[[:blank:]]*) && PENDING -ge $match[1] ) ]]
  3008.         then
  3009.             compstate[insert]=tab
  3010.             return 0
  3011.         fi
  3012.         if [[ "$compstate[insert]" = tab* ]]
  3013.         then
  3014.             if [[ "$tmp" = (|*[[:blank:]])(yes|true|on|1)(|[[:blank:]]*) ]]
  3015.             then
  3016.                 if [[ "$curcontext" != :* || -z "$compstate[vared]" ]] || zstyle -t ":completion:vared${curcontext}:" insert-tab
  3017.                 then
  3018.                     return 0
  3019.                 fi
  3020.             fi
  3021.             compstate[insert]="${compstate[insert]//tab /}"
  3022.         fi
  3023.         if [[ "$compstate[pattern_match]" = "*" && "$_lastcomp[unambiguous]" = "$PREFIX" && -n "$_lastcomp[unambiguous_cursor]" ]]
  3024.         then
  3025.             integer upos="$_lastcomp[unambiguous_cursor]"
  3026.             SUFFIX="$PREFIX[upos,-1]$SUFFIX"
  3027.             PREFIX="$PREFIX[1,upos-1]"
  3028.         fi
  3029.         if [[ -z "$compstate[quote]" ]]
  3030.         then
  3031.             if [[ -o equals ]] && compset -P 1 '='
  3032.             then
  3033.                 compstate[context]=equal
  3034.             elif [[ "$PREFIX" != */* && "$PREFIX[1]" = '~' ]]
  3035.             then
  3036.                 compset -p 1
  3037.                 compstate[context]=tilde
  3038.             fi
  3039.         fi
  3040.         _setup default
  3041.         _def_menu_style=("$_last_menu_style[@]")
  3042.         _last_menu_style=()
  3043.         if zstyle -s ":completion:${curcontext}:default" list-prompt tmp
  3044.         then
  3045.             LISTPROMPT="$tmp"
  3046.             zmodload -i zsh/complist
  3047.         fi
  3048.         if zstyle -s ":completion:${curcontext}:default" select-prompt tmp
  3049.         then
  3050.             MENUPROMPT="$tmp"
  3051.             zmodload -i zsh/complist
  3052.         fi
  3053.         if zstyle -s ":completion:${curcontext}:default" select-scroll tmp
  3054.         then
  3055.             MENUSCROLL="$tmp"
  3056.             zmodload -i zsh/complist
  3057.         fi
  3058.         if (( $# ))
  3059.         then
  3060.             if [[ "$1" = - ]]
  3061.             then
  3062.                 if [[ $# -lt 3 ]]
  3063.                 then
  3064.                     _completers=()
  3065.                 else
  3066.                     _completers=("$2")
  3067.                     call=yes
  3068.                 fi
  3069.             else
  3070.                 _completers=("$@")
  3071.             fi
  3072.         else
  3073.             zstyle -a ":completion:${curcontext}:" completer _completers || _completers=(_complete _ignored)
  3074.         fi
  3075.         _completer_num=1
  3076.         integer SECONDS=0
  3077.         TRAPINT () {
  3078.             zle -M "Killed by signal in ${funcstack[2]} after ${SECONDS}s"
  3079.             zle -R
  3080.             return 130
  3081.         }
  3082.         TRAPQUIT () {
  3083.             zle -M "Killed by signal in ${funcstack[2]} after ${SECONDS}s"
  3084.             zle -R
  3085.             return 131
  3086.         }
  3087.         funcs=("$compprefuncs[@]")
  3088.         compprefuncs=()
  3089.         for func in "$funcs[@]"
  3090.         do
  3091.             "$func"
  3092.         done
  3093.         for tmp in "$_completers[@]"
  3094.         do
  3095.             if [[ -n "$call" ]]
  3096.             then
  3097.                 _completer="${tmp}"
  3098.             elif [[ "$tmp" = *:-* ]]
  3099.             then
  3100.                 _completer="${${tmp%:*}[2,-1]//_/-}${tmp#*:}"
  3101.                 tmp="${tmp%:*}"
  3102.             elif [[ $tmp = *:* ]]
  3103.             then
  3104.                 _completer="${tmp#*:}"
  3105.                 tmp="${tmp%:*}"
  3106.             else
  3107.                 _completer="${tmp[2,-1]//_/-}"
  3108.             fi
  3109.             curcontext="${curcontext/:[^:]#:/:${_completer}:}"
  3110.             zstyle -t ":completion:${curcontext}:" show-completer && zle -R "Trying completion for :completion:${curcontext}"
  3111.             zstyle -a ":completion:${curcontext}:" matcher-list _matchers || _matchers=('')
  3112.             _matcher_num=1
  3113.             _matcher=''
  3114.             for _c_matcher in "$_matchers[@]"
  3115.             do
  3116.                 if [[ "$_c_matcher" == +* ]]
  3117.                 then
  3118.                     _matcher="$_matcher $_c_matcher[2,-1]"
  3119.                 else
  3120.                     _matcher="$_c_matcher"
  3121.                 fi
  3122.                 _comp_mesg=
  3123.                 if [[ -n "$call" ]]
  3124.                 then
  3125.                     if "${(@)argv[3,-1]}"
  3126.                     then
  3127.                         ret=0
  3128.                         break 2
  3129.                     fi
  3130.                 elif "$tmp"
  3131.                 then
  3132.                     ret=0
  3133.                     break 2
  3134.                 fi
  3135.                 (( _matcher_num++ ))
  3136.             done
  3137.             [[ -n "$_comp_mesg" ]] && break
  3138.             (( _completer_num++ ))
  3139.         done
  3140.         curcontext="${curcontext/:[^:]#:/::}"
  3141.         if [[ $compstate[old_list] = keep ]]
  3142.         then
  3143.             nm=$_lastcomp[nmatches]
  3144.         else
  3145.             nm=$compstate[nmatches]
  3146.         fi
  3147.         if [[ $compstate[old_list] = keep || nm -gt 1 ]]
  3148.         then
  3149.             [[ _last_nmatches -ge 0 && _last_nmatches -ne nm ]] && _menu_style=("$_last_menu_style[@]" "$_menu_style[@]")
  3150.             tmp=$(( compstate[list_lines] + BUFFERLINES + 1 ))
  3151.             _menu_style=("$_menu_style[@]" "$_def_menu_style[@]")
  3152.             if [[ "$compstate[list]" = *list && tmp -gt LINES && ( -n "$_menu_style[(r)select=long-list]" || -n "$_menu_style[(r)(yes|true|on|1)=long-list]" ) ]]
  3153.             then
  3154.                 compstate[insert]=menu
  3155.             elif [[ "$compstate[insert]" = "$_saved_insert" ]]
  3156.             then
  3157.                 if [[ -n "$compstate[insert]" && -n "$_menu_style[(r)(yes|true|1|on)=long]" && tmp -gt LINES ]]
  3158.                 then
  3159.                     compstate[insert]=menu
  3160.                 else
  3161.                     sel=("${(@M)_menu_style:#(yes|true|1|on)*}")
  3162.                     if (( $#sel ))
  3163.                     then
  3164.                         min=9999999
  3165.                         for i in "$sel[@]"
  3166.                         do
  3167.                             if [[ "$i" = *\=[0-9]* ]]
  3168.                             then
  3169.                                 num="${i#*\=}"
  3170.                                 [[ num -lt 0 ]] && num=0
  3171.                             elif [[ "$i" != *\=* ]]
  3172.                             then
  3173.                                 num=0
  3174.                             else
  3175.                                 num=9999999
  3176.                             fi
  3177.                             [[ num -lt min ]] && min="$num"
  3178.                             (( min )) || break
  3179.                         done
  3180.                     fi
  3181.                     sel=("${(@M)_menu_style:#(no|false|0|off)*}")
  3182.                     if (( $#sel ))
  3183.                     then
  3184.                         max=9999999
  3185.                         for i in "$sel[@]"
  3186.                         do
  3187.                             if [[ "$i" = *\=[0-9]* ]]
  3188.                             then
  3189.                                 num="${i#*\=}"
  3190.                                 [[ num -lt 0 ]] && num=0
  3191.                             elif [[ "$i" != *\=* ]]
  3192.                             then
  3193.                                 num=0
  3194.                             else
  3195.                                 num=9999999
  3196.                             fi
  3197.                             [[ num -lt max ]] && max="$num"
  3198.                             (( max )) || break
  3199.                         done
  3200.                     fi
  3201.                     if [[ ( -n "$min" && nm -ge min && ( -z "$max" || nm -lt max ) ) || ( -n "$_menu_style[(r)auto*]" && "$compstate[insert]" = automenu ) ]]
  3202.                     then
  3203.                         compstate[insert]=menu
  3204.                     elif [[ -n "$max" && nm -ge max ]]
  3205.                     then
  3206.                         compstate[insert]=unambiguous
  3207.                     elif [[ -n "$_menu_style[(r)auto*]" && "$compstate[insert]" != automenu ]]
  3208.                     then
  3209.                         compstate[insert]=automenu-unambiguous
  3210.                     fi
  3211.                 fi
  3212.             fi
  3213.             if [[ "$compstate[insert]" = *menu* ]]
  3214.             then
  3215.                 [[ "$MENUSELECT" = 00 ]] && MENUSELECT=0
  3216.                 if [[ -n "$_menu_style[(r)no-select*]" ]]
  3217.                 then
  3218.                     unset MENUSELECT
  3219.                 elif [[ -n "$_menu_style[(r)select=long*]" ]]
  3220.                 then
  3221.                     if [[ tmp -gt LINES ]]
  3222.                     then
  3223.                         zmodload -i zsh/complist
  3224.                         MENUSELECT=00
  3225.                     fi
  3226.                 fi
  3227.                 if [[ "$MENUSELECT" != 00 ]]
  3228.                 then
  3229.                     sel=("${(@M)_menu_style:#select*}")
  3230.                     if (( $#sel ))
  3231.                     then
  3232.                         min=9999999
  3233.                         for i in "$sel[@]"
  3234.                         do
  3235.                             if [[ "$i" = *\=[0-9]* ]]
  3236.                             then
  3237.                                 num="${i#*\=}"
  3238.                                 [[ num -lt 0 ]] && num=0
  3239.                             elif [[ "$i" != *\=* ]]
  3240.                             then
  3241.                                 num=0
  3242.                             else
  3243.                                 num=9999999
  3244.                             fi
  3245.                             [[ num -lt min ]] && min="$num"
  3246.                             (( min )) || break
  3247.                         done
  3248.                         zmodload -i zsh/complist
  3249.                         MENUSELECT="$min"
  3250.                     else
  3251.                         unset MENUSELECT
  3252.                     fi
  3253.                 fi
  3254.                 if [[ -n "$MENUSELECT" ]]
  3255.                 then
  3256.                     if [[ -n "$_menu_style[(r)interactive*]" ]]
  3257.                     then
  3258.                         MENUMODE=interactive
  3259.                     elif [[ -n "$_menu_style[(r)search*]" ]]
  3260.                     then
  3261.                         if [[ -n "$_menu_style[(r)*backward*]" ]]
  3262.                         then
  3263.                             MENUMODE=search-backward
  3264.                         else
  3265.                             MENUMODE=search-forward
  3266.                         fi
  3267.                     else
  3268.                         unset MENUMODE
  3269.                     fi
  3270.                 fi
  3271.             fi
  3272.         elif [[ nm -lt 1 && -n "$_comp_mesg" ]]
  3273.         then
  3274.             compstate[insert]=''
  3275.             compstate[list]='list force'
  3276.         elif [[ nm -eq 0 && -z "$_comp_mesg" && $#_lastdescr -ne 0 && $compstate[old_list] != keep ]] && zstyle -s ":completion:${curcontext}:warnings" format format
  3277.         then
  3278.             compstate[list]='list force'
  3279.             compstate[insert]=''
  3280.             tmp=("\`${(@)^_lastdescr:#}'")
  3281.             case $#tmp in
  3282.                 (1) str="$tmp[1]"  ;;
  3283.                 (2) str="$tmp[1] or $tmp[2]"  ;;
  3284.                 (*) str="${(j:, :)tmp[1,-2]}, or $tmp[-1]"  ;;
  3285.             esac
  3286.             _setup warnings
  3287.             zformat -f mesg "$format" "d:$str" "D:${(F)${(@)_lastdescr:#}}"
  3288.             compadd -x "$mesg"
  3289.         fi
  3290.         if [[ -n "$_ambiguous_color" ]]
  3291.         then
  3292.             local toquote='[=\(\)\|~^?*[\]#<>]'
  3293.             local prefix=${${compstate[unambiguous]}[1,${compstate[unambiguous_cursor]}-1]}
  3294.             [[ -n $prefix ]] && _comp_colors+=("=(#i)${prefix[1,-2]//?/(}${prefix[1,-2]//(#m)?/${MATCH/$~toquote/\\$MATCH}|)}${prefix[-1]//(#m)$~toquote/\\$MATCH}(#b)(?|)*==$_ambiguous_color")
  3295.         fi
  3296.         [[ "$_comp_force_list" = always || ( "$_comp_force_list" = ?* && nm -ge _comp_force_list ) ]] && compstate[list]="${compstate[list]//messages} force"
  3297.     } always {
  3298.         if [[ "$compstate[old_list]" = keep ]]
  3299.         then
  3300.             if [[ $_saved_colors_set = 1 ]]
  3301.             then
  3302.                 ZLS_COLORS="$_saved_colors"
  3303.             else
  3304.                 unset ZLS_COLORS
  3305.             fi
  3306.         elif (( $#_comp_colors ))
  3307.         then
  3308.             ZLS_COLORS="${(j.:.)_comp_colors}"
  3309.         else
  3310.             unset ZLS_COLORS
  3311.         fi
  3312.     }
  3313.     funcs=("$comppostfuncs[@]")
  3314.     comppostfuncs=()
  3315.     for func in "$funcs[@]"
  3316.     do
  3317.         "$func"
  3318.     done
  3319.     _lastcomp=("${(@kv)compstate}")
  3320.     _lastcomp[nmatches]=$nm
  3321.     _lastcomp[completer]="$_completer"
  3322.     _lastcomp[prefix]="$PREFIX"
  3323.     _lastcomp[suffix]="$SUFFIX"
  3324.     _lastcomp[iprefix]="$IPREFIX"
  3325.     _lastcomp[isuffix]="$ISUFFIX"
  3326.     _lastcomp[qiprefix]="$QIPREFIX"
  3327.     _lastcomp[qisuffix]="$QISUFFIX"
  3328.     _lastcomp[tags]="$_comp_tags"
  3329.     return ret
  3330. }
  3331. _make () {
  3332.     # undefined
  3333.     builtin autoload -XUz
  3334. }
  3335. _make-kpkg () {
  3336.     # undefined
  3337.     builtin autoload -XUz
  3338. }
  3339. _man () {
  3340.     # undefined
  3341.     builtin autoload -XUz
  3342. }
  3343. _match () {
  3344.     # undefined
  3345.     builtin autoload -XUz
  3346. }
  3347. _math () {
  3348.     # undefined
  3349.     builtin autoload -XUz
  3350. }
  3351. _math_params () {
  3352.     # undefined
  3353.     builtin autoload -XUz
  3354. }
  3355. _matlab () {
  3356.     # undefined
  3357.     builtin autoload -XUz
  3358. }
  3359. _md5sum () {
  3360.     # undefined
  3361.     builtin autoload -XUz
  3362. }
  3363. _mdadm () {
  3364.     # undefined
  3365.     builtin autoload -XUz
  3366. }
  3367. _mdfind () {
  3368.     # undefined
  3369.     builtin autoload -XUz
  3370. }
  3371. _mdls () {
  3372.     # undefined
  3373.     builtin autoload -XUz
  3374. }
  3375. _mdutil () {
  3376.     # undefined
  3377.     builtin autoload -XUz
  3378. }
  3379. _members () {
  3380.     # undefined
  3381.     builtin autoload -XUz
  3382. }
  3383. _mencal () {
  3384.     # undefined
  3385.     builtin autoload -XUz
  3386. }
  3387. _menu () {
  3388.     # undefined
  3389.     builtin autoload -XUz
  3390. }
  3391. _mere () {
  3392.     # undefined
  3393.     builtin autoload -XUz
  3394. }
  3395. _mergechanges () {
  3396.     # undefined
  3397.     builtin autoload -XUz
  3398. }
  3399. _message () {
  3400.     # undefined
  3401.     builtin autoload -XUz
  3402. }
  3403. _mh () {
  3404.     # undefined
  3405.     builtin autoload -XUz
  3406. }
  3407. _mii-tool () {
  3408.     # undefined
  3409.     builtin autoload -XUz
  3410. }
  3411. _mime_types () {
  3412.     # undefined
  3413.     builtin autoload -XUz
  3414. }
  3415. _mixerctl () {
  3416.     # undefined
  3417.     builtin autoload -XUz
  3418. }
  3419. _mkdir () {
  3420.     # undefined
  3421.     builtin autoload -XUz
  3422. }
  3423. _mkfifo () {
  3424.     # undefined
  3425.     builtin autoload -XUz
  3426. }
  3427. _mknod () {
  3428.     # undefined
  3429.     builtin autoload -XUz
  3430. }
  3431. _mkshortcut () {
  3432.     # undefined
  3433.     builtin autoload -XUz
  3434. }
  3435. _mktemp () {
  3436.     # undefined
  3437.     builtin autoload -XUz
  3438. }
  3439. _mkzsh () {
  3440.     # undefined
  3441.     builtin autoload -XUz
  3442. }
  3443. _module () {
  3444.     # undefined
  3445.     builtin autoload -XUz
  3446. }
  3447. _module-assistant () {
  3448.     # undefined
  3449.     builtin autoload -XUz
  3450. }
  3451. _module_math_func () {
  3452.     # undefined
  3453.     builtin autoload -XUz
  3454. }
  3455. _modutils () {
  3456.     # undefined
  3457.     builtin autoload -XUz
  3458. }
  3459. _mondo () {
  3460.     # undefined
  3461.     builtin autoload -XUz
  3462. }
  3463. _monotone () {
  3464.     # undefined
  3465.     builtin autoload -XUz
  3466. }
  3467. _moosic () {
  3468.     # undefined
  3469.     builtin autoload -XUz
  3470. }
  3471. _mosh () {
  3472.     # undefined
  3473.     builtin autoload -XUz
  3474. }
  3475. _most_recent_file () {
  3476.     # undefined
  3477.     builtin autoload -XUz
  3478. }
  3479. _mount () {
  3480.     # undefined
  3481.     builtin autoload -XUz
  3482. }
  3483. _mozilla () {
  3484.     # undefined
  3485.     builtin autoload -XUz
  3486. }
  3487. _mpc () {
  3488.     # undefined
  3489.     builtin autoload -XUz
  3490. }
  3491. _mplayer () {
  3492.     # undefined
  3493.     builtin autoload -XUz
  3494. }
  3495. _mt () {
  3496.     # undefined
  3497.     builtin autoload -XUz
  3498. }
  3499. _mtools () {
  3500.     # undefined
  3501.     builtin autoload -XUz
  3502. }
  3503. _mtr () {
  3504.     # undefined
  3505.     builtin autoload -XUz
  3506. }
  3507. _multi_parts () {
  3508.     # undefined
  3509.     builtin autoload -XUz
  3510. }
  3511. _mupdf () {
  3512.     # undefined
  3513.     builtin autoload -XUz
  3514. }
  3515. _mutt () {
  3516.     # undefined
  3517.     builtin autoload -XUz
  3518. }
  3519. _mv () {
  3520.     # undefined
  3521.     builtin autoload -XUz
  3522. }
  3523. _my_accounts () {
  3524.     # undefined
  3525.     builtin autoload -XUz
  3526. }
  3527. _mysql_utils () {
  3528.     # undefined
  3529.     builtin autoload -XUz
  3530. }
  3531. _mysqldiff () {
  3532.     # undefined
  3533.     builtin autoload -XUz
  3534. }
  3535. _nautilus () {
  3536.     # undefined
  3537.     builtin autoload -XUz
  3538. }
  3539. _nbsd_architectures () {
  3540.     # undefined
  3541.     builtin autoload -XUz
  3542. }
  3543. _ncftp () {
  3544.     # undefined
  3545.     builtin autoload -XUz
  3546. }
  3547. _nedit () {
  3548.     # undefined
  3549.     builtin autoload -XUz
  3550. }
  3551. _net_interfaces () {
  3552.     # undefined
  3553.     builtin autoload -XUz
  3554. }
  3555. _netcat () {
  3556.     # undefined
  3557.     builtin autoload -XUz
  3558. }
  3559. _netscape () {
  3560.     # undefined
  3561.     builtin autoload -XUz
  3562. }
  3563. _netstat () {
  3564.     # undefined
  3565.     builtin autoload -XUz
  3566. }
  3567. _networkmanager () {
  3568.     # undefined
  3569.     builtin autoload -XUz
  3570. }
  3571. _networksetup () {
  3572.     # undefined
  3573.     builtin autoload -XUz
  3574. }
  3575. _newsgroups () {
  3576.     # undefined
  3577.     builtin autoload -XUz
  3578. }
  3579. _next_label () {
  3580.     local __gopt __descr __spec
  3581.     __gopt=()
  3582.     zparseopts -D -a __gopt 1 2 V J x
  3583.     if comptags -A "$1" curtag __spec
  3584.     then
  3585.         (( $#funcstack > _tags_level )) && _comp_tags="${_comp_tags% * }"
  3586.         _tags_level=$#funcstack
  3587.         _comp_tags="$_comp_tags $__spec "
  3588.         if [[ "$curtag" = *[^\\]:* ]]
  3589.         then
  3590.             zformat -f __descr "${curtag#*:}" "d:$3"
  3591.             _description "$__gopt[@]" "${curtag%:*}" "$2" "$__descr"
  3592.             curtag="${curtag%:*}"
  3593.             set -A $2 "${(P@)2}" "${(@)argv[4,-1]}"
  3594.         else
  3595.             _description "$__gopt[@]" "$curtag" "$2" "$3"
  3596.             set -A $2 "${(@)argv[4,-1]}" "${(P@)2}"
  3597.         fi
  3598.         return 0
  3599.     fi
  3600.     return 1
  3601. }
  3602. _next_tags () {
  3603.     # undefined
  3604.     builtin autoload -XUz
  3605. }
  3606. _nginx () {
  3607.     # undefined
  3608.     builtin autoload -XUz
  3609. }
  3610. _ngrep () {
  3611.     # undefined
  3612.     builtin autoload -XUz
  3613. }
  3614. _nice () {
  3615.     # undefined
  3616.     builtin autoload -XUz
  3617. }
  3618. _nkf () {
  3619.     # undefined
  3620.     builtin autoload -XUz
  3621. }
  3622. _nl () {
  3623.     # undefined
  3624.     builtin autoload -XUz
  3625. }
  3626. _nm () {
  3627.     # undefined
  3628.     builtin autoload -XUz
  3629. }
  3630. _nmap () {
  3631.     # undefined
  3632.     builtin autoload -XUz
  3633. }
  3634. _normal () {
  3635.     local _comp_command1 _comp_command2 _comp_command skip
  3636.     if [[ "$1" = -s ]]
  3637.     then
  3638.         skip=(-s)
  3639.     else
  3640.         skip=()
  3641.         _compskip=''
  3642.     fi
  3643.     if [[ -o BANG_HIST && ( ( $words[CURRENT] = \!*: && -z $compstate[quote] ) || ( $words[CURRENT] = \"\!*: && $compstate[all_quotes] = \" ) ) ]]
  3644.     then
  3645.         PREFIX=${PREFIX//\\!/!}
  3646.         compset -P '*:'
  3647.         _history_modifiers h
  3648.         return
  3649.     fi
  3650.     if [[ CURRENT -eq 1 ]]
  3651.     then
  3652.         curcontext="${curcontext%:*:*}:-command-:"
  3653.         comp="$_comps[-command-]"
  3654.         [[ -n "$comp" ]] && eval "$comp" && return
  3655.         return 1
  3656.     fi
  3657.     _set_command
  3658.     _dispatch "$skip[@]" "$_comp_command" "$_comp_command1" "$_comp_command2" -default-
  3659. }
  3660. _nothing () {
  3661.     # undefined
  3662.     builtin autoload -XUz
  3663. }
  3664. _notmuch () {
  3665.     # undefined
  3666.     builtin autoload -XUz
  3667. }
  3668. _npm () {
  3669.     # undefined
  3670.     builtin autoload -XUz
  3671. }
  3672. _nslookup () {
  3673.     # undefined
  3674.     builtin autoload -XUz
  3675. }
  3676. _numfmt () {
  3677.     # undefined
  3678.     builtin autoload -XUz
  3679. }
  3680. _nvram () {
  3681.     # undefined
  3682.     builtin autoload -XUz
  3683. }
  3684. _objdump () {
  3685.     # undefined
  3686.     builtin autoload -XUz
  3687. }
  3688. _object_classes () {
  3689.     # undefined
  3690.     builtin autoload -XUz
  3691. }
  3692. _object_files () {
  3693.     # undefined
  3694.     builtin autoload -XUz
  3695. }
  3696. _obsd_architectures () {
  3697.     # undefined
  3698.     builtin autoload -XUz
  3699. }
  3700. _od () {
  3701.     # undefined
  3702.     builtin autoload -XUz
  3703. }
  3704. _okular () {
  3705.     # undefined
  3706.     builtin autoload -XUz
  3707. }
  3708. _oldlist () {
  3709.     # undefined
  3710.     builtin autoload -XUz
  3711. }
  3712. _omz_diag_dump_check_core_commands () {
  3713.     builtin echo "Core command check:"
  3714.     local redefined name builtins externals reserved_words
  3715.     redefined=()
  3716.     reserved_words=(do done esac then elif else fi for case if while function repeat time until select coproc nocorrect foreach end '!' '[[' '{' '}')
  3717.     builtins=(alias autoload bg bindkey break builtin bye cd chdir command comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues continue dirs disable disown echo echotc echoti emulate enable eval exec exit false fc fg functions getln getopts hash jobs kill let limit log logout noglob popd print printf pushd pushln pwd r read rehash return sched set setopt shift source suspend test times trap true ttyctl type ulimit umask unalias unfunction unhash unlimit unset unsetopt vared wait whence where which zcompile zle zmodload zparseopts zregexparse zstyle)
  3718.     if is-at-least 5.1
  3719.     then
  3720.         reserved_word+=(declare export integer float local readonly typeset)
  3721.     else
  3722.         builtins+=(declare export integer float local readonly typeset)
  3723.     fi
  3724.     builtins_fatal=(builtin command local)
  3725.     externals=(zsh)
  3726.     for name in $reserved_words
  3727.     do
  3728.         if [[ $(builtin whence -w $name) != "$name: reserved" ]]
  3729.         then
  3730.             builtin echo "reserved word '$name' has been redefined"
  3731.             builtin which $name
  3732.             redefined+=$name
  3733.         fi
  3734.     done
  3735.     for name in $builtins
  3736.     do
  3737.         if [[ $(builtin whence -w $name) != "$name: builtin" ]]
  3738.         then
  3739.             builtin echo "builtin '$name' has been redefined"
  3740.             builtin which $name
  3741.             redefined+=$name
  3742.         fi
  3743.     done
  3744.     for name in $externals
  3745.     do
  3746.         if [[ $(builtin whence -w $name) != "$name: command" ]]
  3747.         then
  3748.             builtin echo "command '$name' has been redefined"
  3749.             builtin which $name
  3750.             redefined+=$name
  3751.         fi
  3752.     done
  3753.     if [[ -n "$redefined" ]]
  3754.     then
  3755.         builtin echo "SOME CORE COMMANDS HAVE BEEN REDEFINED: $redefined"
  3756.     else
  3757.         builtin echo "All core commands are defined normally"
  3758.     fi
  3759. }
  3760. _omz_diag_dump_echo_file_w_header () {
  3761.     local file=$1
  3762.     if [[ -f $file || -h $file ]]
  3763.     then
  3764.         builtin echo "========== $file =========="
  3765.         if [[ -h $file ]]
  3766.         then
  3767.             builtin echo "==========    ( => ${file:A} )   =========="
  3768.         fi
  3769.         command cat $file
  3770.         builtin echo "========== end $file =========="
  3771.         builtin echo
  3772.     elif [[ -d $file ]]
  3773.     then
  3774.         builtin echo "File '$file' is a directory"
  3775.     elif [[ ! -e $file ]]
  3776.     then
  3777.         builtin echo "File '$file' does not exist"
  3778.     else
  3779.         command ls -lad "$file"
  3780.     fi
  3781. }
  3782. _omz_diag_dump_one_big_text () {
  3783.     local program programs progfile md5
  3784.     builtin echo oh-my-zsh diagnostic dump
  3785.     builtin echo
  3786.     builtin echo $outfile
  3787.     builtin echo
  3788.     command date
  3789.     command uname -a
  3790.     builtin echo OSTYPE=$OSTYPE
  3791.     builtin echo ZSH_VERSION=$ZSH_VERSION
  3792.     builtin echo User: $USER
  3793.     builtin echo umask: $(umask)
  3794.     builtin echo
  3795.     _omz_diag_dump_os_specific_version
  3796.     builtin echo
  3797.     programs=(sh zsh ksh bash sed cat grep ls find git posh)
  3798.     local progfile="" extra_str="" sha_str=""
  3799.     for program in $programs
  3800.     do
  3801.         extra_str="" sha_str=""
  3802.         progfile=$(builtin which $program)
  3803.         if [[ $? == 0 ]]
  3804.         then
  3805.             if [[ -e $progfile ]]
  3806.             then
  3807.                 if builtin whence shasum &> /dev/null
  3808.                 then
  3809.                     sha_str=($(command shasum $progfile))
  3810.                     sha_str=$sha_str[1]
  3811.                     extra_str+=" SHA $sha_str"
  3812.                 fi
  3813.                 if [[ -h "$progfile" ]]
  3814.                 then
  3815.                     extra_str+=" ( -> ${progfile:A} )"
  3816.                 fi
  3817.             fi
  3818.             builtin printf '%-9s %-20s %s\n' "$program is" "$progfile" "$extra_str"
  3819.         else
  3820.             builtin echo "$program: not found"
  3821.         fi
  3822.     done
  3823.     builtin echo
  3824.     builtin echo Command Versions:
  3825.     builtin echo "zsh: $(zsh --version)"
  3826.     builtin echo "this zsh session: $ZSH_VERSION"
  3827.     builtin echo "bash: $(bash --version | command grep bash)"
  3828.     builtin echo "git: $(git --version)"
  3829.     builtin echo "grep: $(grep --version)"
  3830.     builtin echo
  3831.     _omz_diag_dump_check_core_commands || return 1
  3832.     builtin echo
  3833.     builtin echo Process state:
  3834.     builtin echo pwd: $PWD
  3835.     if builtin whence pstree &> /dev/null
  3836.     then
  3837.         builtin echo Process tree for this shell:
  3838.         pstree -p $$
  3839.     else
  3840.         ps -fT
  3841.     fi
  3842.     builtin set | command grep -a '^\(ZSH\|plugins\|TERM\|LC_\|LANG\|precmd\|chpwd\|preexec\|FPATH\|TTY\|DISPLAY\|PATH\)\|OMZ'
  3843.     builtin echo
  3844.     builtin echo Exported:
  3845.     builtin echo $(builtin export | command sed 's/=.*//')
  3846.     builtin echo
  3847.     builtin echo Locale:
  3848.     command locale
  3849.     builtin echo
  3850.     builtin echo Zsh configuration:
  3851.     builtin echo setopt: $(builtin setopt)
  3852.     builtin echo
  3853.     builtin echo zstyle:
  3854.     builtin zstyle
  3855.     builtin echo
  3856.     builtin echo 'compaudit output:'
  3857.     compaudit
  3858.     builtin echo
  3859.     builtin echo '$fpath directories:'
  3860.     command ls -lad $fpath
  3861.     builtin echo
  3862.     builtin echo oh-my-zsh installation:
  3863.     command ls -ld ~/.z*
  3864.     command ls -ld ~/.oh*
  3865.     builtin echo
  3866.     builtin echo oh-my-zsh git state:
  3867.     (
  3868.         cd $ZSH && builtin echo "HEAD: $(git rev-parse HEAD)" && git remote -v && git status | command grep "[^[:space:]]"
  3869.     )
  3870.     if [[ $verbose -ge 1 ]]
  3871.     then
  3872.         (
  3873.             cd $ZSH && git reflog --date=default | command grep pull
  3874.         )
  3875.     fi
  3876.     builtin echo
  3877.     if [[ -e $ZSH_CUSTOM ]]
  3878.     then
  3879.         local custom_dir=$ZSH_CUSTOM
  3880.         if [[ -h $custom_dir ]]
  3881.         then
  3882.             custom_dir=$(cd $custom_dir && pwd -P)
  3883.         fi
  3884.         builtin echo "oh-my-zsh custom dir:"
  3885.         builtin echo "   $ZSH_CUSTOM ($custom_dir)"
  3886.         (
  3887.             cd ${custom_dir:h} && command find ${custom_dir:t} -name .git -prune -o -print
  3888.         )
  3889.         builtin echo
  3890.     fi
  3891.     if [[ $verbose -ge 1 ]]
  3892.     then
  3893.         builtin echo "bindkey:"
  3894.         builtin bindkey
  3895.         builtin echo
  3896.         builtin echo "infocmp:"
  3897.         command infocmp -L
  3898.         builtin echo
  3899.     fi
  3900.     local zdotdir=${ZDOTDIR:-$HOME}
  3901.     builtin echo "Zsh configuration files:"
  3902.     local cfgfile cfgfiles
  3903.     cfgfiles=(/etc/zshenv /etc/zprofile /etc/zshrc /etc/zlogin /etc/zlogout $zdotdir/.zshenv $zdotdir/.zprofile $zdotdir/.zshrc $zdotdir/.zlogin $zdotdir/.zlogout ~/.zsh.pre-oh-my-zsh /etc/bashrc /etc/profile ~/.bashrc ~/.profile ~/.bash_profile ~/.bash_logout)
  3904.     command ls -lad $cfgfiles 2>&1
  3905.     builtin echo
  3906.     if [[ $verbose -ge 1 ]]
  3907.     then
  3908.         for cfgfile in $cfgfiles
  3909.         do
  3910.             _omz_diag_dump_echo_file_w_header $cfgfile
  3911.         done
  3912.     fi
  3913.     builtin echo
  3914.     builtin echo "Zsh compdump files:"
  3915.     local dumpfile dumpfiles
  3916.     command ls -lad $zdotdir/.zcompdump*
  3917.     dumpfiles=($zdotdir/.zcompdump*(N))
  3918.     if [[ $verbose -ge 2 ]]
  3919.     then
  3920.         for dumpfile in $dumpfiles
  3921.         do
  3922.             _omz_diag_dump_echo_file_w_header $dumpfile
  3923.         done
  3924.     fi
  3925. }
  3926. _omz_diag_dump_os_specific_version () {
  3927.     local osname osver version_file version_files
  3928.     case "$OSTYPE" in
  3929.         (darwin*) osname=$(command sw_vers -productName)
  3930.             osver=$(command sw_vers -productVersion)
  3931.             builtin echo "OS Version: $osname $osver build $(sw_vers -buildVersion)" ;;
  3932.         (cygwin) command systeminfo | command head -4 | command tail -2 ;;
  3933.     esac
  3934.     if builtin which lsb_release > /dev/null
  3935.     then
  3936.         builtin echo "OS Release: $(command lsb_release -s -d)"
  3937.     fi
  3938.     version_files=(/etc/*-release(N) /etc/*-version(N) /etc/*_version(N))
  3939.     for version_file in $version_files
  3940.     do
  3941.         builtin echo "$version_file:"
  3942.         command cat "$version_file"
  3943.         builtin echo
  3944.     done
  3945. }
  3946. _open () {
  3947.     # undefined
  3948.     builtin autoload -XUz
  3949. }
  3950. _openstack () {
  3951.     # undefined
  3952.     builtin autoload -XUz
  3953. }
  3954. _opkg () {
  3955.     # undefined
  3956.     builtin autoload -XUz
  3957. }
  3958. _options () {
  3959.     # undefined
  3960.     builtin autoload -XUz
  3961. }
  3962. _options_set () {
  3963.     # undefined
  3964.     builtin autoload -XUz
  3965. }
  3966. _options_unset () {
  3967.     # undefined
  3968.     builtin autoload -XUz
  3969. }
  3970. _osascript () {
  3971.     # undefined
  3972.     builtin autoload -XUz
  3973. }
  3974. _osc () {
  3975.     # undefined
  3976.     builtin autoload -XUz
  3977. }
  3978. _other_accounts () {
  3979.     # undefined
  3980.     builtin autoload -XUz
  3981. }
  3982. _otool () {
  3983.     # undefined
  3984.     builtin autoload -XUz
  3985. }
  3986. _pack () {
  3987.     # undefined
  3988.     builtin autoload -XUz
  3989. }
  3990. _parameter () {
  3991.     # undefined
  3992.     builtin autoload -XUz
  3993. }
  3994. _parameters () {
  3995.     local expl pattern fakes faked tmp pfilt
  3996.     if compset -P '*:'
  3997.     then
  3998.         _history_modifiers p
  3999.         return
  4000.     fi
  4001.     pattern=(-g \*)
  4002.     zparseopts -D -K -E g:=pattern
  4003.     fakes=()
  4004.     faked=()
  4005.     if zstyle -a ":completion:${curcontext}:" fake-parameters tmp
  4006.     then
  4007.         for i in "$tmp[@]"
  4008.         do
  4009.             if [[ "$i" = *:* ]]
  4010.             then
  4011.                 faked=("$faked[@]" "$i")
  4012.             else
  4013.                 fakes=("$fakes[@]" "$i")
  4014.             fi
  4015.         done
  4016.     fi
  4017.     zstyle -t ":completion:${curcontext}:parameters" prefix-needed && [[ $PREFIX != [_.]* ]] && pfilt='[^_.]'
  4018.     _wanted parameters expl parameter compadd "$@" -Q - "${(@M)${(@k)parameters[(R)${pattern[2]}~*local*]}:#${~pfilt}*}" "$fakes[@]" "${(@)${(@M)faked:#${~pattern[2]}}%%:*}"
  4019. }
  4020. _paste () {
  4021.     # undefined
  4022.     builtin autoload -XUz
  4023. }
  4024. _patch () {
  4025.     # undefined
  4026.     builtin autoload -XUz
  4027. }
  4028. _patchutils () {
  4029.     # undefined
  4030.     builtin autoload -XUz
  4031. }
  4032. _path_commands () {
  4033.     local need_desc expl ret=1
  4034.     if zstyle -t ":completion:${curcontext}:" extra-verbose
  4035.     then
  4036.         local update_policy first
  4037.         if [[ $+_command_descriptions -eq 0 ]]
  4038.         then
  4039.             first=yes
  4040.             typeset -A -g _command_descriptions
  4041.         fi
  4042.         zstyle -s ":completion:${curcontext}:" cache-policy update_policy
  4043.         [[ -z "$update_policy" ]] && zstyle ":completion:${curcontext}:" cache-policy _path_commands_caching_policy
  4044.         if (
  4045.                 [[ -n $first ]] || _cache_invalid command-descriptions
  4046.             ) && ! _retrieve_cache command-descriptions
  4047.         then
  4048.             local line
  4049.             for line in "${(f)$(_call_program command-descriptions _call_whatis -s 1 -r .\\\*\; _call_whatis -s 6 -r .\\\* 2>/dev/null)}"
  4050.             do
  4051.                 [[ -n ${line:#(#b)([^ ]#) #\([^ ]#\)( #\[[^ ]#\]|)[ -]#(*)} ]] && continue
  4052.                 [[ -z $match[1] || -z $match[3] || -z ${${match[1]}:#*:*} ]] && continue
  4053.                 _command_descriptions[$match[1]]=$match[3]
  4054.             done
  4055.             _store_cache command-descriptions _command_descriptions
  4056.         fi
  4057.         (( $#_command_descriptions )) && need_desc=yes
  4058.     fi
  4059.     if [[ -n $need_desc ]]
  4060.     then
  4061.         typeset -a dcmds descs cmds matches
  4062.         local desc cmd sep
  4063.         compadd "$@" -O matches -k commands
  4064.         for cmd in $matches
  4065.         do
  4066.             desc=$_command_descriptions[$cmd]
  4067.             if [[ -z $desc ]]
  4068.             then
  4069.                 cmds+=$cmd
  4070.             else
  4071.                 dcmds+=$cmd
  4072.                 descs+="$cmd:$desc"
  4073.             fi
  4074.         done
  4075.         zstyle -s ":completion:${curcontext}:" list-separator sep || sep=--
  4076.         zformat -a descs " $sep " $descs
  4077.         descs=("${(@r:COLUMNS-1:)descs}")
  4078.         _wanted commands expl 'external command' compadd "$@" -ld descs -a dcmds && ret=0
  4079.         _wanted commands expl 'external command' compadd "$@" -a cmds && ret=0
  4080.     else
  4081.         _wanted commands expl 'external command' compadd "$@" -k commands && ret=0
  4082.     fi
  4083.     if [[ -o path_dirs ]]
  4084.     then
  4085.         local -a path_dirs
  4086.         path_dirs=(${^path}/*(/N:t))
  4087.         (( ${#path_dirs} )) && _wanted path-dirs expl 'directory in path' compadd "$@" -a path_dirs && ret=0
  4088.         if [[ $PREFIX$SUFFIX = */* ]]
  4089.         then
  4090.             _wanted commands expl 'external command' _path_files -W path -g '*(*)' && ret=0
  4091.         fi
  4092.     fi
  4093.     return $ret
  4094. }
  4095. _path_commands_caching_policy () {
  4096.     local file
  4097.     local -a oldp dbfiles
  4098.     oldp=("$1"(Nmw+1))
  4099.     (( $#oldp )) && return 0
  4100.     dbfiles=(/usr/share/man/index.(bt|db|dir|pag)(N) /usr/man/index.(bt|db|dir|pag)(N) /var/cache/man/index.(bt|db|dir|pag)(N) /var/catman/index.(bt|db|dir|pag)(N) /usr/share/man/*/whatis(N))
  4101.     for file in $dbfiles
  4102.     do
  4103.         [[ $file -nt $1 ]] && return 0
  4104.     done
  4105.     return 1
  4106. }
  4107. _path_files () {
  4108.     local -a match mbegin mend
  4109.     local splitchars
  4110.     if zstyle -s ":completion:${curcontext}:" file-split-chars splitchars
  4111.     then
  4112.         compset -P "*[${(q)splitchars}]"
  4113.     fi
  4114.     if _have_glob_qual $PREFIX
  4115.     then
  4116.         local ret=1
  4117.         compset -p ${#match[1]}
  4118.         compset -S '[^\)\|\~]#(|\))'
  4119.         if [[ $_comp_caller_options[extendedglob] == on ]] && compset -P '\#'
  4120.         then
  4121.             _globflags && ret=0
  4122.         else
  4123.             if [[ $_comp_caller_options[extendedglob] == on ]]
  4124.             then
  4125.                 local -a flags
  4126.                 flags=('#:introduce glob flag')
  4127.                 _describe -t globflags "glob flag" flags -Q -S '' && ret=0
  4128.             fi
  4129.             _globquals && ret=0
  4130.         fi
  4131.         return ret
  4132.     fi
  4133.     local linepath realpath donepath prepath testpath exppath skips skipped
  4134.     local tmp1 tmp2 tmp3 tmp4 i orig eorig pre suf tpre tsuf opre osuf cpre
  4135.     local pats haspats ignore pfx pfxsfx sopt gopt opt sdirs ignpar cfopt listsfx
  4136.     local nm=$compstate[nmatches] menu matcher mopts sort mid accex fake
  4137.     local listfiles listopts tmpdisp origtmp1 Uopt
  4138.     local accept_exact_dirs path_completion
  4139.     integer npathcheck
  4140.     local -a Mopts
  4141.     typeset -U prepaths exppaths
  4142.     exppaths=()
  4143.     zparseopts -a mopts 'P:=pfx' 'S:=pfxsfx' 'q=pfxsfx' 'r:=pfxsfx' 'R:=pfxsfx' 'W:=prepaths' 'F:=ignore' 'M+:=matcher' J+: V+: X+: 1 2 n 'f=tmp1' '/=tmp1' 'g+:-=tmp1'
  4144.     sopt="-${(@j::M)${(@)tmp1#-}#?}"
  4145.     (( $tmp1[(I)-[/g]*] )) && haspats=yes
  4146.     (( $tmp1[(I)-g*] )) && gopt=yes
  4147.     if (( $tmp1[(I)-/] ))
  4148.     then
  4149.         pats="${(@)${(@M)tmp1:#-g*}#-g}"
  4150.         pats=('*(-/)' ${${(z):-x $pats}[2,-1]})
  4151.     else
  4152.         pats="${(@)${(@M)tmp1:#-g*}#-g}"
  4153.         pats=(${${(z):-x $pats}[2,-1]})
  4154.     fi
  4155.     pats=("${(@)pats:# #}")
  4156.     if (( $#pfx ))
  4157.     then
  4158.         compset -P "${(b)pfx[2]}" || pfxsfx=("$pfx[@]" "$pfxsfx[@]")
  4159.     fi
  4160.     if (( $#prepaths ))
  4161.     then
  4162.         tmp1="${prepaths[2]}"
  4163.         if [[ "$tmp1[1]" = '(' ]]
  4164.         then
  4165.             prepaths=(${^=tmp1[2,-2]%/}/)
  4166.         elif [[ "$tmp1[1]" = '/' ]]
  4167.         then
  4168.             prepaths=("${tmp1%/}/")
  4169.         else
  4170.             prepaths=(${(P)^tmp1%/}/)
  4171.             (( ! $#prepaths )) && prepaths=(${tmp1%/}/)
  4172.         fi
  4173.         (( ! $#prepaths )) && prepaths=('')
  4174.     else
  4175.         prepaths=('')
  4176.     fi
  4177.     if (( $#ignore ))
  4178.     then
  4179.         if [[ "${ignore[2]}" = \(* ]]
  4180.         then
  4181.             ignore=(${=ignore[2][2,-2]})
  4182.         else
  4183.             ignore=(${(P)ignore[2]})
  4184.         fi
  4185.     fi
  4186.     if [[ "$sopt" = -(f|) ]]
  4187.     then
  4188.         if [[ -z "$gopt" ]]
  4189.         then
  4190.             sopt='-f'
  4191.             pats=('*')
  4192.         else
  4193.             unset sopt
  4194.         fi
  4195.     fi
  4196.     if (( ! $mopts[(I)-[JVX]] ))
  4197.     then
  4198.         local expl
  4199.         if [[ -z "$gopt" && "$sopt" = -/ ]]
  4200.         then
  4201.             _description directories expl directory
  4202.         else
  4203.             _description files expl file
  4204.         fi
  4205.         tmp1=$expl[(I)-M*]
  4206.         if (( tmp1 ))
  4207.         then
  4208.             if (( $#matcher ))
  4209.             then
  4210.                 matcher[2]="$matcher[2] $expl[1+tmp1]"
  4211.             else
  4212.                 matcher=(-M "$expl[1+tmp1]")
  4213.             fi
  4214.         fi
  4215.         mopts=("$mopts[@]" "$expl[@]")
  4216.     fi
  4217.     [[ -z "$_comp_no_ignore" && $#ignore -eq 0 && ( -z $gopt || "$pats" = \ #\*\ # ) && -n $FIGNORE ]] && ignore=("?*${^fignore[@]}")
  4218.     if (( $#ignore ))
  4219.     then
  4220.         _comp_ignore=("$_comp_ignore[@]" "$ignore[@]")
  4221.         (( $mopts[(I)-F] )) || mopts=("$mopts[@]" -F _comp_ignore)
  4222.     fi
  4223.     if [[ $#matcher -eq 0 && -o nocaseglob ]]
  4224.     then
  4225.         matcher=(-M 'm:{a-zA-Z}={A-Za-z}')
  4226.     fi
  4227.     if (( $#matcher ))
  4228.     then
  4229.         mopts=("$mopts[@]" "$matcher[@]")
  4230.     fi
  4231.     if zstyle -s ":completion:${curcontext}:" file-sort tmp1
  4232.     then
  4233.         case "$tmp1" in
  4234.             (*size*) sort=oL  ;;
  4235.             (*links*) sort=ol  ;;
  4236.             (*(time|date|modi)*) sort=om  ;;
  4237.             (*access*) sort=oa  ;;
  4238.             (*(inode|change)*) sort=oc  ;;
  4239.             (*) sort=on  ;;
  4240.         esac
  4241.         [[ "$tmp1" = *rev* ]] && sort[1]=O
  4242.         [[ "$tmp1" = *follow* ]] && sort="-${sort}-"
  4243.         if [[ "$sort" = on ]]
  4244.         then
  4245.             sort=
  4246.         else
  4247.             mopts=("${(@)mopts/#-J/-V}")
  4248.             tmp2=()
  4249.             for tmp1 in "$pats[@]"
  4250.             do
  4251.                 if _have_glob_qual "$tmp1" complete
  4252.                 then
  4253.                     tmp2+=("${match[1]}#q${sort})(${match[5]})")
  4254.                 else
  4255.                     tmp2+=("${tmp1}(${sort})")
  4256.                 fi
  4257.             done
  4258.             pats=("$tmp2[@]")
  4259.         fi
  4260.     fi
  4261.     if zstyle -t ":completion:${curcontext}:paths" squeeze-slashes
  4262.     then
  4263.         skips='((.|..|)/)##'
  4264.     else
  4265.         skips='((.|..)/)##'
  4266.     fi
  4267.     zstyle -s ":completion:${curcontext}:paths" special-dirs sdirs
  4268.     zstyle -t ":completion:${curcontext}:paths" list-suffixes && listsfx=yes
  4269.     [[ "$pats" = ((|*[[:blank:]])\*(|[[:blank:]]*|\([^[:blank:]]##\))|*\([^[:blank:]]#/[^[:blank:]]#\)*) ]] && sopt=$sopt/
  4270.     zstyle -a ":completion:${curcontext}:paths" accept-exact accex
  4271.     zstyle -a ":completion:${curcontext}:" fake-files fake
  4272.     zstyle -s ":completion:${curcontext}:" ignore-parents ignpar
  4273.     zstyle -t ":completion:${curcontext}:paths" accept-exact-dirs && accept_exact_dirs=1
  4274.     zstyle -T ":completion:${curcontext}:paths" path-completion && path_completion=1
  4275.     if [[ -n "$compstate[pattern_match]" ]]
  4276.     then
  4277.         if {
  4278.                 [[ -z "$SUFFIX" ]] && _have_glob_qual "$PREFIX" complete
  4279.             } || _have_glob_qual "$SUFFIX" complete
  4280.         then
  4281.             tmp3=${match[5]}
  4282.             if [[ -n "$SUFFIX" ]]
  4283.             then
  4284.                 SUFFIX=${match[2]}
  4285.             else
  4286.                 PREFIX=${match[2]}
  4287.             fi
  4288.             tmp2=()
  4289.             for tmp1 in "$pats[@]"
  4290.             do
  4291.                 if _have_glob_qual "$tmp1" complete
  4292.                 then
  4293.                     tmp2+=("${match[1]}${tmp3}${match[5]})")
  4294.                 else
  4295.                     tmp2+=("${tmp1}(${tmp3})")
  4296.                 fi
  4297.             done
  4298.             pats=("$tmp2[@]")
  4299.         fi
  4300.     fi
  4301.     pre="$PREFIX"
  4302.     suf="$SUFFIX"
  4303.     opre="$PREFIX"
  4304.     osuf="$SUFFIX"
  4305.     orig="${PREFIX}${SUFFIX}"
  4306.     eorig="$orig"
  4307.     [[ $compstate[insert] = (*menu|[0-9]*) || -n "$_comp_correct" || ( -n "$compstate[pattern_match]" && "${orig#\~}" != (|*[^\\])[][*?#~^\|\<\>]* ) ]] && menu=yes
  4308.     if [[ -n "$_comp_correct" ]]
  4309.     then
  4310.         cfopt=-
  4311.         Uopt=-U
  4312.     else
  4313.         Mopts=(-M "r:|/=* r:|=*")
  4314.     fi
  4315.     if [[ "$pre" = [^][*?#^\|\<\>\\]#(\`[^\`]#\`|\$)*/* && "$compstate[quote]" != \' ]]
  4316.     then
  4317.         linepath="${(M)pre##*\$[^/]##/}"
  4318.         () {
  4319.             setopt localoptions nounset
  4320.             eval 'realpath=${(e)~linepath}' 2> /dev/null
  4321.         }
  4322.         [[ -z "$realpath" || "$realpath" = "$linepath" ]] && return 1
  4323.         pre="${pre#${linepath}}"
  4324.         i='[^/]'
  4325.         i="${#linepath//$i}"
  4326.         orig="${orig[1,(in:i:)/][1,-2]}"
  4327.         donepath=
  4328.         prepaths=('')
  4329.     elif [[ "$pre[1]" = \~ && "$compstate[quote]" = (|\`) ]]
  4330.     then
  4331.         linepath="${pre[2,-1]%%/*}"
  4332.         if [[ -z "$linepath" ]]
  4333.         then
  4334.             realpath="${HOME%/}/"
  4335.         elif [[ "$linepath" = ([-+]|)[0-9]## ]]
  4336.         then
  4337.             if [[ "$linepath" != [-+]* ]]
  4338.             then
  4339.                 tmp1="$linepath"
  4340.             else
  4341.                 if [[ "$linepath" = -* ]]
  4342.                 then
  4343.                     tmp1=$(( $#dirstack $linepath ))
  4344.                 else
  4345.                     tmp1=$linepath[2,-1]
  4346.                 fi
  4347.                 [[ -o pushdminus ]] && tmp1=$(( $#dirstack - $tmp1 ))
  4348.             fi
  4349.             if (( ! tmp1 ))
  4350.             then
  4351.                 realpath=$PWD/
  4352.             elif [[ tmp1 -le $#dirstack ]]
  4353.             then
  4354.                 realpath=$dirstack[tmp1]/
  4355.             else
  4356.                 _message 'not enough directory stack entries'
  4357.                 return 1
  4358.             fi
  4359.         elif [[ "$linepath" = [-+] ]]
  4360.         then
  4361.             realpath=${~:-\~$linepath}/
  4362.         else
  4363.             eval "realpath=~${linepath}/" 2> /dev/null
  4364.             if [[ -z "$realpath" ]]
  4365.             then
  4366.                 _message "unknown user \`$linepath'"
  4367.                 return 1
  4368.             fi
  4369.         fi
  4370.         linepath="~${linepath}/"
  4371.         [[ "$realpath" = "$linepath" ]] && return 1
  4372.         pre="${pre#*/}"
  4373.         orig="${orig#*/}"
  4374.         donepath=
  4375.         prepaths=('')
  4376.     else
  4377.         linepath=
  4378.         realpath=
  4379.         if zstyle -s ":completion:${curcontext}:" preserve-prefix tmp1 && [[ -n "$tmp1" && "$pre" = (#b)(${~tmp1})* ]]
  4380.         then
  4381.             pre="$pre[${#match[1]}+1,-1]"
  4382.             orig="$orig[${#match[1]}+1,-1]"
  4383.             donepath="$match[1]"
  4384.             prepaths=('')
  4385.         elif [[ "$pre[1]" = / ]]
  4386.         then
  4387.             pre="$pre[2,-1]"
  4388.             orig="$orig[2,-1]"
  4389.             donepath='/'
  4390.             prepaths=('')
  4391.         else
  4392.             [[ "$pre" = (.|..)/* ]] && prepaths=('')
  4393.             donepath=
  4394.         fi
  4395.     fi
  4396.     for prepath in "$prepaths[@]"
  4397.     do
  4398.         skipped=
  4399.         cpre=
  4400.         if [[ ( -n $accept_exact_dirs || -z $path_completion ) && ${pre} = (#b)(*)/([^/]#) ]]
  4401.         then
  4402.             tmp1=${match[1]}
  4403.             tpre=${match[2]}
  4404.             tmp2=$tmp1
  4405.             tmp1=${tmp1//(#b)\\(?)/$match[1]}
  4406.             tpre=${tpre//(#b)\\([^\\\]\[\^\~\(\)\#\*\?])/$match[1]}
  4407.             tmp3=${donepath//(#b)\\(?)/$match[1]}
  4408.             while true
  4409.             do
  4410.                 if [[ -z $path_completion || -d $prepath$realpath$tmp3$tmp2 ]]
  4411.                 then
  4412.                     tmp3=$tmp3$tmp1/
  4413.                     donepath=${tmp3//(#b)([\\\]\[\^\~\(\)\#\*\?])/\\$match[1]}
  4414.                     pre=$tpre
  4415.                     break
  4416.                 elif [[ $tmp1 = (#b)(*)/([^/]#) ]]
  4417.                 then
  4418.                     tmp1=$match[1]
  4419.                     tpre=$match[2]/$tpre
  4420.                 else
  4421.                     break
  4422.                 fi
  4423.             done
  4424.         fi
  4425.         tpre="$pre"
  4426.         tsuf="$suf"
  4427.         testpath="${donepath//(#b)\\([\\\]\[\^\~\(\)\#\*\?])/$match[1]}"
  4428.         tmp2="${(M)tpre##${~skips}}"
  4429.         tpre="${tpre#$tmp2}"
  4430.         tmp1=("$prepath$realpath$donepath$tmp2")
  4431.         (( npathcheck = 0 ))
  4432.         while true
  4433.         do
  4434.             origtmp1=("${tmp1[@]}")
  4435.             if [[ "$tpre" = */* ]]
  4436.             then
  4437.                 PREFIX="${tpre%%/*}"
  4438.                 SUFFIX=
  4439.             else
  4440.                 PREFIX="${tpre}"
  4441.                 SUFFIX="${tsuf%%/*}"
  4442.             fi
  4443.             tmp2=("$tmp1[@]")
  4444.             if [[ "$tpre$tsuf" = (#b)*/(*) ]]
  4445.             then
  4446.                 if [[ -n "$fake${match[1]}" ]]
  4447.                 then
  4448.                     compfiles -P$cfopt tmp1 accex "$skipped" "$_matcher $matcher[2]" "$sdirs" fake
  4449.                 else
  4450.                     compfiles -P$cfopt tmp1 accex "$skipped" "$_matcher $matcher[2]" '' fake
  4451.                 fi
  4452.             elif [[ "$sopt" = *[/f]* ]]
  4453.             then
  4454.                 compfiles -p$cfopt tmp1 accex "$skipped" "$_matcher $matcher[2]" "$sdirs" fake "$pats[@]"
  4455.             else
  4456.                 compfiles -p$cfopt tmp1 accex "$skipped" "$_matcher $matcher[2]" '' fake "$pats[@]"
  4457.             fi
  4458.             tmp1=($~tmp1)  2> /dev/null
  4459.             if [[ -n "$PREFIX$SUFFIX" ]]
  4460.             then
  4461.                 if (( ! $#tmp1 && npathcheck == 0 ))
  4462.                 then
  4463.                     (( npathcheck = 1 ))
  4464.                     for tmp3 in "$tmp2[@]"
  4465.                     do
  4466.                         if [[ -n $tmp3 && $tmp3 != */ ]]
  4467.                         then
  4468.                             tmp3+=/
  4469.                         fi
  4470.                         if [[ -e "$tmp3${(Q)PREFIX}${(Q)SUFFIX}" ]]
  4471.                         then
  4472.                             (( npathcheck = 2 ))
  4473.                         fi
  4474.                     done
  4475.                     if (( npathcheck == 2 ))
  4476.                     then
  4477.                         tmp1=("$origtmp1[@]")
  4478.                         continue
  4479.                     fi
  4480.                 fi
  4481.                 if (( ! $#tmp1 ))
  4482.                 then
  4483.                     tmp2=(${^${tmp2:#/}}/$PREFIX$SUFFIX)
  4484.                 elif [[ "$tmp1[1]" = */* ]]
  4485.                 then
  4486.                     if [[ -n "$_comp_correct" ]]
  4487.                     then
  4488.                         tmp2=("$tmp1[@]")
  4489.                         builtin compadd -D tmp1 "$matcher[@]" - "${(@)tmp1:t}"
  4490.                         if [[ $#tmp1 -eq 0 ]]
  4491.                         then
  4492.                             tmp1=("$tmp2[@]")
  4493.                             compadd -D tmp1 "$matcher[@]" - "${(@)tmp2:t}"
  4494.                         fi
  4495.                     else
  4496.                         tmp2=("$tmp1[@]")
  4497.                         compadd -D tmp1 "$matcher[@]" - "${(@)tmp1:t}"
  4498.                     fi
  4499.                 else
  4500.                     tmp2=('')
  4501.                     compadd -D tmp1 "$matcher[@]" -a tmp1
  4502.                 fi
  4503.                 if (( ! $#tmp1 ))
  4504.                 then
  4505.                     if [[ "$tmp2[1]" = */* ]]
  4506.                     then
  4507.                         tmp2=("${(@)tmp2#${prepath}${realpath}}")
  4508.                         if [[ "$tmp2[1]" = */* ]]
  4509.                         then
  4510.                             tmp2=("${(@)tmp2:h}")
  4511.                             compquote tmp2
  4512.                             if [[ "$tmp2" = */ ]]
  4513.                             then
  4514.                                 exppaths=("$exppaths[@]" ${^tmp2}${tpre}${tsuf})
  4515.                             else
  4516.                                 exppaths=("$exppaths[@]" ${^tmp2}/${tpre}${tsuf})
  4517.                             fi
  4518.                         elif [[ ${tpre}${tsuf} = */* ]]
  4519.                         then
  4520.                             exppaths=("$exppaths[@]" ${tpre}${tsuf})
  4521.                         fi
  4522.                     fi
  4523.                     continue 2
  4524.                 fi
  4525.             elif (( ! $#tmp1 ))
  4526.             then
  4527.                 if [[ -z "$tpre$tsuf" && -n "$pre$suf" ]]
  4528.                 then
  4529.                     pfxsfx=(-S '' "$pfxsfx[@]")
  4530.                 elif [[ -n "$haspats" && -z "$tpre$tsuf$suf" && "$pre" = */ ]]
  4531.                 then
  4532.                     PREFIX="${opre}"
  4533.                     SUFFIX="${osuf}"
  4534.                     compadd -nQS '' - "$linepath$donepath$orig"
  4535.                     tmp4=-
  4536.                 fi
  4537.                 continue 2
  4538.             fi
  4539.             if [[ -n "$ignpar" && -z "$_comp_no_ignore" && "$tpre$tsuf" != */* && $#tmp1 -ne 0 && ( "$ignpar" != *dir* || "$pats" = '*(-/)' ) && ( "$ignpar" != *..* || "$tmp1[1]" = *../* ) ]]
  4540.             then
  4541.                 compfiles -i tmp1 ignore "$ignpar" "$prepath$realpath$donepath"
  4542.                 _comp_ignore+=(${(@)ignore#$prepath$realpath$donepath})
  4543.                 (( $#_comp_ignore && ! $mopts[(I)-F] )) && mopts=("$mopts[@]" -F _comp_ignore)
  4544.             fi
  4545.             if [[ "$tpre" = */* ]]
  4546.             then
  4547.                 tpre="${tpre#*/}"
  4548.             elif [[ "$tsuf" = */* ]]
  4549.             then
  4550.                 tpre="${tsuf#*/}"
  4551.                 tsuf=
  4552.             else
  4553.                 break
  4554.             fi
  4555.             tmp2="${(M)tpre##${~skips}}"
  4556.             if [[ -n "$tmp2" ]]
  4557.             then
  4558.                 skipped="/$tmp2"
  4559.                 tpre="${tpre#$tmp2}"
  4560.             else
  4561.                 skipped=/
  4562.             fi
  4563.             (( npathcheck = 0 ))
  4564.         done
  4565.         tmp3="$pre$suf"
  4566.         tpre="$pre"
  4567.         tsuf="$suf"
  4568.         if [[ -n "${prepath}${realpath}${testpath}" ]]
  4569.         then
  4570.             if [[ -o nocaseglob ]]
  4571.             then
  4572.                 tmp1=("${(@)tmp1#(#i)${prepath}${realpath}${testpath}}")
  4573.             else
  4574.                 tmp1=("${(@)tmp1#${prepath}${realpath}${testpath}}")
  4575.             fi
  4576.         fi
  4577.         while true
  4578.         do
  4579.             compfiles -r tmp1 "${(Q)tmp3}"
  4580.             tmp4=$?
  4581.             if [[ "$tpre" = */* ]]
  4582.             then
  4583.                 tmp2="${cpre}${tpre%%/*}"
  4584.                 PREFIX="${linepath}${donepath}${tmp2}"
  4585.                 SUFFIX="/${tpre#*/}${tsuf#*/}"
  4586.             else
  4587.                 tmp2="${cpre}${tpre}"
  4588.                 PREFIX="${linepath}${donepath}${tmp2}"
  4589.                 SUFFIX="${tsuf}"
  4590.             fi
  4591.             if (( tmp4 ))
  4592.             then
  4593.                 tmp2="$testpath"
  4594.                 if [[ -n "$linepath" ]]
  4595.                 then
  4596.                     compquote -p tmp2 tmp1
  4597.                 elif [[ -n "$tmp2" ]]
  4598.                 then
  4599.                     compquote -p tmp1
  4600.                     compquote tmp2
  4601.                 else
  4602.                     compquote tmp1 tmp2
  4603.                 fi
  4604.                 if [[ -z "$_comp_correct" && "$compstate[pattern_match]" = \* && -n "$listsfx" && "$tmp2" = (|*[^\\])[][*?#~^\|\<\>]* ]]
  4605.                 then
  4606.                     PREFIX="$opre"
  4607.                     SUFFIX="$osuf"
  4608.                 fi
  4609.                 if [[ -z "$compstate[insert]" ]] || {
  4610.                         ! zstyle -t ":completion:${curcontext}:paths" expand suffix && [[ -z "$listsfx" && ( -n "$_comp_correct" || -z "$compstate[pattern_match]" || "$SUFFIX" != */* || "${SUFFIX#*/}" = (|*[^\\])[][*?#~^\|\<\>]* ) ]]
  4611.                     }
  4612.                 then
  4613.                     (( tmp4 )) && zstyle -t ":completion:${curcontext}:paths" ambiguous && compstate[to_end]=
  4614.                     if [[ "$tmp3" = */* ]]
  4615.                     then
  4616.                         if [[ -z "$listsfx" || "$tmp3" != */?* ]]
  4617.                         then
  4618.                             tmp1=("${(@)tmp1%%/*}")
  4619.                             _list_files tmp1 "$prepath$realpath$testpath"
  4620.                             compadd $Uopt -Qf "$mopts[@]" -p "${Uopt:+$IPREFIX}$linepath$tmp2" -s "/${tmp3#*/}${Uopt:+$ISUFFIX}" -W "$prepath$realpath$testpath" "$pfxsfx[@]" $Mopts $listopts -a tmp1
  4621.                         else
  4622.                             tmp1=("${(@)^tmp1%%/*}/${tmp3#*/}")
  4623.                             _list_files tmp1 "$prepath$realpath$testpath"
  4624.                             compadd $Uopt -Qf "$mopts[@]" -p "${Uopt:+$IPREFIX}$linepath$tmp2" -s "${Uopt:+$ISUFFIX}" -W "$prepath$realpath$testpath" "$pfxsfx[@]" $Mopts $listopts -a tmp1
  4625.                         fi
  4626.                     else
  4627.                         _list_files tmp1 "$prepath$realpath$testpath"
  4628.                         compadd $Uopt -Qf "$mopts[@]" -p "${Uopt:+$IPREFIX}$linepath$tmp2" -s "${Uopt:+$ISUFFIX}" -W "$prepath$realpath$testpath" "$pfxsfx[@]" $Mopts $listopts -a tmp1
  4629.                     fi
  4630.                 else
  4631.                     if [[ "$tmp3" = */* ]]
  4632.                     then
  4633.                         tmp4=($Uopt -Qf "$mopts[@]" -p "${Uopt:+$IPREFIX}$linepath$tmp2" -W "$prepath$realpath$testpath" "$pfxsfx[@]" $Mopts)
  4634.                         if [[ -z "$listsfx" ]]
  4635.                         then
  4636.                             for i in "$tmp1[@]"
  4637.                             do
  4638.                                 tmpdisp=("$i")
  4639.                                 _list_files tmpdisp "$prepath$realpath$testpath"
  4640.                                 compadd "$tmp4[@]" -s "${Uopt:+$ISUFFIX}" $listopts - "$tmpdisp"
  4641.                             done
  4642.                         else
  4643.                             [[ -n "$compstate[pattern_match]" ]] && SUFFIX="${SUFFIX:s./.*/}*"
  4644.                             for i in "$tmp1[@]"
  4645.                             do
  4646.                                 _list_files i "$prepath$realpath$testpath"
  4647.                                 compadd "$tmp4[@]" $listopts - "$i"
  4648.                             done
  4649.                         fi
  4650.                     else
  4651.                         _list_files tmp1 "$prepath$realpath$testpath"
  4652.                         compadd $Uopt -Qf "$mopts[@]" -p "${Uopt:+$IPREFIX}$linepath$tmp2" -s "${Uopt:+$ISUFFIX}" -W "$prepath$realpath$testpath" "$pfxsfx[@]" $Mopts $listopts -a tmp1
  4653.                     fi
  4654.                 fi
  4655.                 tmp4=-
  4656.                 break
  4657.             fi
  4658.             if [[ "$tmp3" != */* ]]
  4659.             then
  4660.                 tmp4=
  4661.                 break
  4662.             fi
  4663.             testpath="${testpath}${tmp1[1]%%/*}/"
  4664.             tmp3="${tmp3#*/}"
  4665.             if [[ "$tpre" = */* ]]
  4666.             then
  4667.                 if [[ -z "$_comp_correct" && -n "$compstate[pattern_match]" && "$tmp2" = (|*[^\\])[][*?#~^\|\<\>]* ]]
  4668.                 then
  4669.                     cpre="${cpre}${tmp1[1]%%/*}/"
  4670.                 else
  4671.                     cpre="${cpre}${tpre%%/*}/"
  4672.                 fi
  4673.                 tpre="${tpre#*/}"
  4674.             elif [[ "$tsuf" = */* ]]
  4675.             then
  4676.                 [[ "$tsuf" != /* ]] && mid="$testpath"
  4677.                 if [[ -z "$_comp_correct" && -n "$compstate[pattern_match]" && "$tmp2" = (|*[^\\])[][*?#~^\|\<\>]* ]]
  4678.                 then
  4679.                     cpre="${cpre}${tmp1[1]%%/*}/"
  4680.                 else
  4681.                     cpre="${cpre}${tpre}/"
  4682.                 fi
  4683.                 tpre="${tsuf#*/}"
  4684.                 tsuf=
  4685.             else
  4686.                 tpre=
  4687.                 tsuf=
  4688.             fi
  4689.             tmp1=("${(@)tmp1#*/}")
  4690.         done
  4691.         if [[ -z "$tmp4" ]]
  4692.         then
  4693.             if [[ "$mid" = */ ]]
  4694.             then
  4695.                 PREFIX="${opre}"
  4696.                 SUFFIX="${osuf}"
  4697.                 tmp4="${testpath#${mid}}"
  4698.                 if [[ $mid = */*/* ]]
  4699.                 then
  4700.                     tmp3="${mid%/*/}"
  4701.                     tmp2="${${mid%/}##*/}"
  4702.                     if [[ -n "$linepath" ]]
  4703.                     then
  4704.                         compquote -p tmp3
  4705.                     else
  4706.                         compquote tmp3
  4707.                     fi
  4708.                     compquote tmp4 tmp2 tmp1
  4709.                     for i in "$tmp1[@]"
  4710.                     do
  4711.                         _list_files tmp2 "$prepath$realpath${mid%/*/}"
  4712.                         compadd $Uopt -Qf "$mopts[@]" -p "${Uopt:+$IPREFIX}$linepath$tmp3/" -s "/$tmp4$i${Uopt:+$ISUFFIX}" -W "$prepath$realpath${mid%/*/}/" "$pfxsfx[@]" $Mopts $listopts - "$tmp2"
  4713.                     done
  4714.                 else
  4715.                     tmp2="${${mid%/}##*/}"
  4716.                     compquote tmp4 tmp2 tmp1
  4717.                     for i in "$tmp1[@]"
  4718.                     do
  4719.                         _list_files tmp2 "$prepath$realpath${mid%/*/}"
  4720.                         compadd $Uopt -Qf "$mopts[@]" -p "${Uopt:+$IPREFIX}$linepath" -s "/$tmp4$i${Uopt:+$ISUFFIX}" -W "$prepath$realpath" "$pfxsfx[@]" $Mopts $listopts - "$tmp2"
  4721.                     done
  4722.                 fi
  4723.             else
  4724.                 if [[ "$osuf" = */* ]]
  4725.                 then
  4726.                     PREFIX="${opre}${osuf}"
  4727.                     SUFFIX=
  4728.                 else
  4729.                     PREFIX="${opre}"
  4730.                     SUFFIX="${osuf}"
  4731.                 fi
  4732.                 tmp4="$testpath"
  4733.                 if [[ -n "$linepath" ]]
  4734.                 then
  4735.                     compquote -p tmp4 tmp1
  4736.                 elif [[ -n "$tmp4" ]]
  4737.                 then
  4738.                     compquote -p tmp1
  4739.                     compquote tmp4
  4740.                 else
  4741.                     compquote tmp4 tmp1
  4742.                 fi
  4743.                 if [[ -z "$_comp_correct" && -n "$compstate[pattern_match]" && "${PREFIX#\~}$SUFFIX" = (|*[^\\])[][*?#~^\|\<\>]* ]]
  4744.                 then
  4745.                     tmp1=("$linepath$tmp4${(@)^tmp1}")
  4746.                     _list_files tmp1 "$prepath$realpath"
  4747.                     compadd -Qf -W "$prepath$realpath" "$pfxsfx[@]" "$mopts[@]" -M "r:|/=* r:|=*" $listopts -a tmp1
  4748.                 else
  4749.                     _list_files tmp1 "$prepath$realpath$testpath"
  4750.                     compadd $Uopt -Qf -p "${Uopt:+$IPREFIX}$linepath$tmp4" -s "${Uopt:+$ISUFFIX}" -W "$prepath$realpath$testpath" "$pfxsfx[@]" "$mopts[@]" $Mopts $listopts -a tmp1
  4751.                 fi
  4752.             fi
  4753.         fi
  4754.     done
  4755.     if [[ _matcher_num -eq ${#_matchers} ]] && zstyle -t ":completion:${curcontext}:paths" expand prefix && [[ nm -eq compstate[nmatches] && $#exppaths -ne 0 && "$linepath$exppaths" != "$eorig" ]]
  4756.     then
  4757.         PREFIX="${opre}"
  4758.         SUFFIX="${osuf}"
  4759.         compadd -Q "$mopts[@]" -S '' -M "r:|/=* r:|=*" -p "$linepath" -a exppaths
  4760.     fi
  4761.     [[ nm -ne compstate[nmatches] ]]
  4762. }
  4763. _pax () {
  4764.     # undefined
  4765.     builtin autoload -XUz
  4766. }
  4767. _pbcopy () {
  4768.     # undefined
  4769.     builtin autoload -XUz
  4770. }
  4771. _pbm () {
  4772.     # undefined
  4773.     builtin autoload -XUz
  4774. }
  4775. _pbuilder () {
  4776.     # undefined
  4777.     builtin autoload -XUz
  4778. }
  4779. _pdf () {
  4780.     # undefined
  4781.     builtin autoload -XUz
  4782. }
  4783. _pdftk () {
  4784.     # undefined
  4785.     builtin autoload -XUz
  4786. }
  4787. _perforce () {
  4788.     # undefined
  4789.     builtin autoload -XUz
  4790. }
  4791. _perl () {
  4792.     # undefined
  4793.     builtin autoload -XUz
  4794. }
  4795. _perl_basepods () {
  4796.     # undefined
  4797.     builtin autoload -XUz
  4798. }
  4799. _perl_modules () {
  4800.     # undefined
  4801.     builtin autoload -XUz
  4802. }
  4803. _perldoc () {
  4804.     # undefined
  4805.     builtin autoload -XUz
  4806. }
  4807. _pfctl () {
  4808.     # undefined
  4809.     builtin autoload -XUz
  4810. }
  4811. _pfexec () {
  4812.     # undefined
  4813.     builtin autoload -XUz
  4814. }
  4815. _pgrep () {
  4816.     # undefined
  4817.     builtin autoload -XUz
  4818. }
  4819. _php () {
  4820.     # undefined
  4821.     builtin autoload -XUz
  4822. }
  4823. _physical_volumes () {
  4824.     # undefined
  4825.     builtin autoload -XUz
  4826. }
  4827. _pick_variant () {
  4828.     local output cmd pat
  4829.     local -a var
  4830.     local -A opts
  4831.     (( $+_cmd_variant )) || typeset -gA _cmd_variant
  4832.     zparseopts -D -A opts b: c: r:
  4833.     : ${opts[-c]:=$words[1]}
  4834.     while [[ $1 = *=* ]]
  4835.     do
  4836.         var+=("${1%%\=*}" "${1#*=}")
  4837.         shift
  4838.     done
  4839.     if (( $+_cmd_variant[$opts[-c]] ))
  4840.     then
  4841.         (( $+opts[-r] )) && eval "${opts[-r]}=${_cmd_variant[$opts[-c]]}"
  4842.         [[ $_cmd_variant[$opts[-c]] = "$1" ]] && return 1
  4843.         return 0
  4844.     fi
  4845.     if [[ $+opts[-b] -eq 1 && -n $builtins[$opts[-c]] ]]
  4846.     then
  4847.         _cmd_variant[$opts[-c]]=$opts[-b]
  4848.         (( $+opts[-r] )) && eval "${opts[-r]}=${_cmd_variant[$opts[-c]]}"
  4849.         return 0
  4850.     fi
  4851.     output="$(_call_program variant $opts[-c] "${@[2,-1]}" </dev/null 2>&1)"
  4852.     for cmd pat in "$var[@]"
  4853.     do
  4854.         if [[ $output = *$~pat* ]]
  4855.         then
  4856.             (( $+opts[-r] )) && eval "${opts[-r]}=$cmd"
  4857.             _cmd_variant[$opts[-c]]="$cmd"
  4858.             return 0
  4859.         fi
  4860.     done
  4861.     (( $+opts[-r] )) && eval "${opts[-r]}=$1"
  4862.     _cmd_variant[$opts[-c]]="$1"
  4863.     return 1
  4864. }
  4865. _picocom () {
  4866.     # undefined
  4867.     builtin autoload -XUz
  4868. }
  4869. _pidof () {
  4870.     # undefined
  4871.     builtin autoload -XUz
  4872. }
  4873. _pids () {
  4874.     # undefined
  4875.     builtin autoload -XUz
  4876. }
  4877. _pine () {
  4878.     # undefined
  4879.     builtin autoload -XUz
  4880. }
  4881. _ping () {
  4882.     # undefined
  4883.     builtin autoload -XUz
  4884. }
  4885. _piuparts () {
  4886.     # undefined
  4887.     builtin autoload -XUz
  4888. }
  4889. _pkg-config () {
  4890.     # undefined
  4891.     builtin autoload -XUz
  4892. }
  4893. _pkg5 () {
  4894.     # undefined
  4895.     builtin autoload -XUz
  4896. }
  4897. _pkg_instance () {
  4898.     # undefined
  4899.     builtin autoload -XUz
  4900. }
  4901. _pkgadd () {
  4902.     # undefined
  4903.     builtin autoload -XUz
  4904. }
  4905. _pkginfo () {
  4906.     # undefined
  4907.     builtin autoload -XUz
  4908. }
  4909. _pkgrm () {
  4910.     # undefined
  4911.     builtin autoload -XUz
  4912. }
  4913. _pkgtool () {
  4914.     # undefined
  4915.     builtin autoload -XUz
  4916. }
  4917. _plutil () {
  4918.     # undefined
  4919.     builtin autoload -XUz
  4920. }
  4921. _pon () {
  4922.     # undefined
  4923.     builtin autoload -XUz
  4924. }
  4925. _portaudit () {
  4926.     # undefined
  4927.     builtin autoload -XUz
  4928. }
  4929. _portlint () {
  4930.     # undefined
  4931.     builtin autoload -XUz
  4932. }
  4933. _portmaster () {
  4934.     # undefined
  4935.     builtin autoload -XUz
  4936. }
  4937. _ports () {
  4938.     # undefined
  4939.     builtin autoload -XUz
  4940. }
  4941. _portsnap () {
  4942.     # undefined
  4943.     builtin autoload -XUz
  4944. }
  4945. _postfix () {
  4946.     # undefined
  4947.     builtin autoload -XUz
  4948. }
  4949. _postscript () {
  4950.     # undefined
  4951.     builtin autoload -XUz
  4952. }
  4953. _powerd () {
  4954.     # undefined
  4955.     builtin autoload -XUz
  4956. }
  4957. _prcs () {
  4958.     # undefined
  4959.     builtin autoload -XUz
  4960. }
  4961. _precommand () {
  4962.     # undefined
  4963.     builtin autoload -XUz
  4964. }
  4965. _prefix () {
  4966.     # undefined
  4967.     builtin autoload -XUz
  4968. }
  4969. _print () {
  4970.     # undefined
  4971.     builtin autoload -XUz
  4972. }
  4973. _printenv () {
  4974.     # undefined
  4975.     builtin autoload -XUz
  4976. }
  4977. _printers () {
  4978.     # undefined
  4979.     builtin autoload -XUz
  4980. }
  4981. _process_names () {
  4982.     # undefined
  4983.     builtin autoload -XUz
  4984. }
  4985. _procstat () {
  4986.     # undefined
  4987.     builtin autoload -XUz
  4988. }
  4989. _prompt () {
  4990.     # undefined
  4991.     builtin autoload -XUz
  4992. }
  4993. _prove () {
  4994.     # undefined
  4995.     builtin autoload -XUz
  4996. }
  4997. _prstat () {
  4998.     # undefined
  4999.     builtin autoload -XUz
  5000. }
  5001. _ps () {
  5002.     # undefined
  5003.     builtin autoload -XUz
  5004. }
  5005. _ps1234 () {
  5006.     # undefined
  5007.     builtin autoload -XUz
  5008. }
  5009. _pscp () {
  5010.     # undefined
  5011.     builtin autoload -XUz
  5012. }
  5013. _pspdf () {
  5014.     # undefined
  5015.     builtin autoload -XUz
  5016. }
  5017. _psutils () {
  5018.     # undefined
  5019.     builtin autoload -XUz
  5020. }
  5021. _ptree () {
  5022.     # undefined
  5023.     builtin autoload -XUz
  5024. }
  5025. _pump () {
  5026.     # undefined
  5027.     builtin autoload -XUz
  5028. }
  5029. _putclip () {
  5030.     # undefined
  5031.     builtin autoload -XUz
  5032. }
  5033. _pwgen () {
  5034.     # undefined
  5035.     builtin autoload -XUz
  5036. }
  5037. _pydoc () {
  5038.     # undefined
  5039.     builtin autoload -XUz
  5040. }
  5041. _python () {
  5042.     # undefined
  5043.     builtin autoload -XUz
  5044. }
  5045. _python_modules () {
  5046.     # undefined
  5047.     builtin autoload -XUz
  5048. }
  5049. _qdbus () {
  5050.     # undefined
  5051.     builtin autoload -XUz
  5052. }
  5053. _qemu () {
  5054.     # undefined
  5055.     builtin autoload -XUz
  5056. }
  5057. _qiv () {
  5058.     # undefined
  5059.     builtin autoload -XUz
  5060. }
  5061. _qtplay () {
  5062.     # undefined
  5063.     builtin autoload -XUz
  5064. }
  5065. _quilt () {
  5066.     # undefined
  5067.     builtin autoload -XUz
  5068. }
  5069. _raggle () {
  5070.     # undefined
  5071.     builtin autoload -XUz
  5072. }
  5073. _rake () {
  5074.     # undefined
  5075.     builtin autoload -XUz
  5076. }
  5077. _ranlib () {
  5078.     # undefined
  5079.     builtin autoload -XUz
  5080. }
  5081. _rar () {
  5082.     # undefined
  5083.     builtin autoload -XUz
  5084. }
  5085. _rcctl () {
  5086.     # undefined
  5087.     builtin autoload -XUz
  5088. }
  5089. _rcs () {
  5090.     # undefined
  5091.     builtin autoload -XUz
  5092. }
  5093. _rdesktop () {
  5094.     # undefined
  5095.     builtin autoload -XUz
  5096. }
  5097. _read () {
  5098.     # undefined
  5099.     builtin autoload -XUz
  5100. }
  5101. _read_comp () {
  5102.     # undefined
  5103.     builtin autoload -XUz
  5104. }
  5105. _readelf () {
  5106.     # undefined
  5107.     builtin autoload -XUz
  5108. }
  5109. _readlink () {
  5110.     # undefined
  5111.     builtin autoload -XUz
  5112. }
  5113. _readshortcut () {
  5114.     # undefined
  5115.     builtin autoload -XUz
  5116. }
  5117. _rebootin () {
  5118.     # undefined
  5119.     builtin autoload -XUz
  5120. }
  5121. _redirect () {
  5122.     # undefined
  5123.     builtin autoload -XUz
  5124. }
  5125. _regex_arguments () {
  5126.     # undefined
  5127.     builtin autoload -XUz
  5128. }
  5129. _regex_words () {
  5130.     # undefined
  5131.     builtin autoload -XUz
  5132. }
  5133. _remote_files () {
  5134.     # undefined
  5135.     builtin autoload -XUz
  5136. }
  5137. _renice () {
  5138.     # undefined
  5139.     builtin autoload -XUz
  5140. }
  5141. _reprepro () {
  5142.     # undefined
  5143.     builtin autoload -XUz
  5144. }
  5145. _requested () {
  5146.     local __gopt
  5147.     __gopt=()
  5148.     zparseopts -D -a __gopt 1 2 V J x
  5149.     if comptags -R "$1"
  5150.     then
  5151.         if [[ $# -gt 3 ]]
  5152.         then
  5153.             _all_labels - "$__gopt[@]" "$@" || return 1
  5154.         elif [[ $# -gt 1 ]]
  5155.         then
  5156.             _description "$__gopt[@]" "$@"
  5157.         fi
  5158.         return 0
  5159.     else
  5160.         return 1
  5161.     fi
  5162. }
  5163. _retrieve_cache () {
  5164.     # undefined
  5165.     builtin autoload -XUz
  5166. }
  5167. _retrieve_mac_apps () {
  5168.     # undefined
  5169.     builtin autoload -XUz
  5170. }
  5171. _ri () {
  5172.     # undefined
  5173.     builtin autoload -XUz
  5174. }
  5175. _rlogin () {
  5176.     # undefined
  5177.     builtin autoload -XUz
  5178. }
  5179. _rm () {
  5180.     # undefined
  5181.     builtin autoload -XUz
  5182. }
  5183. _rmdir () {
  5184.     # undefined
  5185.     builtin autoload -XUz
  5186. }
  5187. _route () {
  5188.     # undefined
  5189.     builtin autoload -XUz
  5190. }
  5191. _rpm () {
  5192.     # undefined
  5193.     builtin autoload -XUz
  5194. }
  5195. _rpmbuild () {
  5196.     # undefined
  5197.     builtin autoload -XUz
  5198. }
  5199. _rrdtool () {
  5200.     # undefined
  5201.     builtin autoload -XUz
  5202. }
  5203. _rsync () {
  5204.     # undefined
  5205.     builtin autoload -XUz
  5206. }
  5207. _rubber () {
  5208.     # undefined
  5209.     builtin autoload -XUz
  5210. }
  5211. _ruby () {
  5212.     # undefined
  5213.     builtin autoload -XUz
  5214. }
  5215. _run-help () {
  5216.     # undefined
  5217.     builtin autoload -XUz
  5218. }
  5219. _runit () {
  5220.     # undefined
  5221.     builtin autoload -XUz
  5222. }
  5223. _sablotron () {
  5224.     # undefined
  5225.     builtin autoload -XUz
  5226. }
  5227. _samba () {
  5228.     # undefined
  5229.     builtin autoload -XUz
  5230. }
  5231. _savecore () {
  5232.     # undefined
  5233.     builtin autoload -XUz
  5234. }
  5235. _say () {
  5236.     # undefined
  5237.     builtin autoload -XUz
  5238. }
  5239. _sc_usage () {
  5240.     # undefined
  5241.     builtin autoload -XUz
  5242. }
  5243. _sccs () {
  5244.     # undefined
  5245.     builtin autoload -XUz
  5246. }
  5247. _sched () {
  5248.     # undefined
  5249.     builtin autoload -XUz
  5250. }
  5251. _schedtool () {
  5252.     # undefined
  5253.     builtin autoload -XUz
  5254. }
  5255. _schroot () {
  5256.     # undefined
  5257.     builtin autoload -XUz
  5258. }
  5259. _scl () {
  5260.     # undefined
  5261.     builtin autoload -XUz
  5262. }
  5263. _scons () {
  5264.     # undefined
  5265.     builtin autoload -XUz
  5266. }
  5267. _screen () {
  5268.     # undefined
  5269.     builtin autoload -XUz
  5270. }
  5271. _script () {
  5272.     # undefined
  5273.     builtin autoload -XUz
  5274. }
  5275. _scselect () {
  5276.     # undefined
  5277.     builtin autoload -XUz
  5278. }
  5279. _scutil () {
  5280.     # undefined
  5281.     builtin autoload -XUz
  5282. }
  5283. _sed () {
  5284.     # undefined
  5285.     builtin autoload -XUz
  5286. }
  5287. _sep_parts () {
  5288.     # undefined
  5289.     builtin autoload -XUz
  5290. }
  5291. _seq () {
  5292.     # undefined
  5293.     builtin autoload -XUz
  5294. }
  5295. _sequence () {
  5296.     # undefined
  5297.     builtin autoload -XUz
  5298. }
  5299. _service () {
  5300.     # undefined
  5301.     builtin autoload -XUz
  5302. }
  5303. _services () {
  5304.     # undefined
  5305.     builtin autoload -XUz
  5306. }
  5307. _set () {
  5308.     # undefined
  5309.     builtin autoload -XUz
  5310. }
  5311. _set_command () {
  5312.     local command
  5313.     command="$words[1]"
  5314.     [[ -z "$command" ]] && return
  5315.     if (( $+builtins[$command] + $+functions[$command] ))
  5316.     then
  5317.         _comp_command1="$command"
  5318.         _comp_command="$_comp_command1"
  5319.     elif [[ "$command[1]" = '=' ]]
  5320.     then
  5321.         eval _comp_command2\=$command
  5322.         _comp_command1="$command[2,-1]"
  5323.         _comp_command="$_comp_command2"
  5324.     elif [[ "$command" = ..#/* ]]
  5325.     then
  5326.         _comp_command1="${PWD}/$command"
  5327.         _comp_command2="${command:t}"
  5328.         _comp_command="$_comp_command2"
  5329.     elif [[ "$command" = */* ]]
  5330.     then
  5331.         _comp_command1="$command"
  5332.         _comp_command2="${command:t}"
  5333.         _comp_command="$_comp_command2"
  5334.     else
  5335.         _comp_command1="$command"
  5336.         _comp_command2="$commands[$command]"
  5337.         _comp_command="$_comp_command1"
  5338.     fi
  5339. }
  5340. _setfacl () {
  5341.     # undefined
  5342.     builtin autoload -XUz
  5343. }
  5344. _setopt () {
  5345.     # undefined
  5346.     builtin autoload -XUz
  5347. }
  5348. _setsid () {
  5349.     # undefined
  5350.     builtin autoload -XUz
  5351. }
  5352. _setup () {
  5353.     local val nm="$compstate[nmatches]"
  5354.     [[ $# -eq 1 ]] && 2="$1"
  5355.     if zstyle -a ":completion:${curcontext}:$1" list-colors val
  5356.     then
  5357.         zmodload -i zsh/complist
  5358.         if [[ "$1" = default ]]
  5359.         then
  5360.             _comp_colors=("$val[@]")
  5361.         else
  5362.             _comp_colors+=("(${2})${(@)^val:#(|\(*\)*)}" "${(M@)val:#\(*\)*}")
  5363.         fi
  5364.     elif [[ "$1" = default ]]
  5365.     then
  5366.         unset ZLS_COLORS ZLS_COLOURS
  5367.     fi
  5368.     if zstyle -s ":completion:${curcontext}:$1" show-ambiguity val
  5369.     then
  5370.         zmodload -i zsh/complist
  5371.         [[ $val = (yes|true|on) ]] && _ambiguous_color=4  || _ambiguous_color=$val
  5372.     fi
  5373.     if zstyle -t ":completion:${curcontext}:$1" list-packed
  5374.     then
  5375.         compstate[list]="${compstate[list]} packed"
  5376.     elif [[ $? -eq 1 ]]
  5377.     then
  5378.         compstate[list]="${compstate[list]:gs/packed//}"
  5379.     else
  5380.         compstate[list]="$_saved_list"
  5381.     fi
  5382.     if zstyle -t ":completion:${curcontext}:$1" list-rows-first
  5383.     then
  5384.         compstate[list]="${compstate[list]} rows"
  5385.     elif [[ $? -eq 1 ]]
  5386.     then
  5387.         compstate[list]="${compstate[list]:gs/rows//}"
  5388.     else
  5389.         compstate[list]="$_saved_list"
  5390.     fi
  5391.     if zstyle -t ":completion:${curcontext}:$1" last-prompt
  5392.     then
  5393.         compstate[last_prompt]=yes
  5394.     elif [[ $? -eq 1 ]]
  5395.     then
  5396.         compstate[last_prompt]=''
  5397.     else
  5398.         compstate[last_prompt]="$_saved_lastprompt"
  5399.     fi
  5400.     if zstyle -t ":completion:${curcontext}:$1" accept-exact
  5401.     then
  5402.         compstate[exact]=accept
  5403.     elif [[ $? -eq 1 ]]
  5404.     then
  5405.         compstate[exact]=''
  5406.     else
  5407.         compstate[exact]="$_saved_exact"
  5408.     fi
  5409.     [[ _last_nmatches -ge 0 && _last_nmatches -ne nm ]] && _menu_style=("$_last_menu_style[@]" "$_menu_style[@]")
  5410.     if zstyle -a ":completion:${curcontext}:$1" menu val
  5411.     then
  5412.         _last_nmatches=$nm
  5413.         _last_menu_style=("$val[@]")
  5414.     else
  5415.         _last_nmatches=-1
  5416.     fi
  5417.     [[ "$_comp_force_list" != always ]] && zstyle -s ":completion:${curcontext}:$1" force-list val && [[ "$val" = always || ( "$val" = [0-9]## && ( -z "$_comp_force_list" || _comp_force_list -gt val ) ) ]] && _comp_force_list="$val"
  5418. }
  5419. _setxkbmap () {
  5420.     # undefined
  5421.     builtin autoload -XUz
  5422. }
  5423. _sh () {
  5424.     # undefined
  5425.     builtin autoload -XUz
  5426. }
  5427. _shasum () {
  5428.     # undefined
  5429.     builtin autoload -XUz
  5430. }
  5431. _showmount () {
  5432.     # undefined
  5433.     builtin autoload -XUz
  5434. }
  5435. _shred () {
  5436.     # undefined
  5437.     builtin autoload -XUz
  5438. }
  5439. _shuf () {
  5440.     # undefined
  5441.     builtin autoload -XUz
  5442. }
  5443. _shutdown () {
  5444.     # undefined
  5445.     builtin autoload -XUz
  5446. }
  5447. _signals () {
  5448.     # undefined
  5449.     builtin autoload -XUz
  5450. }
  5451. _signify () {
  5452.     # undefined
  5453.     builtin autoload -XUz
  5454. }
  5455. _sisu () {
  5456.     # undefined
  5457.     builtin autoload -XUz
  5458. }
  5459. _slrn () {
  5460.     # undefined
  5461.     builtin autoload -XUz
  5462. }
  5463. _smartmontools () {
  5464.     # undefined
  5465.     builtin autoload -XUz
  5466. }
  5467. _smit () {
  5468.     # undefined
  5469.     builtin autoload -XUz
  5470. }
  5471. _snoop () {
  5472.     # undefined
  5473.     builtin autoload -XUz
  5474. }
  5475. _socket () {
  5476.     # undefined
  5477.     builtin autoload -XUz
  5478. }
  5479. _sockstat () {
  5480.     # undefined
  5481.     builtin autoload -XUz
  5482. }
  5483. _softwareupdate () {
  5484.     # undefined
  5485.     builtin autoload -XUz
  5486. }
  5487. _sort () {
  5488.     # undefined
  5489.     builtin autoload -XUz
  5490. }
  5491. _source () {
  5492.     # undefined
  5493.     builtin autoload -XUz
  5494. }
  5495. _spamassassin () {
  5496.     # undefined
  5497.     builtin autoload -XUz
  5498. }
  5499. _split () {
  5500.     # undefined
  5501.     builtin autoload -XUz
  5502. }
  5503. _sqlite () {
  5504.     # undefined
  5505.     builtin autoload -XUz
  5506. }
  5507. _sqsh () {
  5508.     # undefined
  5509.     builtin autoload -XUz
  5510. }
  5511. _ss () {
  5512.     # undefined
  5513.     builtin autoload -XUz
  5514. }
  5515. _ssh () {
  5516.     # undefined
  5517.     builtin autoload -XUz
  5518. }
  5519. _ssh_hosts () {
  5520.     # undefined
  5521.     builtin autoload -XUz
  5522. }
  5523. _sshfs () {
  5524.     # undefined
  5525.     builtin autoload -XUz
  5526. }
  5527. _stat () {
  5528.     # undefined
  5529.     builtin autoload -XUz
  5530. }
  5531. _stdbuf () {
  5532.     # undefined
  5533.     builtin autoload -XUz
  5534. }
  5535. _stgit () {
  5536.     # undefined
  5537.     builtin autoload -XUz
  5538. }
  5539. _store_cache () {
  5540.     # undefined
  5541.     builtin autoload -XUz
  5542. }
  5543. _strace () {
  5544.     # undefined
  5545.     builtin autoload -XUz
  5546. }
  5547. _strftime () {
  5548.     # undefined
  5549.     builtin autoload -XUz
  5550. }
  5551. _strings () {
  5552.     # undefined
  5553.     builtin autoload -XUz
  5554. }
  5555. _strip () {
  5556.     # undefined
  5557.     builtin autoload -XUz
  5558. }
  5559. _stty () {
  5560.     # undefined
  5561.     builtin autoload -XUz
  5562. }
  5563. _su () {
  5564.     # undefined
  5565.     builtin autoload -XUz
  5566. }
  5567. _sub_commands () {
  5568.     # undefined
  5569.     builtin autoload -XUz
  5570. }
  5571. _sublimetext () {
  5572.     # undefined
  5573.     builtin autoload -XUz
  5574. }
  5575. _subscript () {
  5576.     # undefined
  5577.     builtin autoload -XUz
  5578. }
  5579. _subversion () {
  5580.     # undefined
  5581.     builtin autoload -XUz
  5582. }
  5583. _sudo () {
  5584.     # undefined
  5585.     builtin autoload -XUz
  5586. }
  5587. _suffix_alias_files () {
  5588.     local expl pat
  5589.     (( ${#saliases} )) || return 1
  5590.     if (( ${#saliases} == 1 ))
  5591.     then
  5592.         pat="*.${(kq)saliases}"
  5593.     else
  5594.         local -a tmpa
  5595.         tmpa=(${(kq)saliases})
  5596.         pat="*.(${(kj.|.)tmpa})"
  5597.     fi
  5598.     _path_files "$@" -g $pat
  5599. }
  5600. _surfraw () {
  5601.     # undefined
  5602.     builtin autoload -XUz
  5603. }
  5604. _svcadm () {
  5605.     # undefined
  5606.     builtin autoload -XUz
  5607. }
  5608. _svccfg () {
  5609.     # undefined
  5610.     builtin autoload -XUz
  5611. }
  5612. _svcprop () {
  5613.     # undefined
  5614.     builtin autoload -XUz
  5615. }
  5616. _svcs () {
  5617.     # undefined
  5618.     builtin autoload -XUz
  5619. }
  5620. _svcs_fmri () {
  5621.     # undefined
  5622.     builtin autoload -XUz
  5623. }
  5624. _svn-buildpackage () {
  5625.     # undefined
  5626.     builtin autoload -XUz
  5627. }
  5628. _sw_vers () {
  5629.     # undefined
  5630.     builtin autoload -XUz
  5631. }
  5632. _swaks () {
  5633.     # undefined
  5634.     builtin autoload -XUz
  5635. }
  5636. _swanctl () {
  5637.     # undefined
  5638.     builtin autoload -XUz
  5639. }
  5640. _swift () {
  5641.     # undefined
  5642.     builtin autoload -XUz
  5643. }
  5644. _sys_calls () {
  5645.     # undefined
  5646.     builtin autoload -XUz
  5647. }
  5648. _sysctl () {
  5649.     # undefined
  5650.     builtin autoload -XUz
  5651. }
  5652. _sysrc () {
  5653.     # undefined
  5654.     builtin autoload -XUz
  5655. }
  5656. _sysstat () {
  5657.     # undefined
  5658.     builtin autoload -XUz
  5659. }
  5660. _systat () {
  5661.     # undefined
  5662.     builtin autoload -XUz
  5663. }
  5664. _system_profiler () {
  5665.     # undefined
  5666.     builtin autoload -XUz
  5667. }
  5668. _tac () {
  5669.     # undefined
  5670.     builtin autoload -XUz
  5671. }
  5672. _tags () {
  5673.     local prev
  5674.     if [[ "$1" = -- ]]
  5675.     then
  5676.         prev=-
  5677.         shift
  5678.     fi
  5679.     if (( $# ))
  5680.     then
  5681.         local curcontext="$curcontext" order tag nodef tmp
  5682.         if [[ "$1" = -C?* ]]
  5683.         then
  5684.             curcontext="${curcontext%:*}:${1[3,-1]}"
  5685.             shift
  5686.         elif [[ "$1" = -C ]]
  5687.         then
  5688.             curcontext="${curcontext%:*}:${2}"
  5689.             shift 2
  5690.         fi
  5691.         [[ "$1" = -(|-) ]] && shift
  5692.         zstyle -a ":completion:${curcontext}:" group-order order && compgroups "$order[@]"
  5693.         comptags "-i$prev" "$curcontext" "$@"
  5694.         if [[ -n "$_sort_tags" ]]
  5695.         then
  5696.             "$_sort_tags" "$@"
  5697.         else
  5698.             zstyle -a ":completion:${curcontext}:" tag-order order || (( ! ${@[(I)options]} )) || order=('(|*-)argument-* (|*-)option[-+]* values' options)
  5699.             for tag in $order
  5700.             do
  5701.                 case $tag in
  5702.                     (-) nodef=yes  ;;
  5703.                     (\!*) comptry "${(@)argv:#(${(j:|:)~${=~tag[2,-1]}})}" ;;
  5704.                     (?*) comptry -m "$tag" ;;
  5705.                 esac
  5706.             done
  5707.             [[ -z "$nodef" ]] && comptry "$@"
  5708.         fi
  5709.         comptags "-T$prev"
  5710.         return
  5711.     fi
  5712.     comptags "-N$prev"
  5713. }
  5714. _tail () {
  5715.     # undefined
  5716.     builtin autoload -XUz
  5717. }
  5718. _tar () {
  5719.     # undefined
  5720.     builtin autoload -XUz
  5721. }
  5722. _tar_archive () {
  5723.     # undefined
  5724.     builtin autoload -XUz
  5725. }
  5726. _tardy () {
  5727.     # undefined
  5728.     builtin autoload -XUz
  5729. }
  5730. _tcpdump () {
  5731.     # undefined
  5732.     builtin autoload -XUz
  5733. }
  5734. _tcpsys () {
  5735.     # undefined
  5736.     builtin autoload -XUz
  5737. }
  5738. _tcptraceroute () {
  5739.     # undefined
  5740.     builtin autoload -XUz
  5741. }
  5742. _tee () {
  5743.     # undefined
  5744.     builtin autoload -XUz
  5745. }
  5746. _telnet () {
  5747.     # undefined
  5748.     builtin autoload -XUz
  5749. }
  5750. _terminals () {
  5751.     # undefined
  5752.     builtin autoload -XUz
  5753. }
  5754. _tex () {
  5755.     # undefined
  5756.     builtin autoload -XUz
  5757. }
  5758. _texi () {
  5759.     # undefined
  5760.     builtin autoload -XUz
  5761. }
  5762. _texinfo () {
  5763.     # undefined
  5764.     builtin autoload -XUz
  5765. }
  5766. _tidy () {
  5767.     # undefined
  5768.     builtin autoload -XUz
  5769. }
  5770. _tiff () {
  5771.     # undefined
  5772.     builtin autoload -XUz
  5773. }
  5774. _tilde () {
  5775.     # undefined
  5776.     builtin autoload -XUz
  5777. }
  5778. _tilde_files () {
  5779.     # undefined
  5780.     builtin autoload -XUz
  5781. }
  5782. _time_zone () {
  5783.     # undefined
  5784.     builtin autoload -XUz
  5785. }
  5786. _timeout () {
  5787.     # undefined
  5788.     builtin autoload -XUz
  5789. }
  5790. _tin () {
  5791.     # undefined
  5792.     builtin autoload -XUz
  5793. }
  5794. _tla () {
  5795.     # undefined
  5796.     builtin autoload -XUz
  5797. }
  5798. _tmux () {
  5799.     # undefined
  5800.     builtin autoload -XUz
  5801. }
  5802. _todo.sh () {
  5803.     # undefined
  5804.     builtin autoload -XUz
  5805. }
  5806. _toilet () {
  5807.     # undefined
  5808.     builtin autoload -XUz
  5809. }
  5810. _toolchain-source () {
  5811.     # undefined
  5812.     builtin autoload -XUz
  5813. }
  5814. _top () {
  5815.     # undefined
  5816.     builtin autoload -XUz
  5817. }
  5818. _topgit () {
  5819.     # undefined
  5820.     builtin autoload -XUz
  5821. }
  5822. _totd () {
  5823.     # undefined
  5824.     builtin autoload -XUz
  5825. }
  5826. _touch () {
  5827.     # undefined
  5828.     builtin autoload -XUz
  5829. }
  5830. _tpb () {
  5831.     # undefined
  5832.     builtin autoload -XUz
  5833. }
  5834. _tpconfig () {
  5835.     # undefined
  5836.     builtin autoload -XUz
  5837. }
  5838. _tput () {
  5839.     # undefined
  5840.     builtin autoload -XUz
  5841. }
  5842. _tr () {
  5843.     # undefined
  5844.     builtin autoload -XUz
  5845. }
  5846. _tracepath () {
  5847.     # undefined
  5848.     builtin autoload -XUz
  5849. }
  5850. _trap () {
  5851.     # undefined
  5852.     builtin autoload -XUz
  5853. }
  5854. _tree () {
  5855.     # undefined
  5856.     builtin autoload -XUz
  5857. }
  5858. _truss () {
  5859.     # undefined
  5860.     builtin autoload -XUz
  5861. }
  5862. _tty () {
  5863.     # undefined
  5864.     builtin autoload -XUz
  5865. }
  5866. _ttyctl () {
  5867.     # undefined
  5868.     builtin autoload -XUz
  5869. }
  5870. _ttys () {
  5871.     # undefined
  5872.     builtin autoload -XUz
  5873. }
  5874. _tune2fs () {
  5875.     # undefined
  5876.     builtin autoload -XUz
  5877. }
  5878. _twidge () {
  5879.     # undefined
  5880.     builtin autoload -XUz
  5881. }
  5882. _twisted () {
  5883.     # undefined
  5884.     builtin autoload -XUz
  5885. }
  5886. _typeset () {
  5887.     # undefined
  5888.     builtin autoload -XUz
  5889. }
  5890. _ulimit () {
  5891.     # undefined
  5892.     builtin autoload -XUz
  5893. }
  5894. _uml () {
  5895.     # undefined
  5896.     builtin autoload -XUz
  5897. }
  5898. _umountable () {
  5899.     # undefined
  5900.     builtin autoload -XUz
  5901. }
  5902. _unace () {
  5903.     # undefined
  5904.     builtin autoload -XUz
  5905. }
  5906. _uname () {
  5907.     # undefined
  5908.     builtin autoload -XUz
  5909. }
  5910. _unexpand () {
  5911.     # undefined
  5912.     builtin autoload -XUz
  5913. }
  5914. _unhash () {
  5915.     # undefined
  5916.     builtin autoload -XUz
  5917. }
  5918. _uniq () {
  5919.     # undefined
  5920.     builtin autoload -XUz
  5921. }
  5922. _unison () {
  5923.     # undefined
  5924.     builtin autoload -XUz
  5925. }
  5926. _units () {
  5927.     # undefined
  5928.     builtin autoload -XUz
  5929. }
  5930. _update-alternatives () {
  5931.     # undefined
  5932.     builtin autoload -XUz
  5933. }
  5934. _update-rc.d () {
  5935.     # undefined
  5936.     builtin autoload -XUz
  5937. }
  5938. _uptime () {
  5939.     # undefined
  5940.     builtin autoload -XUz
  5941. }
  5942. _urls () {
  5943.     # undefined
  5944.     builtin autoload -XUz
  5945. }
  5946. _urpmi () {
  5947.     # undefined
  5948.     builtin autoload -XUz
  5949. }
  5950. _urxvt () {
  5951.     # undefined
  5952.     builtin autoload -XUz
  5953. }
  5954. _uscan () {
  5955.     # undefined
  5956.     builtin autoload -XUz
  5957. }
  5958. _user_admin () {
  5959.     # undefined
  5960.     builtin autoload -XUz
  5961. }
  5962. _user_at_host () {
  5963.     # undefined
  5964.     builtin autoload -XUz
  5965. }
  5966. _user_expand () {
  5967.     # undefined
  5968.     builtin autoload -XUz
  5969. }
  5970. _user_math_func () {
  5971.     # undefined
  5972.     builtin autoload -XUz
  5973. }
  5974. _users () {
  5975.     # undefined
  5976.     builtin autoload -XUz
  5977. }
  5978. _users_on () {
  5979.     # undefined
  5980.     builtin autoload -XUz
  5981. }
  5982. _uzbl () {
  5983.     # undefined
  5984.     builtin autoload -XUz
  5985. }
  5986. _valgrind () {
  5987.     # undefined
  5988.     builtin autoload -XUz
  5989. }
  5990. _value () {
  5991.     # undefined
  5992.     builtin autoload -XUz
  5993. }
  5994. _values () {
  5995.     # undefined
  5996.     builtin autoload -XUz
  5997. }
  5998. _vared () {
  5999.     # undefined
  6000.     builtin autoload -XUz
  6001. }
  6002. _vars () {
  6003.     # undefined
  6004.     builtin autoload -XUz
  6005. }
  6006. _vcsh () {
  6007.     # undefined
  6008.     builtin autoload -XUz
  6009. }
  6010. _vim () {
  6011.     # undefined
  6012.     builtin autoload -XUz
  6013. }
  6014. _vim-addons () {
  6015.     # undefined
  6016.     builtin autoload -XUz
  6017. }
  6018. _visudo () {
  6019.     # undefined
  6020.     builtin autoload -XUz
  6021. }
  6022. _vmctl () {
  6023.     # undefined
  6024.     builtin autoload -XUz
  6025. }
  6026. _vmstat () {
  6027.     # undefined
  6028.     builtin autoload -XUz
  6029. }
  6030. _vnc () {
  6031.     # undefined
  6032.     builtin autoload -XUz
  6033. }
  6034. _volume_groups () {
  6035.     # undefined
  6036.     builtin autoload -XUz
  6037. }
  6038. _vorbis () {
  6039.     # undefined
  6040.     builtin autoload -XUz
  6041. }
  6042. _vpnc () {
  6043.     # undefined
  6044.     builtin autoload -XUz
  6045. }
  6046. _vserver () {
  6047.     # undefined
  6048.     builtin autoload -XUz
  6049. }
  6050. _vux () {
  6051.     # undefined
  6052.     builtin autoload -XUz
  6053. }
  6054. _w () {
  6055.     # undefined
  6056.     builtin autoload -XUz
  6057. }
  6058. _w3m () {
  6059.     # undefined
  6060.     builtin autoload -XUz
  6061. }
  6062. _wait () {
  6063.     # undefined
  6064.     builtin autoload -XUz
  6065. }
  6066. _wajig () {
  6067.     # undefined
  6068.     builtin autoload -XUz
  6069. }
  6070. _wakeup_capable_devices () {
  6071.     # undefined
  6072.     builtin autoload -XUz
  6073. }
  6074. _wanna-build () {
  6075.     # undefined
  6076.     builtin autoload -XUz
  6077. }
  6078. _wanted () {
  6079.     local -a __targs __gopt
  6080.     zparseopts -D -a __gopt 1 2 V J x C:=__targs
  6081.     _tags "$__targs[@]" "$1"
  6082.     while _tags
  6083.     do
  6084.         _all_labels "$__gopt[@]" "$@" && return 0
  6085.     done
  6086.     return 1
  6087. }
  6088. _watch () {
  6089.     # undefined
  6090.     builtin autoload -XUz
  6091. }
  6092. _watch-snoop () {
  6093.     # undefined
  6094.     builtin autoload -XUz
  6095. }
  6096. _wc () {
  6097.     # undefined
  6098.     builtin autoload -XUz
  6099. }
  6100. _webbrowser () {
  6101.     # undefined
  6102.     builtin autoload -XUz
  6103. }
  6104. _wget () {
  6105.     # undefined
  6106.     builtin autoload -XUz
  6107. }
  6108. _whereis () {
  6109.     # undefined
  6110.     builtin autoload -XUz
  6111. }
  6112. _which () {
  6113.     # undefined
  6114.     builtin autoload -XUz
  6115. }
  6116. _who () {
  6117.     # undefined
  6118.     builtin autoload -XUz
  6119. }
  6120. _whois () {
  6121.     # undefined
  6122.     builtin autoload -XUz
  6123. }
  6124. _widgets () {
  6125.     # undefined
  6126.     builtin autoload -XUz
  6127. }
  6128. _wiggle () {
  6129.     # undefined
  6130.     builtin autoload -XUz
  6131. }
  6132. _wipefs () {
  6133.     # undefined
  6134.     builtin autoload -XUz
  6135. }
  6136. _wpa_cli () {
  6137.     # undefined
  6138.     builtin autoload -XUz
  6139. }
  6140. _x_arguments () {
  6141.     # undefined
  6142.     builtin autoload -XUz
  6143. }
  6144. _x_borderwidth () {
  6145.     # undefined
  6146.     builtin autoload -XUz
  6147. }
  6148. _x_color () {
  6149.     # undefined
  6150.     builtin autoload -XUz
  6151. }
  6152. _x_colormapid () {
  6153.     # undefined
  6154.     builtin autoload -XUz
  6155. }
  6156. _x_cursor () {
  6157.     # undefined
  6158.     builtin autoload -XUz
  6159. }
  6160. _x_display () {
  6161.     # undefined
  6162.     builtin autoload -XUz
  6163. }
  6164. _x_extension () {
  6165.     # undefined
  6166.     builtin autoload -XUz
  6167. }
  6168. _x_font () {
  6169.     # undefined
  6170.     builtin autoload -XUz
  6171. }
  6172. _x_geometry () {
  6173.     # undefined
  6174.     builtin autoload -XUz
  6175. }
  6176. _x_keysym () {
  6177.     # undefined
  6178.     builtin autoload -XUz
  6179. }
  6180. _x_locale () {
  6181.     # undefined
  6182.     builtin autoload -XUz
  6183. }
  6184. _x_modifier () {
  6185.     # undefined
  6186.     builtin autoload -XUz
  6187. }
  6188. _x_name () {
  6189.     # undefined
  6190.     builtin autoload -XUz
  6191. }
  6192. _x_resource () {
  6193.     # undefined
  6194.     builtin autoload -XUz
  6195. }
  6196. _x_selection_timeout () {
  6197.     # undefined
  6198.     builtin autoload -XUz
  6199. }
  6200. _x_title () {
  6201.     # undefined
  6202.     builtin autoload -XUz
  6203. }
  6204. _x_utils () {
  6205.     # undefined
  6206.     builtin autoload -XUz
  6207. }
  6208. _x_visual () {
  6209.     # undefined
  6210.     builtin autoload -XUz
  6211. }
  6212. _x_window () {
  6213.     # undefined
  6214.     builtin autoload -XUz
  6215. }
  6216. _xargs () {
  6217.     # undefined
  6218.     builtin autoload -XUz
  6219. }
  6220. _xauth () {
  6221.     # undefined
  6222.     builtin autoload -XUz
  6223. }
  6224. _xautolock () {
  6225.     # undefined
  6226.     builtin autoload -XUz
  6227. }
  6228. _xclip () {
  6229.     # undefined
  6230.     builtin autoload -XUz
  6231. }
  6232. _xcode-select () {
  6233.     # undefined
  6234.     builtin autoload -XUz
  6235. }
  6236. _xdvi () {
  6237.     # undefined
  6238.     builtin autoload -XUz
  6239. }
  6240. _xfig () {
  6241.     # undefined
  6242.     builtin autoload -XUz
  6243. }
  6244. _xft_fonts () {
  6245.     # undefined
  6246.     builtin autoload -XUz
  6247. }
  6248. _xloadimage () {
  6249.     # undefined
  6250.     builtin autoload -XUz
  6251. }
  6252. _xmlsoft () {
  6253.     # undefined
  6254.     builtin autoload -XUz
  6255. }
  6256. _xmlstarlet () {
  6257.     # undefined
  6258.     builtin autoload -XUz
  6259. }
  6260. _xmms2 () {
  6261.     # undefined
  6262.     builtin autoload -XUz
  6263. }
  6264. _xmodmap () {
  6265.     # undefined
  6266.     builtin autoload -XUz
  6267. }
  6268. _xournal () {
  6269.     # undefined
  6270.     builtin autoload -XUz
  6271. }
  6272. _xpdf () {
  6273.     # undefined
  6274.     builtin autoload -XUz
  6275. }
  6276. _xrandr () {
  6277.     # undefined
  6278.     builtin autoload -XUz
  6279. }
  6280. _xscreensaver () {
  6281.     # undefined
  6282.     builtin autoload -XUz
  6283. }
  6284. _xset () {
  6285.     # undefined
  6286.     builtin autoload -XUz
  6287. }
  6288. _xt_arguments () {
  6289.     # undefined
  6290.     builtin autoload -XUz
  6291. }
  6292. _xt_session_id () {
  6293.     # undefined
  6294.     builtin autoload -XUz
  6295. }
  6296. _xterm () {
  6297.     # undefined
  6298.     builtin autoload -XUz
  6299. }
  6300. _xv () {
  6301.     # undefined
  6302.     builtin autoload -XUz
  6303. }
  6304. _xwit () {
  6305.     # undefined
  6306.     builtin autoload -XUz
  6307. }
  6308. _xxd () {
  6309.     # undefined
  6310.     builtin autoload -XUz
  6311. }
  6312. _xz () {
  6313.     # undefined
  6314.     builtin autoload -XUz
  6315. }
  6316. _yafc () {
  6317.     # undefined
  6318.     builtin autoload -XUz
  6319. }
  6320. _yast () {
  6321.     # undefined
  6322.     builtin autoload -XUz
  6323. }
  6324. _yodl () {
  6325.     # undefined
  6326.     builtin autoload -XUz
  6327. }
  6328. _yp () {
  6329.     # undefined
  6330.     builtin autoload -XUz
  6331. }
  6332. _yum () {
  6333.     # undefined
  6334.     builtin autoload -XUz
  6335. }
  6336. _zargs () {
  6337.     # undefined
  6338.     builtin autoload -XUz
  6339. }
  6340. _zathura () {
  6341.     # undefined
  6342.     builtin autoload -XUz
  6343. }
  6344. _zattr () {
  6345.     # undefined
  6346.     builtin autoload -XUz
  6347. }
  6348. _zcalc () {
  6349.     # undefined
  6350.     builtin autoload -XUz
  6351. }
  6352. _zcalc_line () {
  6353.     # undefined
  6354.     builtin autoload -XUz
  6355. }
  6356. _zcat () {
  6357.     # undefined
  6358.     builtin autoload -XUz
  6359. }
  6360. _zcompile () {
  6361.     # undefined
  6362.     builtin autoload -XUz
  6363. }
  6364. _zdump () {
  6365.     # undefined
  6366.     builtin autoload -XUz
  6367. }
  6368. _zeal () {
  6369.     # undefined
  6370.     builtin autoload -XUz
  6371. }
  6372. _zed () {
  6373.     # undefined
  6374.     builtin autoload -XUz
  6375. }
  6376. _zfs () {
  6377.     # undefined
  6378.     builtin autoload -XUz
  6379. }
  6380. _zfs_dataset () {
  6381.     # undefined
  6382.     builtin autoload -XUz
  6383. }
  6384. _zfs_keysource_props () {
  6385.     # undefined
  6386.     builtin autoload -XUz
  6387. }
  6388. _zfs_pool () {
  6389.     # undefined
  6390.     builtin autoload -XUz
  6391. }
  6392. _zftp () {
  6393.     # undefined
  6394.     builtin autoload -XUz
  6395. }
  6396. _zip () {
  6397.     # undefined
  6398.     builtin autoload -XUz
  6399. }
  6400. _zle () {
  6401.     # undefined
  6402.     builtin autoload -XUz
  6403. }
  6404. _zlogin () {
  6405.     # undefined
  6406.     builtin autoload -XUz
  6407. }
  6408. _zmodload () {
  6409.     # undefined
  6410.     builtin autoload -XUz
  6411. }
  6412. _zmv () {
  6413.     # undefined
  6414.     builtin autoload -XUz
  6415. }
  6416. _zoneadm () {
  6417.     # undefined
  6418.     builtin autoload -XUz
  6419. }
  6420. _zones () {
  6421.     # undefined
  6422.     builtin autoload -XUz
  6423. }
  6424. _zpool () {
  6425.     # undefined
  6426.     builtin autoload -XUz
  6427. }
  6428. _zpty () {
  6429.     # undefined
  6430.     builtin autoload -XUz
  6431. }
  6432. _zsh () {
  6433.     # undefined
  6434.     builtin autoload -XUz
  6435. }
  6436. _zsh-mime-handler () {
  6437.     # undefined
  6438.     builtin autoload -XUz
  6439. }
  6440. _zsocket () {
  6441.     # undefined
  6442.     builtin autoload -XUz
  6443. }
  6444. _zstyle () {
  6445.     # undefined
  6446.     builtin autoload -XUz
  6447. }
  6448. _ztodo () {
  6449.     # undefined
  6450.     builtin autoload -XUz
  6451. }
  6452. _zypper () {
  6453.     # undefined
  6454.     builtin autoload -XUz
  6455. }
  6456. alias_value () {
  6457.     (( $+aliases[$1] )) && echo $aliases[$1]
  6458. }
  6459. bracketed-paste-magic () {
  6460.     # undefined
  6461.     builtin autoload -XUz
  6462. }
  6463. bzr_prompt_info () {
  6464.     BZR_CB=`bzr nick 2> /dev/null | grep -v "ERROR" | cut -d ":" -f2 | awk -F / '{print "bzr::"$1}'`
  6465.     if [ -n "$BZR_CB" ]
  6466.     then
  6467.         BZR_DIRTY=""
  6468.         [[ -n `bzr status` ]] && BZR_DIRTY=" %{$fg[red]%} * %{$fg[green]%}"
  6469.         echo "$ZSH_THEME_SCM_PROMPT_PREFIX$BZR_CB$BZR_DIRTY$ZSH_THEME_GIT_PROMPT_SUFFIX"
  6470.     fi
  6471. }
  6472. c () {
  6473.     clear
  6474. }
  6475. chruby_prompt_info () {
  6476.     return 1
  6477. }
  6478. clipcopy () {
  6479.     emulate -L zsh
  6480.     local file=$1
  6481.     if [[ $OSTYPE == darwin* ]]
  6482.     then
  6483.         if [[ -z $file ]]
  6484.         then
  6485.             pbcopy
  6486.         else
  6487.             cat $file | pbcopy
  6488.         fi
  6489.     elif [[ $OSTYPE == cygwin* ]]
  6490.     then
  6491.         if [[ -z $file ]]
  6492.         then
  6493.             cat > /dev/clipboard
  6494.         else
  6495.             cat $file > /dev/clipboard
  6496.         fi
  6497.     else
  6498.         if (( $+commands[xclip] ))
  6499.         then
  6500.             if [[ -z $file ]]
  6501.             then
  6502.                 xclip -in -selection clipboard
  6503.             else
  6504.                 xclip -in -selection clipboard $file
  6505.             fi
  6506.         elif (( $+commands[xsel] ))
  6507.         then
  6508.             if [[ -z $file ]]
  6509.             then
  6510.                 xsel --clipboard --input
  6511.             else
  6512.                 cat "$file" | xsel --clipboard --input
  6513.             fi
  6514.         else
  6515.             print "clipcopy: Platform $OSTYPE not supported or xclip/xsel not installed" >&2
  6516.             return 1
  6517.         fi
  6518.     fi
  6519. }
  6520. clippaste () {
  6521.     emulate -L zsh
  6522.     if [[ $OSTYPE == darwin* ]]
  6523.     then
  6524.         pbpaste
  6525.     elif [[ $OSTYPE == cygwin* ]]
  6526.     then
  6527.         cat /dev/clipboard
  6528.     else
  6529.         if (( $+commands[xclip] ))
  6530.         then
  6531.             xclip -out -selection clipboard
  6532.         elif (( $+commands[xsel] ))
  6533.         then
  6534.             xsel --clipboard --output
  6535.         else
  6536.             print "clipcopy: Platform $OSTYPE not supported or xclip/xsel not installed" >&2
  6537.             return 1
  6538.         fi
  6539.     fi
  6540. }
  6541. colors () {
  6542.     emulate -L zsh
  6543.     typeset -Ag color colour
  6544.     color=(00 none 01 bold 02 faint 22 normal 03 standout 23 no-standout 04 underline 24 no-underline 05 blink 25 no-blink 07 reverse 27 no-reverse 08 conceal 28 no-conceal 30 black 40 bg-black 31 red 41 bg-red 32 green 42 bg-green 33 yellow 43 bg-yellow 34 blue 44 bg-blue 35 magenta 45 bg-magenta 36 cyan 46 bg-cyan 37 white 47 bg-white 39 default 49 bg-default)
  6545.     local k
  6546.     for k in ${(k)color}
  6547.     do
  6548.         color[${color[$k]}]=$k
  6549.     done
  6550.     for k in ${color[(I)3?]}
  6551.     do
  6552.         color[fg-${color[$k]}]=$k
  6553.     done
  6554.     color[grey]=${color[black]}
  6555.     color[fg-grey]=${color[grey]}
  6556.     color[bg-grey]=${color[bg-black]}
  6557.     colour=(${(kv)color})
  6558.     local lc=$'\e[' rc=m
  6559.     typeset -Hg reset_color bold_color
  6560.     reset_color="$lc${color[none]}$rc"
  6561.     bold_color="$lc${color[bold]}$rc"
  6562.     typeset -AHg fg fg_bold fg_no_bold
  6563.     for k in ${(k)color[(I)fg-*]}
  6564.     do
  6565.         fg[${k#fg-}]="$lc${color[$k]}$rc"
  6566.         fg_bold[${k#fg-}]="$lc${color[bold]};${color[$k]}$rc"
  6567.         fg_no_bold[${k#fg-}]="$lc${color[normal]};${color[$k]}$rc"
  6568.     done
  6569.     typeset -AHg bg bg_bold bg_no_bold
  6570.     for k in ${(k)color[(I)bg-*]}
  6571.     do
  6572.         bg[${k#bg-}]="$lc${color[$k]}$rc"
  6573.         bg_bold[${k#bg-}]="$lc${color[bold]};${color[$k]}$rc"
  6574.         bg_no_bold[${k#bg-}]="$lc${color[normal]};${color[$k]}$rc"
  6575.     done
  6576. }
  6577. command_not_found_handler () {
  6578.     /data/data/com.termux/files/usr/libexec/termux/command-not-found $1
  6579. }
  6580. compaudit () {
  6581.     # undefined
  6582.     builtin autoload -XUz
  6583. }
  6584. compdef () {
  6585.     local opt autol type func delete eval new i ret=0 cmd svc
  6586.     local -a match mbegin mend
  6587.     emulate -L zsh
  6588.     setopt extendedglob
  6589.     if (( ! $# ))
  6590.     then
  6591.         print -u2 "$0: I need arguments"
  6592.         return 1
  6593.     fi
  6594.     while getopts "anpPkKde" opt
  6595.     do
  6596.         case "$opt" in
  6597.             (a) autol=yes  ;;
  6598.             (n) new=yes  ;;
  6599.             ([pPkK]) if [[ -n "$type" ]]
  6600.                 then
  6601.                     print -u2 "$0: type already set to $type"
  6602.                     return 1
  6603.                 fi
  6604.                 if [[ "$opt" = p ]]
  6605.                 then
  6606.                     type=pattern
  6607.                 elif [[ "$opt" = P ]]
  6608.                 then
  6609.                     type=postpattern
  6610.                 elif [[ "$opt" = K ]]
  6611.                 then
  6612.                     type=widgetkey
  6613.                 else
  6614.                     type=key
  6615.                 fi ;;
  6616.             (d) delete=yes  ;;
  6617.             (e) eval=yes  ;;
  6618.         esac
  6619.     done
  6620.     shift OPTIND-1
  6621.     if (( ! $# ))
  6622.     then
  6623.         print -u2 "$0: I need arguments"
  6624.         return 1
  6625.     fi
  6626.     if [[ -z "$delete" ]]
  6627.     then
  6628.         if [[ -z "$eval" ]] && [[ "$1" = *\=* ]]
  6629.         then
  6630.             while (( $# ))
  6631.             do
  6632.                 if [[ "$1" = *\=* ]]
  6633.                 then
  6634.                     cmd="${1%%\=*}"
  6635.                     svc="${1#*\=}"
  6636.                     func="$_comps[${_services[(r)$svc]:-$svc}]"
  6637.                     [[ -n ${_services[$svc]} ]] && svc=${_services[$svc]}
  6638.                     [[ -z "$func" ]] && func="${${_patcomps[(K)$svc][1]}:-${_postpatcomps[(K)$svc][1]}}"
  6639.                     if [[ -n "$func" ]]
  6640.                     then
  6641.                         _comps[$cmd]="$func"
  6642.                         _services[$cmd]="$svc"
  6643.                     else
  6644.                         print -u2 "$0: unknown command or service: $svc"
  6645.                         ret=1
  6646.                     fi
  6647.                 else
  6648.                     print -u2 "$0: invalid argument: $1"
  6649.                     ret=1
  6650.                 fi
  6651.                 shift
  6652.             done
  6653.             return ret
  6654.         fi
  6655.         func="$1"
  6656.         [[ -n "$autol" ]] && autoload -Uz "$func"
  6657.         shift
  6658.         case "$type" in
  6659.             (widgetkey) while [[ -n $1 ]]
  6660.                 do
  6661.                     if [[ $# -lt 3 ]]
  6662.                     then
  6663.                         print -u2 "$0: compdef -K requires <widget> <comp-widget> <key>"
  6664.                         return 1
  6665.                     fi
  6666.                     [[ $1 = _* ]] || 1="_$1"
  6667.                     [[ $2 = .* ]] || 2=".$2"
  6668.                     [[ $2 = .menu-select ]] && zmodload -i zsh/complist
  6669.                     zle -C "$1" "$2" "$func"
  6670.                     if [[ -n $new ]]
  6671.                     then
  6672.                         bindkey "$3" | IFS=$' \t' read -A opt
  6673.                         [[ $opt[-1] = undefined-key ]] && bindkey "$3" "$1"
  6674.                     else
  6675.                         bindkey "$3" "$1"
  6676.                     fi
  6677.                     shift 3
  6678.                 done ;;
  6679.             (key) if [[ $# -lt 2 ]]
  6680.                 then
  6681.                     print -u2 "$0: missing keys"
  6682.                     return 1
  6683.                 fi
  6684.                 if [[ $1 = .* ]]
  6685.                 then
  6686.                     [[ $1 = .menu-select ]] && zmodload -i zsh/complist
  6687.                     zle -C "$func" "$1" "$func"
  6688.                 else
  6689.                     [[ $1 = menu-select ]] && zmodload -i zsh/complist
  6690.                     zle -C "$func" ".$1" "$func"
  6691.                 fi
  6692.                 shift
  6693.                 for i
  6694.                 do
  6695.                     if [[ -n $new ]]
  6696.                     then
  6697.                         bindkey "$i" | IFS=$' \t' read -A opt
  6698.                         [[ $opt[-1] = undefined-key ]] || continue
  6699.                     fi
  6700.                     bindkey "$i" "$func"
  6701.                 done ;;
  6702.             (*) while (( $# ))
  6703.                 do
  6704.                     if [[ "$1" = -N ]]
  6705.                     then
  6706.                         type=normal
  6707.                     elif [[ "$1" = -p ]]
  6708.                     then
  6709.                         type=pattern
  6710.                     elif [[ "$1" = -P ]]
  6711.                     then
  6712.                         type=postpattern
  6713.                     else
  6714.                         case "$type" in
  6715.                             (pattern) if [[ $1 = (#b)(*)=(*) ]]
  6716.                                 then
  6717.                                     _patcomps[$match[1]]="=$match[2]=$func"
  6718.                                 else
  6719.                                     _patcomps[$1]="$func"
  6720.                                 fi ;;
  6721.                             (postpattern) if [[ $1 = (#b)(*)=(*) ]]
  6722.                                 then
  6723.                                     _postpatcomps[$match[1]]="=$match[2]=$func"
  6724.                                 else
  6725.                                     _postpatcomps[$1]="$func"
  6726.                                 fi ;;
  6727.                             (*) if [[ "$1" = *\=* ]]
  6728.                                 then
  6729.                                     cmd="${1%%\=*}"
  6730.                                     svc=yes
  6731.                                 else
  6732.                                     cmd="$1"
  6733.                                     svc=
  6734.                                 fi
  6735.                                 if [[ -z "$new" || -z "${_comps[$1]}" ]]
  6736.                                 then
  6737.                                     _comps[$cmd]="$func"
  6738.                                     [[ -n "$svc" ]] && _services[$cmd]="${1#*\=}"
  6739.                                 fi ;;
  6740.                         esac
  6741.                     fi
  6742.                     shift
  6743.                 done ;;
  6744.         esac
  6745.     else
  6746.         case "$type" in
  6747.             (pattern) unset "_patcomps[$^@]" ;;
  6748.             (postpattern) unset "_postpatcomps[$^@]" ;;
  6749.             (key) print -u2 "$0: cannot restore key bindings"
  6750.                 return 1 ;;
  6751.             (*) unset "_comps[$^@]" ;;
  6752.         esac
  6753.     fi
  6754. }
  6755. compdump () {
  6756.     # undefined
  6757.     builtin autoload -XUz
  6758. }
  6759. compinit () {
  6760.     # undefined
  6761.     builtin autoload -XUz
  6762. }
  6763. compinstall () {
  6764.     # undefined
  6765.     builtin autoload -XUz
  6766. }
  6767. default () {
  6768.     (( $+parameters[$1] )) && return 0
  6769.     typeset -g "$1"="$2" && return 3
  6770. }
  6771. down-line-or-beginning-search () {
  6772.     # undefined
  6773.     builtin autoload -XU
  6774. }
  6775. edit-command-line () {
  6776.     # undefined
  6777.     builtin autoload -XU
  6778. }
  6779. env_default () {
  6780.     (( ${${(@f):-$(typeset +xg)}[(I)$1]} )) && return 0
  6781.     export "$1=$2" && return 3
  6782. }
  6783. git_commits_ahead () {
  6784.     if command git rev-parse --git-dir &> /dev/null
  6785.     then
  6786.         local commits="$(git rev-list --count @{upstream}..HEAD 2>/dev/null)"
  6787.         if [[ -n "$commits" && "$commits" != 0 ]]
  6788.         then
  6789.             echo "$ZSH_THEME_GIT_COMMITS_AHEAD_PREFIX$commits$ZSH_THEME_GIT_COMMITS_AHEAD_SUFFIX"
  6790.         fi
  6791.     fi
  6792. }
  6793. git_commits_behind () {
  6794.     if command git rev-parse --git-dir &> /dev/null
  6795.     then
  6796.         local commits="$(git rev-list --count HEAD..@{upstream} 2>/dev/null)"
  6797.         if [[ -n "$commits" && "$commits" != 0 ]]
  6798.         then
  6799.             echo "$ZSH_THEME_GIT_COMMITS_BEHIND_PREFIX$commits$ZSH_THEME_GIT_COMMITS_BEHIND_SUFFIX"
  6800.         fi
  6801.     fi
  6802. }
  6803. git_current_branch () {
  6804.     local ref
  6805.     ref=$(command git symbolic-ref --quiet HEAD 2> /dev/null)
  6806.     local ret=$?
  6807.     if [[ $ret != 0 ]]
  6808.     then
  6809.         [[ $ret == 128 ]] && return
  6810.         ref=$(command git rev-parse --short HEAD 2> /dev/null)  || return
  6811.     fi
  6812.     echo ${ref#refs/heads/}
  6813. }
  6814. git_current_user_email () {
  6815.     command git config user.email 2> /dev/null
  6816. }
  6817. git_current_user_name () {
  6818.     command git config user.name 2> /dev/null
  6819. }
  6820. git_prompt_ahead () {
  6821.     if [[ -n "$(command git rev-list origin/$(git_current_branch)..HEAD 2> /dev/null)" ]]
  6822.     then
  6823.         echo "$ZSH_THEME_GIT_PROMPT_AHEAD"
  6824.     fi
  6825. }
  6826. git_prompt_behind () {
  6827.     if [[ -n "$(command git rev-list HEAD..origin/$(git_current_branch) 2> /dev/null)" ]]
  6828.     then
  6829.         echo "$ZSH_THEME_GIT_PROMPT_BEHIND"
  6830.     fi
  6831. }
  6832. git_prompt_info () {
  6833.     local ref
  6834.     if [[ "$(command git config --get oh-my-zsh.hide-status 2>/dev/null)" != "1" ]]
  6835.     then
  6836.         ref=$(command git symbolic-ref HEAD 2> /dev/null)  || ref=$(command git rev-parse --short HEAD 2> /dev/null)  || return 0
  6837.         echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX"
  6838.     fi
  6839. }
  6840. git_prompt_long_sha () {
  6841.     local SHA
  6842.     SHA=$(command git rev-parse HEAD 2> /dev/null)  && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER"
  6843. }
  6844. git_prompt_remote () {
  6845.     if [[ -n "$(command git show-ref origin/$(git_current_branch) 2> /dev/null)" ]]
  6846.     then
  6847.         echo "$ZSH_THEME_GIT_PROMPT_REMOTE_EXISTS"
  6848.     else
  6849.         echo "$ZSH_THEME_GIT_PROMPT_REMOTE_MISSING"
  6850.     fi
  6851. }
  6852. git_prompt_short_sha () {
  6853.     local SHA
  6854.     SHA=$(command git rev-parse --short HEAD 2> /dev/null)  && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER"
  6855. }
  6856. git_prompt_status () {
  6857.     local INDEX STATUS
  6858.     INDEX=$(command git status --porcelain -b 2> /dev/null)
  6859.     STATUS=""
  6860.     if $(echo "$INDEX" | command grep -E '^\?\? ' &> /dev/null)
  6861.     then
  6862.         STATUS="$ZSH_THEME_GIT_PROMPT_UNTRACKED$STATUS"
  6863.     fi
  6864.     if $(echo "$INDEX" | grep '^A  ' &> /dev/null)
  6865.     then
  6866.         STATUS="$ZSH_THEME_GIT_PROMPT_ADDED$STATUS"
  6867.     elif $(echo "$INDEX" | grep '^M  ' &> /dev/null)
  6868.     then
  6869.         STATUS="$ZSH_THEME_GIT_PROMPT_ADDED$STATUS"
  6870.     elif $(echo "$INDEX" | grep '^MM ' &> /dev/null)
  6871.     then
  6872.         STATUS="$ZSH_THEME_GIT_PROMPT_ADDED$STATUS"
  6873.     fi
  6874.     if $(echo "$INDEX" | grep '^ M ' &> /dev/null)
  6875.     then
  6876.         STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
  6877.     elif $(echo "$INDEX" | grep '^AM ' &> /dev/null)
  6878.     then
  6879.         STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
  6880.     elif $(echo "$INDEX" | grep '^MM ' &> /dev/null)
  6881.     then
  6882.         STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
  6883.     elif $(echo "$INDEX" | grep '^ T ' &> /dev/null)
  6884.     then
  6885.         STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
  6886.     fi
  6887.     if $(echo "$INDEX" | grep '^R  ' &> /dev/null)
  6888.     then
  6889.         STATUS="$ZSH_THEME_GIT_PROMPT_RENAMED$STATUS"
  6890.     fi
  6891.     if $(echo "$INDEX" | grep '^ D ' &> /dev/null)
  6892.     then
  6893.         STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
  6894.     elif $(echo "$INDEX" | grep '^D  ' &> /dev/null)
  6895.     then
  6896.         STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
  6897.     elif $(echo "$INDEX" | grep '^AD ' &> /dev/null)
  6898.     then
  6899.         STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
  6900.     fi
  6901.     if $(command git rev-parse --verify refs/stash >/dev/null 2>&1)
  6902.     then
  6903.         STATUS="$ZSH_THEME_GIT_PROMPT_STASHED$STATUS"
  6904.     fi
  6905.     if $(echo "$INDEX" | grep '^UU ' &> /dev/null)
  6906.     then
  6907.         STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$STATUS"
  6908.     fi
  6909.     if $(echo "$INDEX" | grep '^## [^ ]\+ .*ahead' &> /dev/null)
  6910.     then
  6911.         STATUS="$ZSH_THEME_GIT_PROMPT_AHEAD$STATUS"
  6912.     fi
  6913.     if $(echo "$INDEX" | grep '^## [^ ]\+ .*behind' &> /dev/null)
  6914.     then
  6915.         STATUS="$ZSH_THEME_GIT_PROMPT_BEHIND$STATUS"
  6916.     fi
  6917.     if $(echo "$INDEX" | grep '^## [^ ]\+ .*diverged' &> /dev/null)
  6918.     then
  6919.         STATUS="$ZSH_THEME_GIT_PROMPT_DIVERGED$STATUS"
  6920.     fi
  6921.     echo $STATUS
  6922. }
  6923. git_remote_status () {
  6924.     local remote ahead behind git_remote_status git_remote_status_detailed
  6925.     remote=${$(command git rev-parse --verify ${hook_com[branch]}@{upstream} --symbolic-full-name 2>/dev/null)/refs\/remotes\/}
  6926.     if [[ -n ${remote} ]]
  6927.     then
  6928.         ahead=$(command git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l)
  6929.         behind=$(command git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l)
  6930.         if [[ $ahead -eq 0 ]] && [[ $behind -eq 0 ]]
  6931.         then
  6932.             git_remote_status="$ZSH_THEME_GIT_PROMPT_EQUAL_REMOTE"
  6933.         elif [[ $ahead -gt 0 ]] && [[ $behind -eq 0 ]]
  6934.         then
  6935.             git_remote_status="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE"
  6936.             git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE$((ahead))%{$reset_color%}"
  6937.         elif [[ $behind -gt 0 ]] && [[ $ahead -eq 0 ]]
  6938.         then
  6939.             git_remote_status="$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE"
  6940.             git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE$((behind))%{$reset_color%}"
  6941.         elif [[ $ahead -gt 0 ]] && [[ $behind -gt 0 ]]
  6942.         then
  6943.             git_remote_status="$ZSH_THEME_GIT_PROMPT_DIVERGED_REMOTE"
  6944.             git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE$((ahead))%{$reset_color%}$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE$((behind))%{$reset_color%}"
  6945.         fi
  6946.         if [[ -n $ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_DETAILED ]]
  6947.         then
  6948.             git_remote_status="$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_PREFIX$remote$git_remote_status_detailed$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_SUFFIX"
  6949.         fi
  6950.         echo $git_remote_status
  6951.     fi
  6952. }
  6953. handle_completion_insecurities () {
  6954.     local -aU insecure_dirs
  6955.     insecure_dirs=(${(f@):-"$(compaudit 2>/dev/null)"})
  6956.     [[ -z "${insecure_dirs}" ]] && return
  6957.     print "[oh-my-zsh] Insecure completion-dependent directories detected:"
  6958.     ls -ld "${(@)insecure_dirs}"
  6959.     cat <<EOD
  6960.  
  6961. [oh-my-zsh] For safety, we will not load completions from these directories until
  6962. [oh-my-zsh] you fix their permissions and ownership and restart zsh.
  6963. [oh-my-zsh] See the above list for directories with group or other writability.
  6964.  
  6965. [oh-my-zsh] To fix your permissions you can do so by disabling
  6966. [oh-my-zsh] the write permission of "group" and "others" and making sure that the
  6967. [oh-my-zsh] owner of these directories is either root or your current user.
  6968. [oh-my-zsh] The following command may help:
  6969. [oh-my-zsh]     compaudit | xargs chmod g-w,o-w
  6970.  
  6971. [oh-my-zsh] If the above didn't help or you want to skip the verification of
  6972. [oh-my-zsh] insecure directories you can set the variable ZSH_DISABLE_COMPFIX to
  6973. [oh-my-zsh] "true" before oh-my-zsh is sourced in your zshrc file.
  6974.  
  6975. EOD
  6976. }
  6977. hg_prompt_info () {
  6978.     return 1
  6979. }
  6980. is-at-least () {
  6981.     emulate -L zsh
  6982.     local IFS=".-" min_cnt=0 ver_cnt=0 part min_ver version order
  6983.     min_ver=(${=1})
  6984.     version=(${=2:-$ZSH_VERSION} 0)
  6985.     while (( $min_cnt <= ${#min_ver} ))
  6986.     do
  6987.         while [[ "$part" != <-> ]]
  6988.         do
  6989.             (( ++ver_cnt > ${#version} )) && return 0
  6990.             if [[ ${version[ver_cnt]} = *[0-9][^0-9]* ]]
  6991.             then
  6992.                 order=(${version[ver_cnt]} ${min_ver[ver_cnt]})
  6993.                 if [[ ${version[ver_cnt]} = <->* ]]
  6994.                 then
  6995.                     [[ $order != ${${(On)order}} ]] && return 1
  6996.                 else
  6997.                     [[ $order != ${${(O)order}} ]] && return 1
  6998.                 fi
  6999.                 [[ $order[1] != $order[2] ]] && return 0
  7000.             fi
  7001.             part=${version[ver_cnt]##*[^0-9]}
  7002.         done
  7003.         while true
  7004.         do
  7005.             (( ++min_cnt > ${#min_ver} )) && return 0
  7006.             [[ ${min_ver[min_cnt]} = <-> ]] && break
  7007.         done
  7008.         (( part > min_ver[min_cnt] )) && return 0
  7009.         (( part < min_ver[min_cnt] )) && return 1
  7010.         part=''
  7011.     done
  7012. }
  7013. is_plugin () {
  7014.     local base_dir=$1
  7015.     local name=$2
  7016.     test -f $base_dir/plugins/$name/$name.plugin.zsh || test -f $base_dir/plugins/$name/_$name
  7017. }
  7018. ital () {
  7019.     echo $*
  7020. }
  7021. jenv_prompt_info () {
  7022.     return 1
  7023. }
  7024. nvm_prompt_info () {
  7025.     [[ -f "$NVM_DIR/nvm.sh" ]] || return
  7026.     local nvm_prompt
  7027.     nvm_prompt=$(node -v 2>/dev/null)
  7028.     [[ "${nvm_prompt}x" == "x" ]] && return
  7029.     nvm_prompt=${nvm_prompt:1}
  7030.     echo "${ZSH_THEME_NVM_PROMPT_PREFIX}${nvm_prompt}${ZSH_THEME_NVM_PROMPT_SUFFIX}"
  7031. }
  7032. omz_diagnostic_dump () {
  7033.     emulate -L zsh
  7034.     builtin echo "Generating diagnostic dump; please be patient..."
  7035.     local thisfcn=omz_diagnostic_dump
  7036.     local -A opts
  7037.     local opt_verbose opt_noverbose opt_outfile
  7038.     local timestamp=$(date +%Y%m%d-%H%M%S)
  7039.     local outfile=omz_diagdump_$timestamp.txt
  7040.     builtin zparseopts -A opts -D -- "v+=opt_verbose" "V+=opt_noverbose"
  7041.     local verbose n_verbose=${#opt_verbose} n_noverbose=${#opt_noverbose}
  7042.     (( verbose = 1 + n_verbose - n_noverbose ))
  7043.     if [[ ${#*} > 0 ]]
  7044.     then
  7045.         opt_outfile=$1
  7046.     fi
  7047.     if [[ ${#*} > 1 ]]
  7048.     then
  7049.         builtin echo "$thisfcn: error: too many arguments" >&2
  7050.         return 1
  7051.     fi
  7052.     if [[ -n "$opt_outfile" ]]
  7053.     then
  7054.         outfile="$opt_outfile"
  7055.     fi
  7056.     _omz_diag_dump_one_big_text &> "$outfile"
  7057.     if [[ $? != 0 ]]
  7058.     then
  7059.         builtin echo "$thisfcn: error while creating diagnostic dump; see $outfile for details"
  7060.     fi
  7061.     builtin echo
  7062.     builtin echo Diagnostic dump file created at: "$outfile"
  7063.     builtin echo
  7064.     builtin echo To share this with OMZ developers, post it as a gist on GitHub
  7065.     builtin echo at "https://gist.github.com" and share the link to the gist.
  7066.     builtin echo
  7067.     builtin echo "WARNING: This dump file contains all your zsh and omz configuration files,"
  7068.     builtin echo "so don't share it publicly if there's sensitive information in them."
  7069.     builtin echo
  7070. }
  7071. omz_history () {
  7072.     local clear list
  7073.     zparseopts -E c=clear l=list
  7074.     if [[ -n "$clear" ]]
  7075.     then
  7076.         echo -n >| "$HISTFILE"
  7077.         echo History file deleted. Reload the session to see its effects. >&2
  7078.     elif [[ -n "$list" ]]
  7079.     then
  7080.         builtin fc "$@"
  7081.     else
  7082.         [[ ${@[-1]} = *[0-9]* ]] && builtin fc -l "$@" || builtin fc -l "$@" 1
  7083.     fi
  7084. }
  7085. omz_termsupport_precmd () {
  7086.     emulate -L zsh
  7087.     if [[ "$DISABLE_AUTO_TITLE" == true ]]
  7088.     then
  7089.         return
  7090.     fi
  7091.     title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE
  7092. }
  7093. omz_termsupport_preexec () {
  7094.     emulate -L zsh
  7095.     setopt extended_glob
  7096.     if [[ "$DISABLE_AUTO_TITLE" == true ]]
  7097.     then
  7098.         return
  7099.     fi
  7100.     local CMD=${1[(wr)^(*=*|sudo|ssh|mosh|rake|-*)]:gs/%/%%}
  7101.     local LINE="${2:gs/%/%%}"
  7102.     title '$CMD' '%100>...>$LINE%<<'
  7103. }
  7104. omz_urldecode () {
  7105.     emulate -L zsh
  7106.     local encoded_url=$1
  7107.     local caller_encoding=$langinfo[CODESET]
  7108.     local LC_ALL=C
  7109.     export LC_ALL
  7110.     local tmp=${encoded_url:gs/+/ /}
  7111.     tmp=${tmp:gs/\\/\\\\/}
  7112.     tmp=${tmp:gs/%/\\x/}
  7113.     local decoded
  7114.     eval "decoded=\$'$tmp'"
  7115.     local safe_encodings
  7116.     safe_encodings=(UTF-8 utf8 US-ASCII)
  7117.     if [[ -z ${safe_encodings[(r)$caller_encoding]} ]]
  7118.     then
  7119.         decoded=$(echo -E "$decoded" | iconv -f UTF-8 -t $caller_encoding)
  7120.         if [[ $? != 0 ]]
  7121.         then
  7122.             echo "Error converting string from UTF-8 to $caller_encoding" >&2
  7123.             return 1
  7124.         fi
  7125.     fi
  7126.     echo -E "$decoded"
  7127. }
  7128. omz_urlencode () {
  7129.     emulate -L zsh
  7130.     zparseopts -D -E -a opts r m P
  7131.     local in_str=$1
  7132.     local url_str=""
  7133.     local spaces_as_plus
  7134.     if [[ -z $opts[(r)-P] ]]
  7135.     then
  7136.         spaces_as_plus=1
  7137.     fi
  7138.     local str="$in_str"
  7139.     local encoding=$langinfo[CODESET]
  7140.     local safe_encodings
  7141.     safe_encodings=(UTF-8 utf8 US-ASCII)
  7142.     if [[ -z ${safe_encodings[(r)$encoding]} ]]
  7143.     then
  7144.         str=$(echo -E "$str" | iconv -f $encoding -t UTF-8)
  7145.         if [[ $? != 0 ]]
  7146.         then
  7147.             echo "Error converting string from $encoding to UTF-8" >&2
  7148.             return 1
  7149.         fi
  7150.     fi
  7151.     local i byte ord LC_ALL=C
  7152.     export LC_ALL
  7153.     local reserved=';/?:@&=+$,'
  7154.     local mark='_.!~*''()-'
  7155.     local dont_escape="[A-Za-z0-9"
  7156.     if [[ -z $opts[(r)-r] ]]
  7157.     then
  7158.         dont_escape+=$reserved
  7159.     fi
  7160.     if [[ -z $opts[(r)-m] ]]
  7161.     then
  7162.         dont_escape+=$mark
  7163.     fi
  7164.     dont_escape+="]"
  7165.     local url_str=""
  7166.     for ((i = 1; i <= ${#str}; ++i )) do
  7167.         byte="$str[i]"
  7168.         if [[ "$byte" =~ "$dont_escape" ]]
  7169.         then
  7170.             url_str+="$byte"
  7171.         else
  7172.             if [[ "$byte" == " " && -n $spaces_as_plus ]]
  7173.             then
  7174.                 url_str+="+"
  7175.             else
  7176.                 ord=$(( [##16] #byte ))
  7177.                 url_str+="%$ord"
  7178.             fi
  7179.         fi
  7180.     done
  7181.     echo -E "$url_str"
  7182. }
  7183. open_command () {
  7184.     local open_cmd
  7185.     case "$OSTYPE" in
  7186.         (darwin*) open_cmd='open'  ;;
  7187.         (cygwin*) open_cmd='cygstart'  ;;
  7188.         (linux*) ! [[ $(uname -a) =~ "Microsoft" ]] && open_cmd='xdg-open'  || {
  7189.                 open_cmd='cmd.exe /c start ""'
  7190.                 [[ -e "$1" ]] && {
  7191.                     1="$(wslpath -w "${1:a}")"  || return 1
  7192.                 }
  7193.             } ;;
  7194.         (msys*) open_cmd='start ""'  ;;
  7195.         (*) echo "Platform $OSTYPE not supported"
  7196.             return 1 ;;
  7197.     esac
  7198.     if [[ "$OSTYPE" == darwin* ]]
  7199.     then
  7200.         ${=open_cmd} "$@" &> /dev/null
  7201.     else
  7202.         nohup ${=open_cmd} "$@" &> /dev/null
  7203.     fi
  7204. }
  7205. parse_git_dirty () {
  7206.     local STATUS=''
  7207.     local -a FLAGS
  7208.     FLAGS=('--porcelain')
  7209.     if [[ "$(command git config --get oh-my-zsh.hide-dirty)" != "1" ]]
  7210.     then
  7211.         if [[ $POST_1_7_2_GIT -gt 0 ]]
  7212.         then
  7213.             FLAGS+='--ignore-submodules=dirty'
  7214.         fi
  7215.         if [[ "$DISABLE_UNTRACKED_FILES_DIRTY" == "true" ]]
  7216.         then
  7217.             FLAGS+='--untracked-files=no'
  7218.         fi
  7219.         STATUS=$(command git status ${FLAGS} 2> /dev/null | tail -n1)
  7220.     fi
  7221.     if [[ -n $STATUS ]]
  7222.     then
  7223.         echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
  7224.     else
  7225.         echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
  7226.     fi
  7227. }
  7228. pyenv_prompt_info () {
  7229.     return 1
  7230. }
  7231. rbenv_prompt_info () {
  7232.     return 1
  7233. }
  7234. ruby_prompt_info () {
  7235.     echo $(rvm_prompt_info || rbenv_prompt_info || chruby_prompt_info)
  7236. }
  7237. rvm_prompt_info () {
  7238.     [ -f $HOME/.rvm/bin/rvm-prompt ] || return 1
  7239.     local rvm_prompt
  7240.     rvm_prompt=$($HOME/.rvm/bin/rvm-prompt ${=ZSH_THEME_RVM_PROMPT_OPTIONS} 2>/dev/null)
  7241.     [[ "${rvm_prompt}x" == "x" ]] && return 1
  7242.     echo "${ZSH_THEME_RVM_PROMPT_PREFIX:=(}${rvm_prompt}${ZSH_THEME_RVM_PROMPT_SUFFIX:=)}"
  7243. }
  7244. spectrum_bls () {
  7245.     for code in {000..255}
  7246.     do
  7247.         print -P -- "$code: %{$BG[$code]%}$ZSH_SPECTRUM_TEXT%{$reset_color%}"
  7248.     done
  7249. }
  7250. spectrum_ls () {
  7251.     for code in {000..255}
  7252.     do
  7253.         print -P -- "$code: %{$FG[$code]%}$ZSH_SPECTRUM_TEXT%{$reset_color%}"
  7254.     done
  7255. }
  7256. svn_prompt_info () {
  7257.     return 1
  7258. }
  7259. take () {
  7260.     mkdir -p $@ && cd ${@:$#}
  7261. }
  7262. title () {
  7263.     emulate -L zsh
  7264.     setopt prompt_subst
  7265.     [[ "$EMACS" == *term* ]] && return
  7266.     : ${2=$1}
  7267.     case "$TERM" in
  7268.         (cygwin | xterm* | putty* | rxvt* | ansi) print -Pn "\e]2;$2:q\a"
  7269.             print -Pn "\e]1;$1:q\a" ;;
  7270.         (screen* | tmux*) print -Pn "\ek$1:q\e\\" ;;
  7271.         (*) if [[ "$TERM_PROGRAM" == "iTerm.app" ]]
  7272.             then
  7273.                 print -Pn "\e]2;$2:q\a"
  7274.                 print -Pn "\e]1;$1:q\a"
  7275.             else
  7276.                 if [[ -n "$terminfo[fsl]" ]] && [[ -n "$terminfo[tsl]" ]]
  7277.                 then
  7278.                     echoti tsl
  7279.                     print -Pn "$1"
  7280.                     echoti fsl
  7281.                 fi
  7282.             fi ;;
  7283.     esac
  7284. }
  7285. try_alias_value () {
  7286.     alias_value "$1" || echo "$1"
  7287. }
  7288. uninstall_oh_my_zsh () {
  7289.     env ZSH=$ZSH sh $ZSH/tools/uninstall.sh
  7290. }
  7291. up-line-or-beginning-search () {
  7292.     emulate -L zsh
  7293.     typeset -g __searching __savecursor
  7294.     if [[ $LBUFFER == *$'\n'* ]]
  7295.     then
  7296.         zle .up-line-or-history
  7297.         __searching=''
  7298.     elif [[ -n $PREBUFFER ]] && zstyle -t ':zle:up-line-or-beginning-search' edit-buffer
  7299.     then
  7300.         zle .push-line-or-edit
  7301.     else
  7302.         [[ $LASTWIDGET = $__searching ]] && CURSOR=$__savecursor
  7303.         __savecursor=$CURSOR
  7304.         __searching=$WIDGET
  7305.         zle .history-beginning-search-backward
  7306.         zstyle -T ':zle:up-line-or-beginning-search' leave-cursor && zle .end-of-line
  7307.     fi
  7308. }
  7309. upgrade_oh_my_zsh () {
  7310.     env ZSH=$ZSH sh $ZSH/tools/upgrade.sh
  7311. }
  7312. url-quote-magic () {
  7313.     setopt localoptions noksharrays extendedglob
  7314.     local qkey="${(q)KEYS}"
  7315.     local -a reply match mbegin mend
  7316.     if [[ "$KEYS" != "$qkey" ]]
  7317.     then
  7318.         local lbuf="$LBUFFER$qkey"
  7319.         if [[ "${(Q)LBUFFER}$KEYS" == "${(Q)lbuf}" ]]
  7320.         then
  7321.             local -a words
  7322.             words=("${(@Q)${(z)lbuf}}")
  7323.             local urlseps urlmetas urlglobbers localschema otherschema
  7324.             if [[ "$words[-1]" == (#b)([^:]##):* ]]
  7325.             then
  7326.                 zstyle -s ":url-quote-magic:$match[1]" url-seps urlseps ''
  7327.                 zstyle -s ":url-quote-magic:$match[1]" url-metas urlmetas ''
  7328.             fi
  7329.             zstyle -s :url-quote-magic url-globbers urlglobbers '|'
  7330.             zstyle -s :urlglobber url-other-schema otherschema '|'
  7331.             if [[ "$words[1]" == ${~urlglobbers} ]]
  7332.             then
  7333.                 zstyle -s :urlglobber url-local-schema localschema '|'
  7334.             else
  7335.                 localschema=' '
  7336.             fi
  7337.             case "$words[-1]" in
  7338.                 (*[\'\"]*)  ;;
  7339.                 ((${~localschema}):/(|/localhost)/*) [[ "$urlseps" == *"$KEYS"* ]] && LBUFFER="$LBUFFER\\"  ;;
  7340.                 ((${~otherschema}):*) [[ "$urlseps$urlmetas" == *"$KEYS"* ]] && LBUFFER="$LBUFFER\\"  ;;
  7341.             esac
  7342.         fi
  7343.     fi
  7344.     zle .self-insert
  7345. }
  7346. urlglobber () {
  7347.     local -a args globbed localschema otherschema reply
  7348.     local arg command="$1"
  7349.     shift
  7350.     zstyle -s :urlglobber url-local-schema localschema '|'
  7351.     zstyle -s :urlglobber url-other-schema otherschema '|'
  7352.     for arg
  7353.     do
  7354.         case "${arg}" in
  7355.             ((${~localschema}):/(|/localhost)/*) globbed=(${~${arg##ftp://(localhost|)}})
  7356.                 args[$#args+1]=("${(M)arg##(${~localchema})://(localhost|)}${(@)^globbed}")  ;;
  7357.             ((${~otherschema}):*) args[${#args}+1]="$arg"  ;;
  7358.             (*) args[${#args}+1]=(${~arg})  ;;
  7359.         esac
  7360.     done
  7361.     "$command" "${(@)args}"
  7362. }
  7363. vi_mode_prompt_info () {
  7364.     return 1
  7365. }
  7366. virtualenv_prompt_info () {
  7367.     return 1
  7368. }
  7369. zle-line-finish () {
  7370.     echoti rmkx
  7371. }
  7372. zle-line-init () {
  7373.     echoti smkx
  7374. }
  7375. zsh_stats () {
  7376.     fc -l 1 | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n20
  7377. }
Add Comment
Please, Sign In to add comment