]> granicus.if.org Git - php/commitdiff
- MFH
authorMoriyoshi Koizumi <moriyoshi@php.net>
Thu, 16 Oct 2008 01:01:37 +0000 (01:01 +0000)
committerMoriyoshi Koizumi <moriyoshi@php.net>
Thu, 16 Oct 2008 01:01:37 +0000 (01:01 +0000)
ext/mbstring/libmbfl/filters/mbfilter_htmlent.c

index 40c24c3424e56ba389016175800e116eadd15709..6c6654a1b9ed366d6dda25fc9e84471b958638fc 100644 (file)
@@ -232,8 +232,7 @@ int mbfl_filt_conv_html_dec(int c, mbfl_convert_filter *filter)
                                mbfl_filt_conv_html_dec_flush(filter);
                                if (c=='&')
                                {
-                                       filter->status = 1;
-                                       buffer[0] = '&';
+                                       buffer[filter->status++] = '&';
                                }
                        }
                }
@@ -244,17 +243,19 @@ int mbfl_filt_conv_html_dec(int c, mbfl_convert_filter *filter)
 int mbfl_filt_conv_html_dec_flush(mbfl_convert_filter *filter)
 {
        int status, pos = 0;
-       char *buffer;
+       unsigned char *buffer;
+       int err = 0;
 
-       buffer = (char*)filter->opaque;
+       buffer = (unsigned char*)filter->opaque;
        status = filter->status;
+       filter->status = 0;
        /* flush fragments */
        while (status--) {
-               CK((*filter->output_function)(buffer[pos++], filter->data));
+               int e = (*filter->output_function)(buffer[pos++], filter->data);
+               if (e != 0)
+                       err = e;
        }
-       filter->status = 0;
-       /*filter->buffer = 0; of cause NOT*/
-       return 0;
+       return err;
 }