summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordana <dana@dana.is>2026-07-09 01:25:47 -0500
committerdana <dana@dana.is>2026-07-09 01:31:52 -0500
commit13068d24b38b669d3796fdea8440d44f45a29a6e (patch)
tree44a1121912a5e99fb831d25d7d4a22bf93316742
parentunposted: runtests: colourise signal fail message (diff)
downloadzsh-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--ChangeLog6
-rw-r--r--Completion/Darwin/Type/_mac_files_for_application74
2 files changed, 6 insertions, 74 deletions
diff --git a/ChangeLog b/ChangeLog
index da5084b9e..dd9d712da 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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 "$@"