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 <martin@afanasjew.de>
This commit is contained in:
parent
8e4fad8969
commit
8d3f33de90
7
bin/brew
7
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##*/}"
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user