summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2011-03-14 16:00:59 +0000
committerDmitry Stogov <dmitry@php.net>2011-03-14 16:00:59 +0000
commitbbc879b5870fff8d996b4f227816cb249c4d7839 (patch)
tree159c6eeaa3f992096f7e546111a32c1424f4fecd /ext
parent0be5ca5b3c4dd174f4e50e6a69be2951f6bbecc7 (diff)
downloadphp-git-bbc879b5870fff8d996b4f227816cb249c4d7839.tar.gz
Fixed multibyte related issues
Diffstat (limited to 'ext')
-rw-r--r--ext/exif/exif.c30
-rw-r--r--ext/mbstring/libmbfl/filters/mbfilter_ascii.c2
-rw-r--r--ext/mbstring/libmbfl/filters/mbfilter_cp5022x.c6
-rw-r--r--ext/mbstring/libmbfl/filters/mbfilter_cp850.c2
-rw-r--r--ext/mbstring/libmbfl/filters/mbfilter_cp866.c2
-rw-r--r--ext/mbstring/libmbfl/mbfl/mbfl_memory_device.c4
-rw-r--r--ext/mbstring/mb_gpc.c2
-rw-r--r--ext/mbstring/mbstring.c11
-rw-r--r--ext/mbstring/tests/mb_encoding_aliases.phpt18
9 files changed, 40 insertions, 37 deletions
diff --git a/ext/exif/exif.c b/ext/exif/exif.c
index 13137da838..d6ad8add32 100644
--- a/ext/exif/exif.c
+++ b/ext/exif/exif.c
@@ -2664,13 +2664,13 @@ static int exif_process_user_comment(image_info_type *ImageInfo, char **pszInfoP
decode = ImageInfo->decode_unicode_le;
}
if (zend_multibyte_encoding_converter(
- pszInfoPtr,
+ (unsigned char**)pszInfoPtr,
&len,
- szValuePtr,
+ (unsigned char*)szValuePtr,
ByteCount,
- ImageInfo->encode_unicode,
- decode
- TSRMLS_CC) != 0) {
+ zend_multibyte_fetch_encoding(ImageInfo->encode_unicode TSRMLS_CC),
+ zend_multibyte_fetch_encoding(decode TSRMLS_CC)
+ TSRMLS_CC) < 0) {
len = exif_process_string_raw(pszInfoPtr, szValuePtr, ByteCount);
}
return len;
@@ -2684,13 +2684,13 @@ static int exif_process_user_comment(image_info_type *ImageInfo, char **pszInfoP
szValuePtr = szValuePtr+8;
ByteCount -= 8;
if (zend_multibyte_encoding_converter(
- pszInfoPtr,
+ (unsigned char**)pszInfoPtr,
&len,
- szValuePtr,
+ (unsigned char*)szValuePtr,
ByteCount,
- ImageInfo->encode_jis,
- ImageInfo->motorola_intel ? ImageInfo->decode_jis_be : ImageInfo->decode_jis_le
- TSRMLS_CC) != 0) {
+ zend_multibyte_fetch_encoding(ImageInfo->encode_jis TSRMLS_CC),
+ zend_multibyte_fetch_encoding(ImageInfo->motorola_intel ? ImageInfo->decode_jis_be : ImageInfo->decode_jis_le TSRMLS_CC)
+ TSRMLS_CC) < 0) {
len = exif_process_string_raw(pszInfoPtr, szValuePtr, ByteCount);
}
return len;
@@ -2723,13 +2723,13 @@ static int exif_process_unicode(image_info_type *ImageInfo, xp_field_type *xp_fi
/* Copy the comment */
if (zend_multibyte_encoding_converter(
- &xp_field->value,
+ (unsigned char**)&xp_field->value,
&xp_field->size,
- szValuePtr,
+ (unsigned char*)szValuePtr,
ByteCount,
- ImageInfo->encode_unicode,
- ImageInfo->motorola_intel ? ImageInfo->decode_unicode_be : ImageInfo->decode_unicode_le
- TSRMLS_CC) != 0) {
+ zend_multibyte_fetch_encoding(ImageInfo->encode_unicode TSRMLS_CC),
+ zend_multibyte_fetch_encoding(ImageInfo->motorola_intel ? ImageInfo->decode_unicode_be : ImageInfo->decode_unicode_le TSRMLS_CC)
+ TSRMLS_CC) < 0) {
xp_field->size = exif_process_string_raw(&xp_field->value, szValuePtr, ByteCount);
}
return xp_field->size;
diff --git a/ext/mbstring/libmbfl/filters/mbfilter_ascii.c b/ext/mbstring/libmbfl/filters/mbfilter_ascii.c
index 34366db6c0..77871fb96d 100644
--- a/ext/mbstring/libmbfl/filters/mbfilter_ascii.c
+++ b/ext/mbstring/libmbfl/filters/mbfilter_ascii.c
@@ -37,7 +37,7 @@
static int mbfl_filt_ident_ascii(int c, mbfl_identify_filter *filter);
-static const char *mbfl_encoding_ascii_aliases[] = {"ANSI_X3.4-1968", "iso-ir-6", "ANSI_X3.4-1986", "ISO_646.irv:1991", "US-ASCII", "ISO646-US", "us", "IBM367", "cp367", "csASCII", NULL};
+static const char *mbfl_encoding_ascii_aliases[] = {"ANSI_X3.4-1968", "iso-ir-6", "ANSI_X3.4-1986", "ISO_646.irv:1991", "US-ASCII", "ISO646-US", "us", "IBM367", "IBM-367", "cp367", "csASCII", NULL};
const mbfl_encoding mbfl_encoding_ascii = {
mbfl_no_encoding_ascii,
diff --git a/ext/mbstring/libmbfl/filters/mbfilter_cp5022x.c b/ext/mbstring/libmbfl/filters/mbfilter_cp5022x.c
index 148d825559..96a8758879 100644
--- a/ext/mbstring/libmbfl/filters/mbfilter_cp5022x.c
+++ b/ext/mbstring/libmbfl/filters/mbfilter_cp5022x.c
@@ -462,7 +462,7 @@ mbfl_filt_conv_wchar_jis_ms(int c, mbfl_convert_filter *filter)
s = 0x224c;
}
}
- if (s <= 0 || s >= 0x8080 && s < 0x10000) {
+ if (s <= 0 || (s >= 0x8080 && s < 0x10000)) {
int i;
s = -1;
@@ -693,7 +693,7 @@ mbfl_filt_conv_wchar_cp50221(int c, mbfl_convert_filter *filter)
s = 0x224c;
}
}
- if (s <= 0 || s >= 0x8080 && s < 0x10000) {
+ if (s <= 0 || (s >= 0x8080 && s < 0x10000)) {
int i;
s = -1;
@@ -841,7 +841,7 @@ mbfl_filt_conv_wchar_cp50222(int c, mbfl_convert_filter *filter)
s = 0x224c;
}
}
- if (s <= 0 || s >= 0x8080 && s < 0x10000) {
+ if (s <= 0 || (s >= 0x8080 && s < 0x10000)) {
int i;
s = -1;
diff --git a/ext/mbstring/libmbfl/filters/mbfilter_cp850.c b/ext/mbstring/libmbfl/filters/mbfilter_cp850.c
index 5388c048b1..9e4696a5a9 100644
--- a/ext/mbstring/libmbfl/filters/mbfilter_cp850.c
+++ b/ext/mbstring/libmbfl/filters/mbfilter_cp850.c
@@ -33,7 +33,7 @@
static int mbfl_filt_ident_cp850(int c, mbfl_identify_filter *filter);
-static const char *mbfl_encoding_cp850_aliases[] = {"CP850", "CP-850", "IBM-850", NULL};
+static const char *mbfl_encoding_cp850_aliases[] = {"CP850", "CP-850", "IBM850", "IBM-850", NULL};
const mbfl_encoding mbfl_encoding_cp850 = {
mbfl_no_encoding_cp850,
diff --git a/ext/mbstring/libmbfl/filters/mbfilter_cp866.c b/ext/mbstring/libmbfl/filters/mbfilter_cp866.c
index 7725d7a266..22e109fe5b 100644
--- a/ext/mbstring/libmbfl/filters/mbfilter_cp866.c
+++ b/ext/mbstring/libmbfl/filters/mbfilter_cp866.c
@@ -37,7 +37,7 @@
static int mbfl_filt_ident_cp866(int c, mbfl_identify_filter *filter);
-static const char *mbfl_encoding_cp866_aliases[] = {"CP866", "CP-866", "IBM-866", NULL};
+static const char *mbfl_encoding_cp866_aliases[] = {"CP866", "CP-866", "IBM866", "IBM-866", NULL};
const mbfl_encoding mbfl_encoding_cp866 = {
mbfl_no_encoding_cp866,
diff --git a/ext/mbstring/libmbfl/mbfl/mbfl_memory_device.c b/ext/mbstring/libmbfl/mbfl/mbfl_memory_device.c
index 6d93fa3529..7509ef1a6a 100644
--- a/ext/mbstring/libmbfl/mbfl/mbfl_memory_device.c
+++ b/ext/mbstring/libmbfl/mbfl/mbfl_memory_device.c
@@ -218,7 +218,7 @@ mbfl_memory_device_strcat(mbfl_memory_device *device, const char *psrc)
const unsigned char *p;
len = 0;
- p = psrc;
+ p = (const unsigned char*)psrc;
while (*p) {
p++;
len++;
@@ -235,7 +235,7 @@ mbfl_memory_device_strcat(mbfl_memory_device *device, const char *psrc)
device->buffer = tmp;
}
- p = psrc;
+ p = (const unsigned char*)psrc;
w = &device->buffer[device->pos];
device->pos += len;
while (len > 0) {
diff --git a/ext/mbstring/mb_gpc.c b/ext/mbstring/mb_gpc.c
index dcdb60030f..041227d15d 100644
--- a/ext/mbstring/mb_gpc.c
+++ b/ext/mbstring/mb_gpc.c
@@ -282,7 +282,7 @@ const mbfl_encoding *_php_mb_encoding_handler_ex(const php_mb_encoding_handler_i
if (info->report_errors) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to detect encoding");
}
- from_encoding = mbfl_no_encoding_pass;
+ from_encoding = &mbfl_encoding_pass;
}
}
diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c
index 2d56bd8de5..0417fafffa 100644
--- a/ext/mbstring/mbstring.c
+++ b/ext/mbstring/mbstring.c
@@ -2958,7 +2958,7 @@ MBSTRING_API char * php_mb_convert_encoding(const char *input, size_t length, co
string.no_encoding = from_encoding->no_encoding;
} else {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to detect character encoding");
- from_encoding = mbfl_no_encoding_pass;
+ from_encoding = &mbfl_encoding_pass;
to_encoding = from_encoding;
string.no_encoding = from_encoding->no_encoding;
}
@@ -3496,7 +3496,7 @@ PHP_FUNCTION(mb_convert_variables)
break;
}
if (elistsz <= 0) {
- from_encoding = mbfl_no_encoding_pass;
+ from_encoding = &mbfl_encoding_pass;
} else if (elistsz == 1) {
from_encoding = *elist;
} else {
@@ -3565,7 +3565,7 @@ detect_end:
if (!from_encoding) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to detect encoding");
- from_encoding = mbfl_no_encoding_pass;
+ from_encoding = &mbfl_encoding_pass;
}
}
if (elist != NULL) {
@@ -3573,7 +3573,7 @@ detect_end:
}
/* create converter */
convd = NULL;
- if (from_encoding != mbfl_no_encoding_pass) {
+ if (from_encoding != &mbfl_encoding_pass) {
convd = mbfl_buffer_converter_new2(from_encoding, to_encoding, 0);
if (convd == NULL) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to create converter");
@@ -4418,6 +4418,7 @@ PHP_FUNCTION(mb_get_info)
array_init(return_value);
for (i = 0; i < n; i++) {
add_next_index_string(return_value, (*entry)->name, 1);
+ entry++;
}
}
} else if (!strcasecmp("substitute_character", typ)) {
@@ -4693,7 +4694,7 @@ static void php_mb_gpc_get_detect_order(const zend_encoding ***list, size_t *lis
static void php_mb_gpc_set_input_encoding(const zend_encoding *encoding TSRMLS_DC) /* {{{ */
{
- MBSTRG(http_input_identify) = encoding;
+ MBSTRG(http_input_identify) = (const mbfl_encoding*)encoding;
}
/* }}} */
diff --git a/ext/mbstring/tests/mb_encoding_aliases.phpt b/ext/mbstring/tests/mb_encoding_aliases.phpt
index 2159481efe..8ef299425a 100644
--- a/ext/mbstring/tests/mb_encoding_aliases.phpt
+++ b/ext/mbstring/tests/mb_encoding_aliases.phpt
@@ -13,26 +13,28 @@ var_dump(mb_encoding_aliases("8bit"));
?>
--EXPECTF--
Warning: mb_encoding_aliases() expects exactly 1 parameter, 0 given in %s on line 2
-array(10) {
+array(11) {
[0]=>
string(14) "ANSI_X3.4-1968"
[1]=>
string(14) "ANSI_X3.4-1986"
[2]=>
- string(6) "IBM367"
+ string(7) "IBM-367"
[3]=>
- string(9) "ISO646-US"
+ string(6) "IBM367"
[4]=>
- string(16) "ISO_646.irv:1991"
+ string(9) "ISO646-US"
[5]=>
- string(8) "US-ASCII"
+ string(16) "ISO_646.irv:1991"
[6]=>
- string(5) "cp367"
+ string(8) "US-ASCII"
[7]=>
- string(7) "csASCII"
+ string(5) "cp367"
[8]=>
- string(8) "iso-ir-6"
+ string(7) "csASCII"
[9]=>
+ string(8) "iso-ir-6"
+ [10]=>
string(2) "us"
}
array(0) {