On 11/28/18 2:29 AM, Bize Ma wrote: > Chet Ramey (<chet.ra...@case.edu <mailto:chet.ra...@case.edu>>) wrote: > > On 11/24/18 4:32 PM, Bize Ma wrote: > > [...] > > > 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. > > > Yes, exactly, a range where the start and the end are the same.
A range like that is exactly equivalent to a single ordinary character. POSIX: "An ordinary character in the list should only match that character, but may match any single character that collates equally with that character" -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, UTech, CWRU c...@case.edu http://tiswww.cwru.edu/~chet/