| Server IP : 199.250.200.62 / Your IP : 216.73.217.89 Web Server : Apache System : Linux vps37394.inmotionhosting.com 3.10.0-1160.119.1.vz7.224.4 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64 User : jasonp18 ( 1000) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /usr/share/zsh/5.0.2/functions/ |
Upload File : |
#autoload
_mac_rsrc_check() {
[[ ! -s "$REPLY/..namedfork/rsrc" ]] && return 1
if [[ -x /Developer/Tools/GetFileInfo ]]; then
local ftype="$(command /Developer/Tools/GetFileInfo -t $REPLY)"
ftype="${ftype//\"/}"
[[ -n "$types[(r)$ftype]" ]]
else
grep --quiet "\(${(j/\|/)types}\)" "$REPLY/..namedfork/rsrc"
fi
}
_mac_parse_info_plist() {
# For now, awk is used because builtin function "read" was too slow.
# '<' is used for the delimiter because some Info.plist files use CR as
# newline but read doesn't treat them as so
local s='
BEGIN { RS="<" }
/^key>/ { sub(/key>/, ""); reading_key=$0 }
/^string>/ {
sub(/string>/, "")
if (reading_key == "CFBundleTypeExtensions") exts=exts " \"" $0 "\""
if (reading_key == "CFBundleTypeOSTypes") types=types " \"" $0 "\""
}
END {
print "exts=(" exts ")\ntypes=(" types ")"
}
'
command awk $s "$app_path/Contents/Info.plist" | while read; do
eval "$REPLY"
done
}
# Try to complete files for the specified application.
_mac_files_for_application() {
local -a opts
zparseopts -D -a opts q n 1 2 P: S: r: R: W: X+: M+: F: J+: V+:
local app_path
_retrieve_mac_apps
app_path="${_mac_apps[(r)*/$1(|.app)]:-$1}"
local -a glob_patterns
glob_patterns=()
# Try to get extentions from "Info.plist" XML file.
if [[ -f "$app_path/Contents/Info.plist" ]]; then
local -a exts types
_mac_parse_info_plist
if [[ -n "$exts[(r)\*]" ]]; then
glob_patterns=( "*" )
else
if (( #exts != 0 )); then
glob_patterns+=( "*.(${(j/|/)exts})(N)" )
fi
if (( #types != 0 )); then
glob_patterns+=( "^*.[[:alnum:]]##(.Ne:_mac_rsrc_check:)" )
fi
fi
else
glob_patterns=( "*" )
fi
case ${#glob_patterns} in
0) return 1 ;;
1) _files "$opts[@]" -g "$glob_patterns[1]" ;;
*) _files "$opts[@]" -g "{${(j/,/)glob_patterns}}" ;;
esac
}
_mac_files_for_application "$@"