Module Name: src Committed By: kre Date: Wed Aug 19 22:41:47 UTC 2020
Modified Files: src/bin/sh: parser.c Log Message: For now, probably forever, prohibit unquoted $ and ` in the names of functions being defined (they can still be included if quoted). If we parsed the way POSIX specifies (leaving the exact input text of $ and ` expansions unaltered, until required to be expanded) this would not be needed, as the name of a function being defined does not underbo parameter, command, or arith expansions, so xxx$3() { : ; } would just work. But for many reasons we don't do that (and are unlikely to ever, though maintaing both forms might be an option someday) - which led to very obscure behaviour (if sh were compiled in DEBUG mode, even an abort()) and certainly nothing useful. So just prohibit these uses for now. (A portable function name must be a "name" so this makes no difference at all to posix compat applications/scripts). A doc update is pending (the updated sh.1 also contains updates in other areas not yet appropriate to commit). To generate a diff of this commit: cvs rdiff -u -r1.170 -r1.171 src/bin/sh/parser.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.