diff options
-rw-r--r-- | ext/mbstring/mbfilter.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/ext/mbstring/mbfilter.c b/ext/mbstring/mbfilter.c index 01a59e28f5..918e455124 100644 --- a/ext/mbstring/mbfilter.c +++ b/ext/mbstring/mbfilter.c @@ -3535,6 +3535,7 @@ mbfl_filt_conv_html_enc(int c, mbfl_convert_filter *filter TSRMLS_DC) { int tmp[10]; int i = 0, p = 0, e; + unsigned int uc; if (c<256 && mblen_table_html[c]==1) { CK((*filter->output_function)(c, filter->data TSRMLS_CC)); @@ -3554,15 +3555,17 @@ mbfl_filt_conv_html_enc(int c, mbfl_convert_filter *filter TSRMLS_DC) } i++; } + i=0; if (!p) { CK((*filter->output_function)('#', filter->data TSRMLS_CC)); + uc = (unsigned int)c; do { - tmp[i++] = '0'+c%10; - c /= 10; - } while (c); + tmp[i++] = '0'+uc%10; + uc /= 10; + } while (uc); do { CK((*filter->output_function)(tmp[--i], filter->data TSRMLS_CC)); - } while(i); + } while (i); } CK((*filter->output_function)(';', filter->data TSRMLS_CC)); } |