Ralf Wildenhues wrote: > > > > ! LC_ALL=C tr -d '\r' < t-xstrtoimax.tmp > t-xstrtoimax.xo > > > I hear that there really do exist systems in actual use > > > on which tr still does not honor backslash-escapes like \r and \n. > > > > Which platforms, please? (I use the similar idiom in more than 200 files in > > gettext. So I need to know the reasons.) > > Solaris 10 /usr/ucb/tr. Not likely to be early in PATH, but hey, people > do all kinds of weird things to their path. ;-)
You're right. Bad luck. I added a workaround like this: 2008-04-26 Bruno Haible <[EMAIL PROTECTED]> * tests/test-xstrtol.sh: Work around limitation of an old 'tr' program on Solaris. * tests/test-xstrtoimax.sh: Likewise. * tests/test-xstrtoumax.sh: Likewise. Reported by Ralf Wildenhues <[EMAIL PROTECTED]>. *** tests/test-xstrtoimax.sh.orig 2008-04-26 14:13:23.000000000 +0200 --- tests/test-xstrtoimax.sh 2008-04-26 14:12:19.000000000 +0200 *************** *** 19,26 **** ./test-xstrtoimax${EXEEXT} 010 >> t-xstrtoimax.tmp 2>&1 || result=1 ./test-xstrtoimax${EXEEXT} MiB >> t-xstrtoimax.tmp 2>&1 || result=1 # normalize output ! LC_ALL=C tr -d '\r' < t-xstrtoimax.tmp > t-xstrtoimax.xo mv t-xstrtoimax.xo t-xstrtoimax.tmp # compare expected output --- 19,34 ---- ./test-xstrtoimax${EXEEXT} 010 >> t-xstrtoimax.tmp 2>&1 || result=1 ./test-xstrtoimax${EXEEXT} MiB >> t-xstrtoimax.tmp 2>&1 || result=1 + # Find out how to remove carriage returns from output. Solaris /usr/ucb/tr + # does not understand '\r'. + if echo solaris | tr -d '\r' | grep solais > /dev/null; then + cr='\015' + else + cr='\r' + fi + # normalize output ! LC_ALL=C tr -d "$cr" < t-xstrtoimax.tmp > t-xstrtoimax.xo mv t-xstrtoimax.xo t-xstrtoimax.tmp # compare expected output *** tests/test-xstrtol.sh.orig 2008-04-26 14:13:23.000000000 +0200 --- tests/test-xstrtol.sh 2008-04-26 14:12:20.000000000 +0200 *************** *** 31,38 **** ./test-xstrtoul${EXEEXT} 010 >> t-xstrtol.tmp 2>&1 || result=1 ./test-xstrtoul${EXEEXT} MiB >> t-xstrtol.tmp 2>&1 || result=1 # normalize output ! LC_ALL=C tr -d '\r' < t-xstrtol.tmp > t-xstrtol.xo mv t-xstrtol.xo t-xstrtol.tmp # compare expected output --- 31,46 ---- ./test-xstrtoul${EXEEXT} 010 >> t-xstrtol.tmp 2>&1 || result=1 ./test-xstrtoul${EXEEXT} MiB >> t-xstrtol.tmp 2>&1 || result=1 + # Find out how to remove carriage returns from output. Solaris /usr/ucb/tr + # does not understand '\r'. + if echo solaris | tr -d '\r' | grep solais > /dev/null; then + cr='\015' + else + cr='\r' + fi + # normalize output ! LC_ALL=C tr -d "$cr" < t-xstrtol.tmp > t-xstrtol.xo mv t-xstrtol.xo t-xstrtol.tmp # compare expected output *** tests/test-xstrtoumax.sh.orig 2008-04-26 14:13:23.000000000 +0200 --- tests/test-xstrtoumax.sh 2008-04-26 14:12:20.000000000 +0200 *************** *** 19,26 **** ./test-xstrtoumax${EXEEXT} 010 >> t-xstrtoumax.tmp 2>&1 || result=1 ./test-xstrtoumax${EXEEXT} MiB >> t-xstrtoumax.tmp 2>&1 || result=1 # normalize output ! LC_ALL=C tr -d '\r' < t-xstrtoumax.tmp > t-xstrtoumax.xo mv t-xstrtoumax.xo t-xstrtoumax.tmp # compare expected output --- 19,34 ---- ./test-xstrtoumax${EXEEXT} 010 >> t-xstrtoumax.tmp 2>&1 || result=1 ./test-xstrtoumax${EXEEXT} MiB >> t-xstrtoumax.tmp 2>&1 || result=1 + # Find out how to remove carriage returns from output. Solaris /usr/ucb/tr + # does not understand '\r'. + if echo solaris | tr -d '\r' | grep solais > /dev/null; then + cr='\015' + else + cr='\r' + fi + # normalize output ! LC_ALL=C tr -d "$cr" < t-xstrtoumax.tmp > t-xstrtoumax.xo mv t-xstrtoumax.xo t-xstrtoumax.tmp # compare expected output