summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/mbstring/mbfilter.c11
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));
}