From 8d3f33de905f5cecf9cac77447e7492e59734c5b Mon Sep 17 00:00:00 2001 From: Martin Afanasjew Date: Tue, 22 Dec 2015 01:42:33 +0100 Subject: [PATCH] bin/brew: enforce UTF-8 locale Everyone should be using a UTF-8 locale nowadays. Not using one causes issues like `brew doctor` failing while checking symbolic links that point at file names with non-ASCII characters, since OS X always uses Unicode for the file system. Rely on `locale charmap` to detect the currently selected encoding and if that's not UTF-8, override the user's choice (if any) by setting `LC_ALL` to `en_US.UTF-8`, the assumption being that every system has a usable `en_US.UTF-8` locale installed. Fixes Homebrew/homebrew#44744. Closes Homebrew/homebrew#47247. Signed-off-by: Martin Afanasjew --- bin/brew | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/bin/brew b/bin/brew index 9cdeb1a109..0503abc090 100755 --- a/bin/brew +++ b/bin/brew @@ -1,8 +1,15 @@ #!/bin/sh + chdir() { cd "$@" >/dev/null } +# Force UTF-8 to avoid encoding issues for users with broken locale settings. +if [ "$(locale charmap 2> /dev/null)" != "UTF-8" ] +then + export LC_ALL="en_US.UTF-8" +fi + BREW_FILE_DIRECTORY="$(chdir "${0%/*}" && pwd -P)" HOMEBREW_BREW_FILE="$BREW_FILE_DIRECTORY/${0##*/}"