helly Thu Nov 14 16:43:00 2002 EDT
Modified files:
/php4/ext/exif exif.c
Log:
Test is affected by mbstring
Index: php4/ext/exif/exif.c
diff -u php4/ext/exif/exif.c:1.118 php4/ext/exif/exif.c:1.119
--- php4/ext/exif/exif.c:1.118 Thu Nov 7 20:08:01 2002
+++ php4/ext/exif/exif.c Thu Nov 14 16:43:00 2002
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: exif.c,v 1.118 2002/11/08 01:08:01 iliaa Exp $ */
+/* $Id: exif.c,v 1.119 2002/11/14 21:43:00 helly Exp $ */
/* ToDos
*
@@ -109,7 +109,7 @@
};
/* }}} */
-#define EXIF_VERSION "1.4 $Id: exif.c,v 1.118 2002/11/08 01:08:01 iliaa Exp $"
+#define EXIF_VERSION "1.4 $Id: exif.c,v 1.119 2002/11/14 21:43:00 helly Exp $"
/* {{{ PHP_MINFO_FUNCTION
*/
@@ -2549,6 +2549,7 @@
static int exif_process_user_comment(image_info_type *ImageInfo, char **pszInfoPtr,
char **pszEncoding, char *szValuePtr, int ByteCount TSRMLS_DC)
{
int a;
+ char *decode;
#ifdef HAVE_MBSTRING
size_t len;;
@@ -2562,11 +2563,23 @@
szValuePtr = szValuePtr+8;
ByteCount -= 8;
#ifdef HAVE_MBSTRING
- if (ImageInfo->motorola_intel) {
- *pszInfoPtr = php_mb_convert_encoding(szValuePtr,
ByteCount, ImageInfo->encode_unicode, ImageInfo->decode_unicode_be, &len TSRMLS_CC);
+ /* First try to detect BOM: ZERO WIDTH NOBREAK SPACE (FEFF 16)
+ * since we have no encoding support for the BOM yet we skip
+that.
+ */
+ if (!memcmp(szValuePtr, "\xFE\xFF", 2)) {
+ decode = "UCS-2BE";
+ szValuePtr = szValuePtr+2;
+ ByteCount -= 2;
+ } else if (!memcmp(szValuePtr, "\xFF\xFE", 2)) {
+ decode = "UCS-2LE";
+ szValuePtr = szValuePtr+2;
+ ByteCount -= 2;
+ } else if (ImageInfo->motorola_intel) {
+ decode = ImageInfo->decode_unicode_be;
} else {
- *pszInfoPtr = php_mb_convert_encoding(szValuePtr,
ByteCount, ImageInfo->encode_unicode, ImageInfo->decode_unicode_le, &len TSRMLS_CC);
+ decode = ImageInfo->decode_unicode_le;
}
+ *pszInfoPtr = php_mb_convert_encoding(szValuePtr, ByteCount,
+ImageInfo->encode_unicode, decode, &len TSRMLS_CC);
return len;
#else
return exif_process_string_raw(pszInfoPtr, szValuePtr,
ByteCount);
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php