comparison Makefile @ 32135:501d48bda912 stable

zsh_completion: install as _hg not hg The contrib/zsh_completion file itself says to name it _hg. With a name like `hg`, if the user has a line like `autoload ${^fpath}/*(N-.:t)` in their zshrc, it will create a shell function named `hg` that will hide the actual hg command and make hg unusable. Separately from that though, the underscore prefix makes it actually work. The zsh man page states: The convention for autoloaded functions used in completion is that they start with an underscore This does not seem to just be a "convention", though. With the ill-advised line removed from my zshrc and the file named `/usr/local/share/zsh/site-functions/hg` (without the underscore), these completions did not seem to get loaded and the ones from the zsh installation were loaded instead. If I renamed them to be `/usr/local/share/zsh/site-functions/_hg`, however, they were loaded. I manually tested the above statement by starting a new zsh instance with the file in `/usr/local/share/zsh/site-functions` with the following names: - As `hg`, `which _hg_labels` did not show anything - As `_hg`, `which _hg_labels` showed the expected function.
author Kyle Lippincott <spectral@google.com>
date Fri, 26 May 2017 13:24:07 -0700
parents 197eb93560b3
children 9b690032fe07 9929af2b09b4
comparison
equal deleted inserted replaced
32134:197eb93560b3 32135:501d48bda912
168 # sure it doesn't get included in the final package. 168 # sure it doesn't get included in the final package.
169 touch build/mercurial/.DS_Store 169 touch build/mercurial/.DS_Store
170 # install zsh completions - this location appears to be 170 # install zsh completions - this location appears to be
171 # searched by default as of macOS Sierra. 171 # searched by default as of macOS Sierra.
172 install -d build/mercurial/usr/local/share/zsh/site-functions/ 172 install -d build/mercurial/usr/local/share/zsh/site-functions/
173 install -m 0644 contrib/zsh_completion build/mercurial/usr/local/share/zsh/site-functions/hg 173 install -m 0644 contrib/zsh_completion build/mercurial/usr/local/share/zsh/site-functions/_hg
174 # install bash completions - there doesn't appear to be a 174 # install bash completions - there doesn't appear to be a
175 # place that's searched by default for bash, so we'll follow 175 # place that's searched by default for bash, so we'll follow
176 # the lead of Apple's git install and just put it in a 176 # the lead of Apple's git install and just put it in a
177 # location of our own. 177 # location of our own.
178 install -d build/mercurial/usr/local/hg/contrib/ 178 install -d build/mercurial/usr/local/hg/contrib/