On 10/05/10 15:59, Bruno Haible wrote: > +# Find a 'tr' program that supports character ranges in the POSIX syntax. > +# Solaris /usr/bin/tr does not. > +if test -f /usr/xpg6/bin/tr; then > + TR=/usr/xpg6/bin/tr > +else > + if test -f /usr/xpg4/bin/tr; then > + TR=/usr/xpg4/bin/tr > + else > + TR=tr > + fi > +fi
This sort of patch will work on recent-enough versions of Solaris, but it won't work on older versions (sorry, don't recall offhand how old). More important, it won't work on Solaris installations that have neither the SUNWxcu4 nor the SUNWxcu6 packages installed. To have a greater chance of working, I suppose the code could also test for /usr/ucb/tr (in SUNWscpu) and for /opt/sfw/bin/tr (in SFWcoreu), but these aren't guaranteed to be present either. /usr/ucb/tr may be a bit risky (I don't offhand recall its other quirks). I sympathize with the goal to separate out the nonstandard-tr concerns from the regular programming concerns, but in this particular case I'd say we're probably better off just living with the system tr. Even if we knew we could get it to work with Solaris, there's too great a chance of running on some non-Solaris host with this problem. Another possibility is to spell it out, replacing this: libname_upper=`echo "$libname" | LC_ALL=C tr '[a-z]-' '[A-Z]_'` with this: libname_upper=`echo "$libname" | tr abcdefghijklmnopqrstuvwxyz- \ ABCDEFGHIJKLMNOPQRSTUVWXYZ_ ` but that may be a cure worse than the disease.