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