Commit 6fb546ca authored by Thierry Bultel's avatar Thierry Bultel Committed by Peter Korsgaard
Browse files

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: default avatarThierry Bultel <thierry.bultel@wanadoo.fr>
Reviewed-by: default avatarThomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: default avatarPeter Korsgaard <peter@korsgaard.com>
parent fa510dee
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -548,7 +548,7 @@ target-generatelocales: host-localedef
		I18NPATH=$(STAGING_DIR)/usr/share/i18n:/usr/share/i18n \
		$(HOST_DIR)/usr/bin/localedef \
			--prefix=$(TARGET_DIR) \
			--`echo $(BR2_ENDIAN) | tr [A-Z] [a-z]`-endian \
			--$(call LOWERCASE,$(BR2_ENDIAN))-endian \
			-i $${inputfile} -f $${charmap} \
			$${locale} ; \
	done
+8 −0
Original line number Diff line number Diff line
@@ -23,6 +23,14 @@ UPPERCASE = $(strip $(eval __tmp := $1) \
	$(__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
# infrastructure. Used by the Busybox package, the Linux kernel