From 09c04aa7155ee567f58e2b2285868bb81ce973c9 Mon Sep 17 00:00:00 2001 From: Eli Young <elyscape@gmail.com> Date: Fri, 9 Sep 2016 14:15:07 -0700 Subject: [PATCH] completion: Avoid aliases with `command ls` If the user has an alias overriding the `ls` command that modifies the output (e.g. `alias ls='ls -F'`), it will cause unexpected characters to appear in completions. Using `command ls` forces the shell to use the command directly, without alias expansion. This also blackholes the stderr of `ls` when used to avoid printing errors during completion if the requisite directory does not exist. --- completions/bash/brew | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/completions/bash/brew b/completions/bash/brew index 67c4c6a3d4..b1abe3855a 100644 --- a/completions/bash/brew +++ b/completions/bash/brew @@ -52,7 +52,7 @@ __brew_complete_formulae() { __brew_complete_installed() { local cur="${COMP_WORDS[COMP_CWORD]}" - local inst="$(ls "$(brew --cellar)")" + local inst="$(command ls "$(brew --cellar)" 2>/dev/null)" COMPREPLY=($(compgen -W "$inst" -- "$cur")) } @@ -71,7 +71,7 @@ __brew_complete_versions() { __brew_complete_logs() { local cur="${COMP_WORDS[COMP_CWORD]}" - local logs="$(ls "${HOMEBREW_LOGS:-~/Library/Logs/Homebrew/}")" + local logs="$(command ls "${HOMEBREW_LOGS:-${HOME}/Library/Logs/Homebrew/}" 2>/dev/null)" COMPREPLY=($(compgen -W "$logs" -- "$cur")) } -- GitLab