[Buildroot] [PATCH 1/1] Generation of locales: made call to tr more robust

Thierry Bultel thierry.bultel at wanadoo.fr
Sun Nov 10 17:03:05 UTC 2013

When calling 'tr' without quoting braces, bash can make really weird things
if there are existing 'single-letter-named' directories
thierry at thierry-desktop:~$ echo AAA | tr [A-Z] [a-z] 
thierry at thierry-desktop:~$ mkdir m
thierry at thierry-desktop:~$ echo AAA | tr [A-Z] [a-z] 

The (quick) analysis is that the callee (tr) argvs then
contain 'm' thus the translation does not work

Using quotes works around it
tbultel at laois:~/test$ echo AAA | tr '[A-Z]' '[a-z]'

Signed-off-by: Thierry Bultel <thierry.bultel at wanadoo.fr>
 Makefile |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/Makefile b/Makefile
index 1496bd7..7f835c0 100644
--- a/Makefile
+++ b/Makefile
@@ -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 \
+			--`echo $(BR2_ENDIAN) | tr '[A-Z]' '[a-z]'`-endian \
 			-i $${inputfile} -f $${charmap} \
 			$${locale} ; \

More information about the buildroot mailing list