[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[master] 'printf %s\n' is a bad replacement for 'echo'
From: |
Michael Haubenwallner |
Subject: |
[master] 'printf %s\n' is a bad replacement for 'echo' |
Date: |
Mon, 17 Nov 2008 17:36:56 +0100 |
Hi Ralf,
again for '$ECHO' and its definition:
I get an unseparated 'sys_lib_search_path_spec' here on AIX with master,
because $ECHO is 'printf %s\n'. Look at this trace snippet, from
$ CONFIG_SHELL=/bin/bash /bin/bash -x ./configure
+ lt_tmp_lt_search_path_spec='
/usr/local/lib/gcc-lib/powerpc-ibm-aix5.3.0.0/3.3.6//.
/usr/local/lib/gcc-lib/powerpc-ibm-aix5.3.0.0/3.3.6/../../..//. /lib//.
/usr/lib//.'
++ printf '%s\n' /usr/local/lib/gcc-lib/powerpc-ibm-aix5.3.0.0/3.3.6//.
/usr/local/lib/gcc-lib/powerpc-ibm-aix5.3.0.0/3.3.6/../../..//. /lib//.
/usr/lib//.
++ awk '
BEGIN {RS=" "; FS="/|\n";} {
lt_foo="";
lt_count=0;
for (lt_i = NF; lt_i > 0; lt_i--) {
if ($lt_i != "" && $lt_i != ".") {
if ($lt_i == "..") {
lt_count++;
} else {
if (lt_count == 0) {
lt_foo="/" $lt_i lt_foo;
} else {
lt_count--;
}
}
}
}
if (lt_foo != "") { lt_freq[lt_foo]++; }
if (lt_freq[lt_foo] == 1) { print lt_foo; }
}'
+
lt_search_path_spec=/usr/local/lib/gcc-lib/powerpc-ibm-aix5.3.0.0/3.3.6/usr/local/lib/lib/usr/lib
++ printf '%s\n'
/usr/local/lib/gcc-lib/powerpc-ibm-aix5.3.0.0/3.3.6/usr/local/lib/lib/usr/lib
+
sys_lib_search_path_spec=/usr/local/lib/gcc-lib/powerpc-ibm-aix5.3.0.0/3.3.6/usr/local/lib/lib/usr/lib
Problem is that the awk script is designed for blank-separated
path-list, not newline-separated one. Compare:
$ printf '%s\n' a b c
a
b
c
$ printf '%s\n' "a b c"
a b c
$ echo a b c
a b c
Thanks!
/haubi/
- [master] 'printf %s\n' is a bad replacement for 'echo',
Michael Haubenwallner <=