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


_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to