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