It should be noted that this is only necessary for lines beginning with the string "From " which some mtas will mangle in transit, thus rendering digital signatures invalid.
--Wez. On Tue, 14 Jan 2003, Moriyoshi Koizumi wrote: > moriyoshi Tue Jan 14 11:42:19 2003 EDT > > Modified files: > /php4/ext/standard filters.c > Log: > Added a new option "force-encode-first" to the quoted-printable encoder > as per Wez's request. If enabled, the encoder forcefully does qp > tranformation on every first character of lines in incoming stream. > > > Index: php4/ext/standard/filters.c > diff -u php4/ext/standard/filters.c:1.17 php4/ext/standard/filters.c:1.18 > --- php4/ext/standard/filters.c:1.17 Mon Jan 13 20:27:57 2003 > +++ php4/ext/standard/filters.c Tue Jan 14 11:42:18 2003 > @@ -17,7 +17,7 @@ > +----------------------------------------------------------------------+ > */ > > -/* $Id: filters.c,v 1.17 2003/01/14 01:27:57 moriyoshi Exp $ */ > +/* $Id: filters.c,v 1.18 2003/01/14 16:42:18 moriyoshi Exp $ */ > > #include "php.h" > #include "php_globals.h" > @@ -665,7 +665,8 @@ > unsigned int lb_cnt; > } php_conv_qprint_encode; > > -#define PHP_CONV_QPRINT_OPT_BINARY 0x00000001 > +#define PHP_CONV_QPRINT_OPT_BINARY 0x00000001 > +#define PHP_CONV_QPRINT_OPT_FORCE_ENCODE_FIRST 0x00000002 > > static void php_conv_qprint_encode_dtor(php_conv_qprint_encode *inst); > static php_conv_err_t php_conv_qprint_encode_convert(php_conv_qprint_encode *inst, >const char **in_pp, size_t *in_left_p, char **out_pp, size_t *out_left_p); > @@ -772,7 +773,7 @@ > line_ccnt--; > CONSUME_CHAR(ps, icnt, lb_ptr, lb_cnt); > } > - } else if ((c >= 33 && c <= 60) || (c >= 62 && c <= 126)) { > + } else if ((!(opts & PHP_CONV_QPRINT_OPT_FORCE_ENCODE_FIRST) || >line_ccnt < inst->line_len) && ((c >= 33 && c <= 60) || (c >= 62 && c <= 126))) { > if (line_ccnt < 2) { > if (ocnt < inst->lbchars_len + 1) { > err = PHP_CONV_ERR_TOO_BIG; > @@ -1172,10 +1173,12 @@ > > if (options != NULL) { > int opt_binary = 0; > + int opt_force_encode_first = 0; > > GET_STR_PROP(options, lbchars, lbchars_len, >"line-break-chars", 0); > GET_UINT_PROP(options, line_len, "line-length"); > GET_BOOL_PROP(options, opt_binary, "binary"); > + GET_BOOL_PROP(options, opt_force_encode_first, >"force-encode-first"); > > if (line_len < 4) { > if (lbchars != NULL) { > @@ -1189,6 +1192,7 @@ > } > } > opts |= (opt_binary ? PHP_CONV_QPRINT_OPT_BINARY : 0); > + opts |= (opt_force_encode_first ? >PHP_CONV_QPRINT_OPT_FORCE_ENCODE_FIRST : 0); > } > retval = pemalloc(sizeof(php_conv_qprint_encode), persistent); > if (lbchars != NULL) { > > > > -- > PHP CVS Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > > -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php