Server IP : 103.119.228.120 / Your IP : 3.141.12.30 Web Server : Apache System : Linux v8.techscape8.com 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64 User : nobody ( 99) PHP Version : 5.6.40 Disable Function : shell_exec,symlink,system,exec,proc_get_status,proc_nice,proc_terminate,define_syslog_variables,syslog,openlog,closelog,escapeshellcmd,passthru,ocinum cols,ini_alter,leak,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dl,dll,myshellexec,proc_open,socket_bind,proc_close,escapeshellarg,parse_ini_filepopen,fpassthru,exec,passthru,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,popen,show_source,proc_nice,proc_terminate,proc_get_status,proc_close,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,dl,symlink,shell_exec,system,dl,passthru,escapeshellarg,escapeshellcmd,myshellexec,c99_buff_prepare,c99_sess_put,fpassthru,getdisfunc,fx29exec,fx29exec2,is_windows,disp_freespace,fx29sh_getupdate,fx29_buff_prepare,fx29_sess_put,fx29shexit,fx29fsearch,fx29ftpbrutecheck,fx29sh_tools,fx29sh_about,milw0rm,imagez,sh_name,myshellexec,checkproxyhost,dosyayicek,c99_buff_prepare,c99_sess_put,c99getsource,c99sh_getupdate,c99fsearch,c99shexit,view_perms,posix_getpwuid,posix_getgrgid,posix_kill,parse_perms,parsesort,view_perms_color,set_encoder_input,ls_setcheckboxall,ls_reverse_all,rsg_read,rsg_glob,selfURL,dispsecinfo,unix2DosTime,addFile,system,get_users,view_size,DirFiles,DirFilesWide,DirPrintHTMLHeaders,GetFilesTotal,GetTitles,GetTimeTotal,GetMatchesCount,GetFileMatchesCount,GetResultFiles,fs_copy_dir,fs_copy_obj,fs_move_dir,fs_move_obj,fs_rmdir,SearchText,getmicrotime MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/zsh/5.0.2/functions/ |
Upload File : |
#compdef pmpath pmvers pmdesc pmload pmexp pmeth pmls pmcat pman pmfunc podgrep podtoc podpath # # _perl_modules - zsh completion function # # Adam Spiers <adam@spiers.net> # # Calculate all installed Perl modules. The result is cached # for future use. # # Options: # # -t[types]: indicate file types; currently the only one is -tP, # to include .pod files as well as modules. # # --perl-hierarchy=...: restrict results to modules under this hierarchy. # Note that this does not affect the filesystem searching or caching, # which always collect all results on the premise that anyone using # completion of Perl modules will use the results in various contexts, # so this only affects the results compadd'd. # # --strip-prefix: when using --perl-hierarchy, strip off that prefix when # passing to compadd. # # All other options passed onto compadd. # # Available styles: # # * try-to-use-pminst # # Set this if you have pminst and want to use it. The zsh code # actually produces better results because pminst misses modules of # the form Foo/bar/Baz.pm through its clumsy -d && /^[A-Z]/ && prune # algorithm (the zsh code does almost the same, but only misses # modules which don't begin with an uppercase letter). _perl_modules () { # Set a sensible default caching policy. This has to be done inside # this function otherwise we wouldn't know the context for the style. local update_policy sufpat=".pm" with_pod local restrict_hierarchy='' local -i strip_perl_prefix zstyle -s ":completion:${curcontext}:" cache-policy update_policy if [[ -z "$update_policy" ]]; then zstyle ":completion:${curcontext}:" cache-policy \ _perl_modules_caching_policy fi if [[ -n $argv[(r)--perl-hierarchy=*] ]]; then restrict_hierarchy="${argv[(r)--perl-hierarchy=*]#--perl-hierarchy=}" restrict_hierarchy="${restrict_hierarchy%::}::" argv[(r)--perl-hierarchy=*]=() fi if [[ -n $argv[(r)--strip-prefix] ]]; then strip_perl_prefix=1 argv[(r)--strip-prefix]=() fi if [[ -n $argv[(r)-tP] ]]; then argv[(r)-tP]=() sufpat="(.pm|.pod)" with_pod=_with_pod fi local perl=${words[1]%doc} perl_modules if whence $perl >/dev/null; then perl_modules=_${${perl//[^[:alnum:]]/_}#_}_modules$with_pod elif (( ${+commands[perl]} )); then perl=perl perl_modules=_perl_modules$with_pod else perl= perl_modules=_unknown_perl_modules$with_pod fi if ( [[ ${(P)+perl_modules} -eq 0 ]] || _cache_invalid $perl_modules ) && ! _retrieve_cache ${perl_modules#_}; then if zstyle -t ":completion:${curcontext}:modules" try-to-use-pminst && (( ${+commands[pminst]} )); then set -A $perl_modules $(pminst) else local inc libdir new_pms if [[ ${+perl} -eq 1 ]]; then inc=( $( $perl -e 'print "@INC"' ) ) else # If perl isn't there, one wonders why the user's trying to # complete Perl modules. Maybe her $path is wrong? _message "didn't find perl on \$PATH; guessing @INC ..." inc=( /usr/lib/perl5{,/{site_perl/,}<5->.([0-9]##)}(N) ${(s.:.)PERL5LIB} ) fi typeset -agU $perl_modules # $perl_modules is global, no duplicates set -A $perl_modules for libdir in $inc; do # Ignore cwd - could be too expensive e.g. if we're near / if [[ $libdir == '.' ]]; then continue; fi # Find all modules if [[ -d $libdir && -x $libdir ]]; then new_pms=( $libdir/{[A-Za-z]*/***/,}*${~sufpat}~*blib* ) new_pms=( "${(@)new_pms##$libdir/##}" ) fi # Convert to Perl nomenclature new_pms=( ${new_pms:r:fs#/#::#} ) set -A $perl_modules $new_pms ${(P)perl_modules} done fi _store_cache ${perl_modules#_} $perl_modules fi # Nothing above here should have filtered the results per-caller, so that # the cache is always complete. From here on, it's safe to filter. local -a perl_subset if [[ -n $restrict_hierarchy ]]; then perl_subset=( ${(PM)perl_modules:#${restrict_hierarchy}*} ) if (( strip_perl_prefix )); then perl_subset=( ${perl_subset#$restrict_hierarchy} ) fi perl_modules=perl_subset fi local expl _wanted modules expl 'Perl module' compadd "$@" -a - $perl_modules } _perl_modules_caching_policy () { local _perllocals local -a oldp # rebuild if cache is more than a week old oldp=( "$1"(mw+1) ) (( $#oldp )) && return 0 _perllocals=( /usr/lib/perl5/**/perllocal.pod ) if (( $#_perllocals )); then for pod in $_perllocals; do [[ "$pod" -nt "$1" ]] && return 0 done fi return 1 } _perl_modules "$@"