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
|
#!/bin/sh
|
||||||
|
|
||||||
chdir() {
|
chdir() {
|
||||||
cd "$@" >/dev/null
|
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)"
|
BREW_FILE_DIRECTORY="$(chdir "${0%/*}" && pwd -P)"
|
||||||
HOMEBREW_BREW_FILE="$BREW_FILE_DIRECTORY/${0##*/}"
|
HOMEBREW_BREW_FILE="$BREW_FILE_DIRECTORY/${0##*/}"
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user