Generation of locales: made call to tr more robust and added LOWERCASE macro
When calling 'tr' without quoting braces, bash can make really weird things if there are existing 'single-letter-named' directories eg: thierry@thierry-desktop:~$ echo AAA | tr [A-Z] [a-z] aaa thierry@thierry-desktop:~$ mkdir m thierry@thierry-desktop:~$ echo AAA | tr [A-Z] [a-z] AAA The (quick) analysis is that the callee (tr) argvs then contain 'm' thus the translation does not work Using quotes works around it: thierry@thierry-desktop:~$ echo AAA | tr '[A-Z]' '[a-z]' aaa Signed-off-by: Thierry Bultel <thierry.bultel@wanadoo.fr> Reviewed-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>2015.08.x
parent
fa510dee28
commit
6fb546ca41
2
Makefile
2
Makefile
|
@ -548,7 +548,7 @@ target-generatelocales: host-localedef
|
||||||
I18NPATH=$(STAGING_DIR)/usr/share/i18n:/usr/share/i18n \
|
I18NPATH=$(STAGING_DIR)/usr/share/i18n:/usr/share/i18n \
|
||||||
$(HOST_DIR)/usr/bin/localedef \
|
$(HOST_DIR)/usr/bin/localedef \
|
||||||
--prefix=$(TARGET_DIR) \
|
--prefix=$(TARGET_DIR) \
|
||||||
--`echo $(BR2_ENDIAN) | tr [A-Z] [a-z]`-endian \
|
--$(call LOWERCASE,$(BR2_ENDIAN))-endian \
|
||||||
-i $${inputfile} -f $${charmap} \
|
-i $${inputfile} -f $${charmap} \
|
||||||
$${locale} ; \
|
$${locale} ; \
|
||||||
done
|
done
|
||||||
|
|
|
@ -23,6 +23,14 @@ UPPERCASE = $(strip $(eval __tmp := $1) \
|
||||||
$(__tmp)))) \
|
$(__tmp)))) \
|
||||||
$(__tmp))
|
$(__tmp))
|
||||||
|
|
||||||
|
# LOWERCASE macro -- transforms its arguments to lowercase
|
||||||
|
# The above non-tr implementation is not needed, because LOWERCASE is not
|
||||||
|
# called very often
|
||||||
|
|
||||||
|
define LOWERCASE
|
||||||
|
$(shell echo $1 | tr '[:upper:]' '[:lower:]')
|
||||||
|
endef
|
||||||
|
|
||||||
#
|
#
|
||||||
# Manipulation of .config files based on the Kconfig
|
# Manipulation of .config files based on the Kconfig
|
||||||
# infrastructure. Used by the Busybox package, the Linux kernel
|
# infrastructure. Used by the Busybox package, the Linux kernel
|
||||||
|
|
Loading…
Reference in New Issue