Where does FreeBSD tr -C differ from tr -c?

Cedric Blancher cedric.blancher at googlemail.com
Fri Apr 5 22:10:24 UTC 2013


On 5 April 2013 16:04, Cedric Blancher <cedric.blancher at googlemail.com> wrote:
> Has anyone discovered examples for FreeBSD tr -c producing different
> output than tr -C?
> I tried this (ksh93) test script but it NEVER produces a difference in
> the en_US.utf8 and fr_FR.utf-8 locales:
>
> ------ snip ------
> builtin rm
>
> typeset string
> typeset -li16 n_ch ;
>
> for (( n_ch=1 ; n_ch < 0x5000 ; n_ch++ )) ; do
>         ch="$(printf "\u[${n_ch/~(El)16#/}]")"
>         string+="$ch"
> done
>
> typeset -li16 m1 m2
> for (( m1=0x32 ; m1 < 0x3000 ; m1+=7 )) ; do
>         (( m2=m1+1500 ))
>         range="$(printf "\u[${m1/~(El)16#/}]-\u[${m2/~(El)16#/}]")"
>
>         tr -Cd "$range" <<<"$string" >'res_C' &
>         tr -cd "$range" <<<"$string" >'res_c' &
>         wait
>         res_c="$( <'res_c' )"
>         res_C="$( <'res_C' )"
>         rm 'res_c' 'res_C'
>
>         if [[ "$res_c" != "$res_C" ]] ; then
>                 printf 'DIFFER range=%q\n' "${range}"
>         fi
> done
> exit 0
> ------ snip ------
>
> So when does tr -C differ from tr -c? I need examples, please...

Anyone? FreeBSD tr implements option -C but there are no usage
*examples* where exactly it differs from -c.

Ced
-- 
Cedric Blancher <cedric.blancher at googlemail.com>
Institute Pasteur


More information about the freebsd-i18n mailing list