zsh-workers
 help / color / mirror / code / Atom feed
4a917903c8863f654cb6180af896317906595b0f blob 6244 bytes (raw)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
 
#compdef perl

typeset -A opt_args

_perl () {
  _arguments -s \
    '-0-[input record separator ($/)]:: :_perl_input_seps' \
    '-a[autosplit mode with -n or -p (splits $_ into @F)]' \
    '-C-[control some unicode features]: :_perl_unicode_flags' \
    "-c[check syntax only (runs BEGIN and END blocks)]" \
    '(   -dt -d: -dt:)-d[run scripts under debugger]' \
    '(-d     -d: -dt:)-dt[run scripts under debugger (debugged code uses threads)]' \
    '(-d -dt     -dt:)-d\:-[run under control of a debugging/tracing module]:debugging/tracing module:_perl_modules --strip-prefix --perl-hierarchy=Devel' \
    '(-d -dt -d:     )-dt\:-[run under control of a debugging/tracing module (debugged coded uses threads)]:debugging/tracing module:_perl_modules --strip-prefix --perl-hierarchy=Devel' \
    '-D-[set debugging flags]: :_perl_debugging_flags' \
    '(1 -E)*-e+[run one line of program]:one line of program' \
    '(1 -e)*-E+[like -e but enable all optional features]:one line of program' \
    '-f[disable executing $Config{sitelib}/sitecustomize.pl at startup]' \
    '-F-[split() pattern for autosplit (-a)]:split() pattern, // is optional' \
    '-h[list help summary]' \
    '-i-[edit <> files in place (make backup if extension supplied)]:backup file extension: ' \
    '*-I-[specify @INC/#include directory (may be used more than once)]:include path:_files -/' \
    '-l-[enable line ending processing, specifies line terminator]:: :_perl_output_seps' \
    \*{-m,-M}"-[module.. executes \`use/no module...' before executing your script]:module:_perl_m_opt" \
    "-n[assume 'while (<>) { ... }' loop around your script]" \
    "-p[assume loop like -n but print line also like sed]" \
    "-s[enable some switch parsing for switches after script name]" \
    "-S[look for the script using PATH environment variable]" \
    '(   -T)-t[turn on taint checks but only issue warnings]' \
    '(-t   )-T[turn on taint checks]' \
    "-u[dump core after parsing script]" \
    "-U[allow unsafe operations]" \
    "-v[print version, patchlevel and license]" \
    "-V-[print perl configuration information]:configuration keys:_perl_config_vars" \
    '(   -W -X)-w[turn warnings on for compilation of your script (recommended)]' \
    "(-w    -X)-W[enable all warnings (ignores 'no warnings')]" \
    "(-w -W   )-X[disable all warnings (ignores 'use warnings')]" \
    '-x-[ignore text before #!perl line and optionally cd to directory]:directory to cd to:_files -/' \
    '1:Perl script:_files -g "*.(p[ml]|PL|t)(-.)"' \
    '*::args:= _perl_normal'
}

_perl_normal() {
  local expl
  if [[ -z "$opt_args[(I)-(e|E)]" ]]; then
    shift words
    (( CURRENT-- ))
  fi
  _normal && ret=0
}

_perl_m_opt () {
  compset -P '-'

  if compset -P 1 '*='; then
    _message -e module-arguments 'module arguments, comma separated'
  else
    _perl_modules -S= -q
  fi
}

_perl_input_seps() {
  if [[ $#PREFIX -eq 1 && $PREFIX != [0-9a-zA-Z] ]]; then
    # convert a non-octal or potential option character into octal representation
    compadd -i "$IPREFIX" -U $(( [##8] ##$PREFIX ))
  else
    _describe -x -t separators "input record separator, $/ in octal or hex (\0, if no argument) [\n]" '(
      0:paragraph\ mode
      777:slurp\ whole\ input\ files
    )' || _comp_mesg=yes
  fi
}

_perl_output_seps() {
  if [[ $#PREFIX -eq 1 && $PREFIX != [0-9a-zA-Z] ]]; then
    # convert a non-octal or potential option character into octal representation
    compadd -i "$IPREFIX" -U $(( [##8] ##$PREFIX ))
  else
    _message -e separators "output record separator, $\\ in octal or hex [$/]"
  fi
}

_perl_config_vars () {
  if (( ! $+_perl_config_vars )); then
    _perl_config_vars=( $(perl -MConfig -e 'print join("\n", keys %Config);') )
  fi

  local add_colon='-P:'
  compset -P '*:' && add_colon=''

  local delimiter='\ '
  (( compstate[quoting] )) && delimiter=' '

  compset -P '* ' && compset -q
  compadd "$expl[@]" $add_colon -S$delimiter -q -a _perl_config_vars
}

_perl_unicode_flags () {
  _values -s '' 'unicode bitmask or flags' \
    '(S)I[  1 STDIN is assumed to be in UTF-8]' \
    '(S)O[  2 STDOUT will be in UTF-8]' \
    '(S)E[  4 STDERR will be in UTF-8]' \
    '(I O E)S[  7 I + O + E]' \
    '(D)i[  8 UTF-8 is the default PerlIO layer for input streams]' \
    '(D)o[ 16 UTF-8 is the default PerlIO layer for output streams]' \
    '(i o)D[ 24 i + o]' \
    'A[ 32 the @ARGV elements are expected to be strings encoded in UTF-8]' \
    'L[ 64 make "IOEioA" conditional on the locale environment variables]' \
    'a[256 set ${^UTF8CACHE} to -1, used for debugging]' \
}

_perl_debugging_flags () {
  _values -s '' 'debug flag or bitmask' \
    'p[        1 tokenizing and parsing (with v, display parse stack)]' \
    's[        2 stack snapshots (with v, display all stacks)]' \
    'l[        4 context (loop) stack processing]' \
    't[        8 trace execution]' \
    'o[       16 method and overload resolution]' \
    'c[       32 string/numeric conversions]' \
    'P[       64 print profiling info, source file input state]' \
    'm[      128 memory and SV allocation]' \
    'f[      256 format processing]' \
    'r[      512 regular expression parsing and execution]' \
    'x[     1024 syntax tree dump]' \
    'u[     2048 tainting checks]' \
    'U[     4096 unofficial, user hacking (reserved for private, unreleased use)]' \
    'X[    16384 scratchpad allocation]' \
    'D[    32768 cleaning up]' \
    'S[    66536 Op slab allocation]' \
    'T[   131072 tokenising]' \
    'R[   262144 include reference counts of dumped variables (e.g. when using -Ds)]' \
    "J[   524288 show s,t,P-debug (don't jump over) on opcodes within package DB]" \
    'v[  1048576 verbose: use in conjunction with other flags]' \
    'C[  2097152 copy-on-write]' \
    'A[  4194304 consistency checks on internal structures]' \
    'q[  8388608 quiet - currently only suppresses the "EXECUTING" message]' \
    'M[ 16777216 trace smart match resolution]' \
    'B[ 33554432 dump subroutine definitions, including special blocks like BEGIN]' \
    'L[ 67108864 trace locale-related info]' \
    'i[134217728 trace PerlIO layer processing]' \
    'y[268435456 trace y///, tr/// compilation and execution]'
}

_perl "$@"
debug log:

solving 4a917903c ...
found 4a917903c in https://git.vuxu.org/mirror/zsh/

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).