This function will parse the header values given as argument into a
list of anonymous arrays containing key/value pairs. The function
knows how to deal with ``,'', ``;'' and ``='' as well as quoted values after
``=''. A list of space separated tokens are parsed as if they were
separated by ``;''.
If the @header_values passed as argument contains multiple values,
then they are treated as if they were a single value separated by
comma ``,''.
This means that this function is useful for parsing header fields that
follow this syntax (BNF as from the HTTP/1.1 specification, but we relax
the requirement for tokens).
parameter = attribute "=" value
attribute = token
value = token | quoted-string
Each header is represented by an anonymous array of key/value
pairs. The value for a simple token (not part of a parameter) is undef.
Syntactically incorrect headers will not necessary be parsed as you
would want.
This will do the opposite of the conversion done by split_header_words().
It takes a list of anonymous arrays as arguments (or a list of
key/value pairs) and produces a single header value. Attribute values
are quoted if needed.