On Mon, 2021-07-26 at 14:21 -0400, Andrew MacLeod via Gcc-patches wrote: > Remove lower case characters from the range of to_upper and likewise, > upper case characters from to_lower. > > I looked at also only adding the upper case characters for which there > is a lower_case character in the range, but it seemed of limited use > Given some odd usage patterns we emit. . Instead, I simply took the > incoming range, removed the "from" character set, and added the "to" > character set. This'll preserve any odd things that are passed into it > while providing the basic functionality. > > Easy enough for someone to enhance if they feel so inclined. > > Bootstrapped on x86_64-pc-linux-gnu with no regressions. Pushed.
Awkward question: does this work with character sets where there are non-letter characters between 'a' and 'z' and between 'A' and 'Z' (e.g. EBCDIC [1])? For example toupper('~') should return '~', but '~' is between 'a' and 'z' in EBCDIC; likewise tolower('}') should return '}', but '}' is between 'A' and 'Z' in EBCDIC. Dave [1] https://en.wikipedia.org/wiki/EBCDIC