Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #14874

Re: Bash removes unrequested characters in bracket expressions (not a range).

From Chet Ramey <chet.ramey@case.edu>
Newsgroups gnu.bash.bug
Subject Re: Bash removes unrequested characters in bracket expressions (not a range).
Date 2018-11-27 11:52 -0800
Message-ID <mailman.5070.1543846742.1284.bug-bash@gnu.org> (permalink)
References <CAFra36hcAjBHGgd_8sHjOV4wSzjmdCyLV2aQo8Ww1bwJqkxYQA@mail.gmail.com> <1c24a279-f439-a13c-be60-901096ccd4e1@case.edu> <CAFra36hdkG+5qq94cf-sbKrnw6roJWez03aKJPU=Z=Vad2LaXg@mail.gmail.com> <63b8941d-16bc-0761-7272-83eb7347354e@case.edu>

Show all headers | View raw


On 11/24/18 2:32 PM, Chet Ramey wrote:

>> But IMO locale collation should not be used for an explicit list.
> 
> Collation order is used for each individual character in a bracket
> expression when compared against the string, as posix specifies.
> 
>> I have been made aware that there is a
>>       cstart = cend = FOLD (cstart);
>> inside the `sm_loop.c` file that will convert into a range many
>> individual character. If that understanding is correct that is the
>> source of the difference with other shells.
> 
> I'm not sure what you mean by "convert into a range." If cstart and cend
> were treated as a range, the start end and end characters would be the
> same. If cstart == cend, a character that collates >= cstart and <= cend
> would have to collate equal to cstart and cend.

If I were you, I would file a bug report with Debian against wcscoll.

It returns 0 (equal) for L"٠" and L"0" without setting errno. That's
clearly a problem with wcscoll (if the character isn't valid in the current
locale) or the locale definition.

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
		 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    chet@case.edu    http://tiswww.cwru.edu/~chet/

Back to gnu.bash.bug | Previous | Next | Find similar | Unroll thread


Thread

Re: Bash removes unrequested characters in bracket expressions (not a range). Chet Ramey <chet.ramey@case.edu> - 2018-11-27 11:52 -0800

csiph-web