ID: 44098
Comment by: sebastian dot gerlach at digionline dot de
Reported By: steffen at dislabs dot de
Status: No Feedback
Bug Type: IMAP related
Operating System: FreeBSD 6.2
PHP Version: 5.2.5
Assigned To: pajoye
New Comment:
Complete patch for 5.3.1:
*** configure 2009-11-18 21:11:57.000000000 +0100
--- configure.new 2009-12-22 18:36:30.000000000 +0100
***************
*** 47697,47703 ****
CFLAGS="-I$IMAP_INC_DIR"
echo $ac_n "checking for U8T_CANONICAL""... $ac_c" 1>&6
echo "configure:47700: checking for U8T_CANONICAL" >&5
! if eval "test \"`echo '$''{'ac_cv_u8t_canonical'+set}'`\" = set";
then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
--- 47697,47703 ----
CFLAGS="-I$IMAP_INC_DIR"
echo $ac_n "checking for U8T_CANONICAL""... $ac_c" 1>&6
echo "configure:47700: checking for U8T_CANONICAL" >&5
! if eval "test \"`echo '$''{'ac_cv_u8t_decompose'+set}'`\" = set";
then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
***************
*** 47715,47741 ****
if { (eval echo configure:47716: \"$ac_compile\") 1>&5; (eval
$ac_compile) 2>&5; }; then
rm -rf conftest*
! ac_cv_u8t_canonical=yes
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
! ac_cv_u8t_canonical=no
fi
rm -f conftest*
fi
! echo "$ac_t""$ac_cv_u8t_canonical" 1>&6
CFLAGS=$old_CFLAGS
! if test "$ac_cv_u8t_canonical" = "no" && test
"$ac_cv_utf8_mime2text" = "new"; then
{ echo "configure: error: utf8_mime2text() has new signature,
but
U8T_CANONICAL is missing. This should not happen. Check config.log for
additional information." 1>&2; exit 1; }
fi
! if test "$ac_cv_u8t_canonical" = "yes" && test
"$ac_cv_utf8_mime2text" = "old"; then
{ echo "configure: error: utf8_mime2text() has old signature,
but
U8T_CANONICAL is present. This should not happen. Check config.log for
additional information." 1>&2; exit 1; }
fi
--- 47715,47741 ----
if { (eval echo configure:47716: \"$ac_compile\") 1>&5; (eval
$ac_compile) 2>&5; }; then
rm -rf conftest*
! ac_cv_u8t_decompose=yes
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
! ac_cv_u8t_decompose=no
fi
rm -f conftest*
fi
! echo "$ac_t""$ac_cv_u8t_decompose" 1>&6
CFLAGS=$old_CFLAGS
! if test "$ac_cv_u8t_decompose" = "no" && test
"$ac_cv_utf8_mime2text" = "new"; then
{ echo "configure: error: utf8_mime2text() has new signature,
but
U8T_CANONICAL is missing. This should not happen. Check config.log for
additional information." 1>&2; exit 1; }
fi
! if test "$ac_cv_u8t_decompose" = "yes" && test
"$ac_cv_utf8_mime2text" = "old"; then
{ echo "configure: error: utf8_mime2text() has old signature,
but
U8T_CANONICAL is present. This should not happen. Check config.log for
additional information." 1>&2; exit 1; }
fi
*** ext/imap/config.m4 2009-05-05 03:22:44.000000000 +0200
--- ext/imap/config.m4.new 2009-12-22 18:39:16.000000000 +0100
***************
*** 147,169 ****
old_CFLAGS=$CFLAGS
CFLAGS="-I$IMAP_INC_DIR"
! AC_CACHE_CHECK(for U8T_CANONICAL, ac_cv_u8t_canonical,
AC_TRY_COMPILE([
#include <c-client.h>
],[
int i = U8T_CANONICAL;
],[
! ac_cv_u8t_canonical=yes
],[
! ac_cv_u8t_canonical=no
])
)
CFLAGS=$old_CFLAGS
! if test "$ac_cv_u8t_canonical" = "no" && test
"$ac_cv_utf8_mime2text" = "new"; then
AC_MSG_ERROR([utf8_mime2text() has new signature, but
U8T_CANONICAL
is missing. This should not happen. Check config.log for additional
information.])
fi
! if test "$ac_cv_u8t_canonical" = "yes" && test
"$ac_cv_utf8_mime2text" = "old"; then
AC_MSG_ERROR([utf8_mime2text() has old signature, but
U8T_CANONICAL
is present. This should not happen. Check config.log for additional
information.])
fi
--- 147,169 ----
old_CFLAGS=$CFLAGS
CFLAGS="-I$IMAP_INC_DIR"
! AC_CACHE_CHECK(for U8T_DECOMPOSE, ac_cv_u8t_canonical,
AC_TRY_COMPILE([
#include <c-client.h>
],[
int i = U8T_CANONICAL;
],[
! ac_cv_u8t_decompose=yes
],[
! ac_cv_u8t_decompose=no
])
)
CFLAGS=$old_CFLAGS
! if test "$ac_cv_u8t_decompose" = "no" && test
"$ac_cv_utf8_mime2text" = "new"; then
AC_MSG_ERROR([utf8_mime2text() has new signature, but
U8T_CANONICAL
is missing. This should not happen. Check config.log for additional
information.])
fi
! if test "$ac_cv_u8t_decompose" = "yes" && test
"$ac_cv_utf8_mime2text" = "old"; then
AC_MSG_ERROR([utf8_mime2text() has old signature, but
U8T_CANONICAL
is present. This should not happen. Check config.log for additional
information.])
fi
*** ext/imap/php_imap.c 2009-10-09 19:38:19.000000000 +0200
--- ext/imap/php_imap.c.new 2009-12-22 18:52:19.000000000 +0100
***************
*** 2598,2604 ****
#ifndef HAVE_NEW_MIME2TEXT
utf8_mime2text(&src, &dest);
#else
! utf8_mime2text(&src, &dest, U8T_CANONICAL);
#endif
RETVAL_STRINGL(dest.data, dest.size, 1);
if (dest.data) {
--- 2598,2604 ----
#ifndef HAVE_NEW_MIME2TEXT
utf8_mime2text(&src, &dest);
#else
! utf8_mime2text(&src, &dest, U8T_DECOMPOSE);
#endif
RETVAL_STRINGL(dest.data, dest.size, 1);
if (dest.data) {
Previous Comments:
------------------------------------------------------------------------
[2009-11-06 01:00:02] php-bugs at lists dot php dot net
No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
------------------------------------------------------------------------
[2009-10-29 22:58:42] [email protected]
It looks like your patch was truncated. Can you post a link to it or
send it to me please?
------------------------------------------------------------------------
[2009-10-29 22:54:08] sbs at hushmail dot com
This is because if you compile against a recent version of the imap
c-client library, the U8T_CANONICAL flag is passed to utf8_mime2text,
which canonicalizes case. To fix, instead the U8T_DECOMPOSE compose
flag can be used. No flag at all would likely be fine as well.
Here's a patch I used against 5.2.11.
diff -r -u php-5.2.11/configure
php-5.2.11-u8t_decompose-patch/configure
+++ php-5.2.11-u8t_decompose-patch/configure 2009-10-29
15:23:14.000000000 -0700
-if eval "test \"`echo '$''{'ac_cv_u8t_canonical'+set}'`\" = set";
then
+if eval "test \"`echo '$''{'ac_cv_u8t_decompose'+set}'`\" = set";
then
- ac_cv_u8t_canonical=yes
+ ac_cv_u8t_decompose=yes
- ac_cv_u8t_canonical=no
+ ac_cv_u8t_decompose=no
-echo "$ac_t""$ac_cv_u8t_canonical" 1>&6
+echo "$ac_t""$ac_cv_u8t_decompose" 1>&6
- if test "$ac_cv_u8t_canonical" = "no" && test
"$ac_cv_utf8_mime2text" = "new"; then
+ if test "$ac_cv_u8t_decompose" = "no" && test
"$ac_cv_utf8_mime2text" = "new"; then
- if test "$ac_cv_u8t_canonical" = "yes" && test
"$ac_cv_utf8_mime2text" = "old"; then
+ if test "$ac_cv_u8t_decompose" = "yes" && test
"$ac_cv_utf8_mime2text" = "old"; then
diff -r -u php-5.2.11/ext/imap/config.m4
php-5.2.11-u8t_decompose-patch/ext/imap/config.m4
+++ php-5.2.11-u8t_decompose-patch/ext/imap/config.m4 2009-10-29
15:21:22.000000000 -0700
- AC_CACHE_CHECK(for U8T_CANONICAL, ac_cv_u8t_canonical,
+ AC_CACHE_CHECK(for U8T_DECOMPOSE, ac_cv_u8t_decompose,
- ac_cv_u8t_canonical=yes
+ ac_cv_u8t_decompose=yes
- ac_cv_u8t_canonical=no
+ ac_cv_u8t_decompose=no
- if test "$ac_cv_u8t_canonical" = "no" && test
"$ac_cv_utf8_mime2text" = "new"; then
+ if test "$ac_cv_u8t_decompose" = "no" && test
"$ac_cv_utf8_mime2text" = "new"; then
- if test "$ac_cv_u8t_canonical" = "yes" && test
"$ac_cv_utf8_mime2text" = "old"; then
+ if test "$ac_cv_u8t_decompose" = "yes" && test
"$ac_cv_utf8_mime2text" = "old"; then
diff -r -u php-5.2.11/ext/imap/php_imap.c
php-5.2.11-u8t_decompose-patch/ext/imap/php_imap.c
+++ php-5.2.11-u8t_decompose-patch/ext/imap/php_imap.c 2009-10-29
15:21:38.000000000 -0700
------------------------------------------------------------------------
[2009-07-10 20:53:54] ftourist at yahoo dot com
Same bug on Windows Server 2008
Installed using
php-5.3.0-nts-Win32-VC9-x86.msi
------------------------------------------------------------------------
[2009-04-15 08:39:21] tristan at byte dot nl
We experience the same bug using php 5.2.9 on Debian Etch
PHP 5.2.9-1byte1 (cli) (built: Mar 25 2009 17:08:35)
5.2.9.dfsg.1-1byte1 (5.2.9.dfsg.1-1, with some custom patches not
related to utf8 or imap).
libc-client is libc-client2007b (2007b~dfsg-2byte0etch0)
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/44098
--
Edit this bug report at http://bugs.php.net/?id=44098&edit=1