summaryrefslogtreecommitdiff
path: root/shell/completion.zsh
diff options
context:
space:
mode:
authorKoichi Murase <myoga.murase@gmail.com>2025-06-04 14:07:01 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2025-06-08 00:00:17 +0900
commitc166eaba6d5e74d39a68c45804a01417d707a304 (patch)
tree4451f11a585452093c9c09f15a5cb3408cf86fac /shell/completion.zsh
parent09194c24f275d9387b31e50b38cf7f3a94b1f0fa (diff)
downloadfzf-c166eaba6d5e74d39a68c45804a01417d707a304.tar.gz
[bash,zsh] Work around Solaris awk, which is non-standard
Solaris awk at /usr/bin/awk is meant for backward compatibility with an ancient implementation of 1977 awk in the original UNIX. It lacks many features of POSIX awk. To use a standard-conforming version in Solaris, one needs to explicitly use /usr/xpg4/bin/awk.
Diffstat (limited to 'shell/completion.zsh')
-rw-r--r--shell/completion.zsh20
1 files changed, 14 insertions, 6 deletions
diff --git a/shell/completion.zsh b/shell/completion.zsh
index d59796bc..7f4a8112 100644
--- a/shell/completion.zsh
+++ b/shell/completion.zsh
@@ -115,12 +115,20 @@ __fzf_defaults() {
__fzf_exec_awk() {
if [[ -z ${__fzf_awk-} ]]; then
__fzf_awk=awk
-
- # choose the faster mawk if: it's installed && build date >= 20230322 &&
- # version >= 1.3.4
- local n x y z d
- IFS=' .' read n x y z d <<< $(command mawk -W version 2> /dev/null)
- [[ $n == mawk ]] && (( d >= 20230302 && (x * 1000 + y) * 1000 + z >= 1003004 )) && __fzf_awk=mawk
+ if [[ $OSTYPE == solaris* && -x /usr/xpg4/bin/awk ]]; then
+ # Note: Solaris awk at /usr/bin/awk is meant for backward compatibility
+ # with an ancient implementation of 1977 awk in the original UNIX. It
+ # lacks many features of POSIX awk, so it is essentially useless in the
+ # modern point of view. To use a standard-conforming version in Solaris,
+ # one needs to explicitly use /usr/xpg4/bin/awk.
+ __fzf_awk=/usr/xpg4/bin/awk
+ else
+ # choose the faster mawk if: it's installed && build date >= 20230322 &&
+ # version >= 1.3.4
+ local n x y z d
+ IFS=' .' read n x y z d <<< $(command mawk -W version 2> /dev/null)
+ [[ $n == mawk ]] && (( d >= 20230302 && (x * 1000 + y) * 1000 + z >= 1003004 )) && __fzf_awk=mawk
+ fi
fi
# Note: macOS awk has a quirk that it stops processing at all when it sees