From 13068d24b38b669d3796fdea8440d44f45a29a6e Mon Sep 17 00:00:00 2001 From: dana Date: Thu, 9 Jul 2026 01:25:47 -0500 Subject: 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 --- ChangeLog | 6 ++ Completion/Darwin/Type/_mac_files_for_application | 74 ----------------------- 2 files changed, 6 insertions(+), 74 deletions(-) delete mode 100644 Completion/Darwin/Type/_mac_files_for_application diff --git a/ChangeLog b/ChangeLog index da5084b9e..dd9d712da 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2026-07-09 dana + + * unposted (see 54915): + Completion/Darwin/Type/_mac_files_for_application: remove + _mac_files_for_application + 2026-07-08 dana * 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 "$@" -- cgit v1.3.1