'tr' character class support?
Jordan Geoghegan
jordan at geoghegan.ca
Fri Jul 10 17:26:43 EDT 2020
On 2020-07-10 14:15, Magnus Kroken wrote:
> Hi Jordan
>
> On 10.07.2020 22:45, Jordan Geoghegan wrote:
>> Hey folks,
>>
>> Does the 'tr' utility support character classes in OpenWRT? I was
>> playing around with an OpenWRT x86_64 VM and I noticed that 'tr'
>> doesn't seem to support character classes.
>> The command " echo HELLO | tr '[:upper:]' '[:lower:]' " does not
>> convert to the text to lowercase as it should (and as required by
>> POSIX).
> This would be expected behavior. OpenWrt disables tr character classes
> in BusyBox by default, see [1]:
>
> config BUSYBOX_DEFAULT_FEATURE_TR_CLASSES
> bool
> default n
> config BUSYBOX_DEFAULT_FEATURE_TR_EQUIV
> bool
> default n
>
> I don't know what the size cost in the BusyBox binary is, but that
> will likely be the deciding factor for such a change.
>
> 1:
> https://git.openwrt.org/?p=openwrt/openwrt.git;a=blob;f=package/utils/busybox/Config-defaults.in
>
> Regards,
> Magnus Kroken
Hi Magnus,
Thanks for confirming that so quickly.
I obviously understand that space saving is essential to OpenWRT, but
POSIX does require[1] that 'tr' support character classes:
:class:
Represents all characters belonging to the defined character class, as defined by the current setting of the LC_CTYPE locale cate-
gory. The following character class names shall be accepted when specified in string1:
alnum blank digit lower punct upper
alpha cntrl graph print space xdigit
1: https://www.unix.com/man-page/posix/1posix/tr/
Regards,
Jordan
More information about the openwrt-devel
mailing list