'tr' character class support?
Jordan Geoghegan
jordan at geoghegan.ca
Fri Jul 10 19:17:36 EDT 2020
On 2020-07-10 14:54, Rosen Penev wrote:
> On Fri, Jul 10, 2020 at 2:29 PM Jordan Geoghegan <jordan at geoghegan.ca> wrote:
>>
>>
>> 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:
> awk '{print toupper($0)}' is an alternative.
Yes, but this means that any script expecting tr to work correctly could
explode, as tr silently ignores the character class and treats all the
characters literally.
>> :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
>> openwrt-devel at lists.openwrt.org
>> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list