This breaks user-space filters (for the time being), and those
weird convert.* filters in ext/standard/filters.c
The filters stack has been separated into one chain for read and one chain
for write.
The user-space stream_filter_append() type functions currently only operate
on the read chain. They need extending to work with the write chain too.
at the end of the chunk lost in the output.
# I bet no more problems will occur in quoted-printable encoder.
# But I recognised the counterpart is still buggy due to RFC2045-incompliance.
output. As per this specification requirement, the constructor now accepts
three options: binary (boolean), line-len (uint), line-break-chars (string).
# For example "base64-encode.line-break-chars=--,base64-decode.blah=foobar"
# will be parsed and splitted into a zval array as
# array(2) {
# ["base64-encode"]=>
# array(1) {
# ["line-break-chars"]=>
# string(2) "--"
# }
# ["base64-decode"]=>
# array(1) {
# ["blah"] =>
# string(6) "foobar"
# }
# }
. Added automatic line-breaking feature for base64 encode filter. This
can be turned on by putting a option entry "base64-encode.line-length"
to the filter parameters.
. Changed emalloc family functions to pemalloc ones for persistent filters.
. Changed base64 and quoted-printable filter names to "convert.base64-encode",
"convert.base64-decode", "convert.quoted-printable-encode", and
"convert.quoted-printable-decode" respectively for the consistency that
may be requested later.