Skip to content

Fix shellenv INFOPATH missing the default in fish#23059

Open
jdelStrother wants to merge 1 commit into
Homebrew:mainfrom
jdelStrother:fish-infopath
Open

Fix shellenv INFOPATH missing the default in fish#23059
jdelStrother wants to merge 1 commit into
Homebrew:mainfrom
jdelStrother:fish-infopath

Conversation

@jdelStrother

Copy link
Copy Markdown

Previously, brew shellenv in fish would generate a single-element array ('/opt/homebrew/share/info'), meaning that emacs and co wouldn't look up their own built-in info dirs. INFOPATH ought to include a trailing colon to allow this, so we now generate a two-element array in fish ('/opt/homebrew/share/info','')


  • Have you followed our Contributing guidelines?
  • Have you checked for other open Pull Requests for the same change?
  • Have you explained what your changes do? Performance claims (e.g. "this is faster") must include Hyperfine benchmarks.
  • Have you explained why you'd like these changes included, not just what they do?
  • For bug fixes, have you given step-by-step brew commands to reproduce the bug?
  • Have you written new tests (excluding integration tests)? Here's an example.
  • Have you successfully run brew lgtm (style, typechecking and tests) locally?

  • AI was used to generate or assist with generating this PR.

Claude fable helped me narrow down why emacs was behaving weird. The code change is me.


Previously, this would generate a single-element array ('/opt/homebrew/share/info'), meaning that emacs and co wouldn't look up their own built-in info dirs.
INFOPATH ought to include a trailing colon to allow this, so we now generate a two-element array in fish ('/opt/homebrew/share/info','')
Copilot AI review requested due to automatic review settings July 11, 2026 08:08

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates brew shellenv’s fish-shell output to ensure INFOPATH preserves the default Info search directories (by ensuring a trailing : semantics via an empty list element), addressing cases where tools like Emacs won’t search their built-in Info dirs.

Changes:

  • Document the intended INFOPATH trailing-colon behavior.
  • Update fish shellenv output to initialize INFOPATH so an empty element can be preserved when prepending Homebrew’s Info dir.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

echo "fish_add_path --global --move --path \"${HOMEBREW_PREFIX}/bin\" \"${HOMEBREW_PREFIX}/sbin\";"
echo "if test -n \"\$MANPATH[1]\"; set --global --export MANPATH '' \$MANPATH; end;"
echo "if not contains \"${HOMEBREW_PREFIX}/share/info\" \$INFOPATH; set --global --export INFOPATH \"${HOMEBREW_PREFIX}/share/info\" \$INFOPATH; end;"
echo "if not set --query INFOPATH; set INFOPATH ''; end; if not contains \"${HOMEBREW_PREFIX}/share/info\" \$INFOPATH; set --global --export INFOPATH \"${HOMEBREW_PREFIX}/share/info\" \$INFOPATH; end;"
echo "fish_add_path --global --move --path \"${HOMEBREW_PREFIX}/bin\" \"${HOMEBREW_PREFIX}/sbin\";"
echo "if test -n \"\$MANPATH[1]\"; set --global --export MANPATH '' \$MANPATH; end;"
echo "if not contains \"${HOMEBREW_PREFIX}/share/info\" \$INFOPATH; set --global --export INFOPATH \"${HOMEBREW_PREFIX}/share/info\" \$INFOPATH; end;"
echo "if not set --query INFOPATH; set INFOPATH ''; end; if not contains \"${HOMEBREW_PREFIX}/share/info\" \$INFOPATH; set --global --export INFOPATH \"${HOMEBREW_PREFIX}/share/info\" \$INFOPATH; end;"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants