From df5dbacb323af293d23425dfaa489d04cb66680a Mon Sep 17 00:00:00 2001 From: Adrian Ho Date: Fri, 5 Jul 2024 10:59:36 +0800 Subject: [PATCH] shellenv: prepend colon to MANPATH if set The current appended colon means system man pages always shadow Homebrew's. There's also no point adding Homebrew's man dir, nor filling out an empty MANPATH, since `man` and friends will add the necessary dirs according to PATH. Closes https://github.com/Homebrew/homebrew-core/issues/176037. Also fixed a syntax error in the `*csh` INFOPATH setting. --- Library/Homebrew/cmd/shellenv.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Library/Homebrew/cmd/shellenv.sh b/Library/Homebrew/cmd/shellenv.sh index 6e600df09d3acd..5a74521a702669 100644 --- a/Library/Homebrew/cmd/shellenv.sh +++ b/Library/Homebrew/cmd/shellenv.sh @@ -11,7 +11,7 @@ # HOMEBREW_CELLAR and HOMEBREW_PREFIX are set by extend/ENV/super.rb # HOMEBREW_REPOSITORY is set by bin/brew -# Trailing colon in MANPATH adds default man dirs to search path in Linux, does no harm in macOS. +# Leading colon in MANPATH prepends default man dirs to search path in Linux and macOS. # Please do not submit PRs to remove it! # shellcheck disable=SC2154 homebrew-shellenv() { @@ -41,8 +41,8 @@ homebrew-shellenv() { echo "setenv HOMEBREW_CELLAR ${HOMEBREW_CELLAR};" echo "setenv HOMEBREW_REPOSITORY ${HOMEBREW_REPOSITORY};" echo "setenv PATH ${HOMEBREW_PREFIX}/bin:${HOMEBREW_PREFIX}/sbin:\$PATH;" - echo "setenv MANPATH ${HOMEBREW_PREFIX}/share/man\`[ \${?MANPATH} == 1 ] && echo \":\${MANPATH}\"\`:;" - echo "setenv INFOPATH ${HOMEBREW_PREFIX}/share/info\`[ \${?INFOPATH} == 1 ] && echo \":\${INFOPATH}\"\`;" + echo "if ( \${?MANPATH} == 1 ) setenv MANPATH :\${MANPATH};" + echo "setenv INFOPATH ${HOMEBREW_PREFIX}/share/info\`if ( \${?INFOPATH} == 1 ) echo \":\${INFOPATH}\"\`;" ;; pwsh | -pwsh | pwsh-preview | -pwsh-preview) echo "[System.Environment]::SetEnvironmentVariable('HOMEBREW_PREFIX','${HOMEBREW_PREFIX}',[System.EnvironmentVariableTarget]::Process)" @@ -57,7 +57,7 @@ homebrew-shellenv() { echo "export HOMEBREW_CELLAR=\"${HOMEBREW_CELLAR}\";" echo "export HOMEBREW_REPOSITORY=\"${HOMEBREW_REPOSITORY}\";" echo "export PATH=\"${HOMEBREW_PREFIX}/bin:${HOMEBREW_PREFIX}/sbin\${PATH+:\$PATH}\";" - echo "export MANPATH=\"${HOMEBREW_PREFIX}/share/man\${MANPATH+:\$MANPATH}:\";" + echo "[ -z \"\${MANPATH}\" ] || export MANPATH=\":\${MANPATH#:}\";" echo "export INFOPATH=\"${HOMEBREW_PREFIX}/share/info:\${INFOPATH:-}\";" ;; esac