Date: Thu, 12 Jun 2025 09:09:42 -0400 From: Chet Ramey <chet.ra...@case.edu> Message-ID: <3ed55e81-00e3-4f91-8fdd-f7fba7bc9...@case.edu>
| > | That wouldn't have been backwards compatible, so I didn't add quote | > | removal. | > Really, in what cases? | In every case. If you don't perform quote removal and then you do, you're | not backwards compatible. That would be meaningful only if it had been possible to use any of the quoting characters in that place (the function name in a definition) and it actually worked. | The question is whether or not there are any | functions out there using special characters, quoted or not, and I don't | know the answer to that. I know, that prior to 5.3 (well, in 5.1 and 5.2 - I didn't test every ancient version) it was impossible to use anything which needed quoting, by quoting it, as simply putting any quote character in that position generated a syntax error. Try it for yourself, see if you can find an example where quote removal on something that worked in 5.2 would generate a different result. That's a fairly good indication that no quoted characters exist in function names in bash scripts "out there" anywhere, and even if not that, more or less a guarantee that adding quote removal there can't break anything (just generate less syntax errors). | In any event, this is a discussion that's way too late for bash-5.3. That is perhaps a real problem, as the changes that have been made in 5.3 will create backwards compat issues if and when you were ever to decide to attempt to do this properly. It would be better to revert all the changes related to what's allowed in function names, than to go on allowing unquoted operator characters to be embedded in them (before quote removal), that's just broken. If it can't be fixed now, do nothing in this area in 5.3, and then do it properly in 5.4 (or 6, or whatever comes next - even in a 5.3 patch perhaps). kre