'tr' character class support?
sampablokuper at posteo.net
Tue Jul 21 19:03:58 EDT 2020
I'm not an OpenWRT dev, just a lurker on the mailing list & a sometime
user of OpenWRT. (Thank you to all the devs & maintainers of OpenWRT &
packages, btw.) So, my view might not count for much, but ...
On Fri, Jul 10, 2020 at 09:36:03PM -0400, Eric Luehrsen wrote:
> I did a comparison, which gave about a 500 byte increase [..] I'd say
> that difference is acceptable [..]
> Unless there is an overwhelming size cost, basic POSIX binaries should
> be provided "POSIX'ly correct" by default. [..]
On Sat, Jul 11, 2020 at 11:26:23AM -0700, Jordan Geoghegan wrote:
> On 2020-07-11 06:08, Magnus Kroken wrote:
>> [..] Making tr compliant when it's there anyway and has this small
>> cost is good. [..]
> [..] I agree about having to make certain sacrifices in order to
> remain usable on smaller devices, the only reason I brought it up was
> due to the dangerous way in which 'tr' was configured to ignore
> character classes and treat all characters literally, rather than at
> least printing an error. I'm glad to see you've decided to re-enable
> tr POSIX stuff. Thanks :)
... I agree with Eric, Magnus & Jordan: POSIX-compliance is *definitely*
worth implementing when the size cost is negligible, as it is in this
It will reduce the risk of bugs in cases where:
- OpenWRT devs or package maintainers, e.g. new ones, might assume
POSIX-compliant `tr` behaviour (& might forget to test for
- third-party package authors do likewise.
Such bugs could end up having subtle & insidious effects, hard to
So, I would be grateful if the OpenWRT devs would make the suggested
change to the default Busybox compilation option.
(I say this as someone who owns one or two 4/32 devices, so please don't
think I'm not conscious of size constraints.)
> I'm not sure if there's any interest in making use of tr+classes for
> base system scripts, but I'd be happy to go through and start cleaning
> stuff up if there is interest.
> Attached please find a patch for
> "package/network/services/hostapd/files/hostapd.sh" [..]
I also agree with Jordan's suggestion to fix OpenWRT base system scripts
so that they would use `tr` classes instead of attempting to work around
the current POSIX non-compliance by using literal ranges. This way,
users - especially users who change locales - will be less likely to
We're not in the pre-Unicode, pre-globalisation era anymore. OpenWRT is
used internationally & no user should be penalised for switching locales
or performing other innocent actions that could trigger bugs with the
So, I would also be glad if Jordan's suggestion (& patch) could be
Thank you for hearing me out, & thanks again for developing/maintaining
A: When it messes up the order in which people normally read text.
Q: When is top-posting a bad thing?
() ASCII ribbon campaign. Please avoid HTML emails & proprietary
/\ file formats. (Why? See e.g. https://v.gd/jrmGbS ). Thank you.
More information about the openwrt-devel