diff options
| author | dana <dana@dana.is> | 2026-07-09 01:25:47 -0500 |
|---|---|---|
| committer | dana <dana@dana.is> | 2026-07-09 01:31:52 -0500 |
| commit | 13068d24b38b669d3796fdea8440d44f45a29a6e (patch) | |
| tree | 44a1121912a5e99fb831d25d7d4a22bf93316742 | |
| parent | unposted: runtests: colourise signal fail message (diff) | |
| download | zsh-13068d24b38b669d3796fdea8440d44f45a29a6e.tar zsh-13068d24b38b669d3796fdea8440d44f45a29a6e.tar.gz zsh-13068d24b38b669d3796fdea8440d44f45a29a6e.tar.bz2 zsh-13068d24b38b669d3796fdea8440d44f45a29a6e.tar.lz zsh-13068d24b38b669d3796fdea8440d44f45a29a6e.tar.xz zsh-13068d24b38b669d3796fdea8440d44f45a29a6e.tar.zst zsh-13068d24b38b669d3796fdea8440d44f45a29a6e.zip | |
unposted: completion: remove _mac_files_for_application
as mentioned in 54915:
_mac_files_for_application was previously used by _open to complete only
file types appropriate for an application. this ended up being annoying
in practice, especially with text editors, because they don't (can't)
actually enumerate all of the file types they support. so in w/43061 i
made _open stop using it
since then, there has been no need for this function, and atm i don't
foresee one in the future
therefore we can remove it
| -rw-r--r-- | ChangeLog | 6 | ||||
| -rw-r--r-- | Completion/Darwin/Type/_mac_files_for_application | 74 |
2 files changed, 6 insertions, 74 deletions
@@ -1,3 +1,9 @@ +2026-07-09 dana <dana@dana.is> + + * unposted (see 54915): + Completion/Darwin/Type/_mac_files_for_application: remove + _mac_files_for_application + 2026-07-08 dana <dana@dana.is> * unposted: Test/runtests.zsh: runtests: colourise signal fail diff --git a/Completion/Darwin/Type/_mac_files_for_application b/Completion/Darwin/Type/_mac_files_for_application deleted file mode 100644 index 885b064fe..000000000 --- a/Completion/Darwin/Type/_mac_files_for_application +++ /dev/null @@ -1,74 +0,0 @@ -#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 o+: P: S: r: R: W: x+: 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 extensions 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 "$@" |
