At least the valid characters for variable names should be documented (to prevent ambiguity for things like "foo=bar", "spork=$foo01": is spork now bar01 or can a previous make.defaults have set a variable called "foo01"?). I also believe the quoting/escaping rules are incomplete (what do 'foo="bar"', 'foo=bar' and 'foo=\"bar\"' set foo to? What does 'foo=bar\\' do?) although I'm not sure what the rules for those actually *are*. If nobody else knows either tell me and I'll try to find out :)
r157. Rather than going into nasty detail about quoting rules, we just enforce that everything be double quoted.
The current text makes it impossible to escape a '$' or '"', which might break something in the future and breaks default-darwin/make.defaults now. The tree also does not have all values quoted. Should unquoted values be allowed or should the tree be fixed?
I'd be inclined to ask for tree changes just to avoid having to specify silly things like: foo=bar baz moo=oink cow=sheep what="does""this" "do"? Backslash followed by a double quote or a dollar only is also doable without introducing silliness...
Per comment #1, the main issue is fixed. Anything beyond that (like supporting \$ or \") would be an incompatible change that cannot be done retroactively. Closing.
For reference, r157 is this commit: https://gitweb.gentoo.org/proj/pms.git/commit/?id=bd0144c9ff665801697ca0d48885bc14115b3132