current logic how the quotes (both ' and ") are managed is a bit too relaxed,
allowing wierd constructs like set name="value' also usual single quote
semantics is not possible and, the code does not check if the quoted string
actually has ending quote.
This update implements:
- distinguishing single and double quote
- variable expansion will not be done inside single quote protected area
- will preserve inner quote for values like "value 'some list'"
- ending quote check.
however, this diff does not implement ending quote order check - it shouldn't be too hard, needs some improvements on parser state machine.
this is fix for bug: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=204602