Skip to content

Commit

Permalink
php7: Support for icu 70.1
Browse files Browse the repository at this point in the history
This PR prepares PHP for a few minor changes that cause PHP builds to fail when using --enable-intl with ICU 70.1.

Change UBool to bool for equality operators in ICU >= 70.1

php/php-src#7596

Signed-off-by: Hirokazu MORIKAWA <[email protected]>
  • Loading branch information
nxhack committed Nov 2, 2021
1 parent 078a71d commit bc13112
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lang/php7/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk

PKG_NAME:=php
PKG_VERSION:=7.4.25
PKG_RELEASE:=1
PKG_RELEASE:=2

PKG_MAINTAINER:=Michael Heimpold <[email protected]>
PKG_LICENSE:=PHP-3.01
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
From cd1447a6962496fca60a2f5e5d9cf4448575cc24 Mon Sep 17 00:00:00 2001
From: Ben Ramsey <[email protected]>
Date: Tue, 19 Oct 2021 23:59:11 -0500
Subject: [PATCH 1/4] Change UBool to bool for equality operators in ICU >=
70.1

Refer to:
- https://github.com/unicode-org/icu/commit/633438f8da99fee815e2c61626ea779a84567a3d
- https://github.com/unicode-org/icu/commit/f6325d49ba57ec26f320b2865ce09ca47db458d9
---
ext/intl/breakiterator/codepointiterator_internal.cpp | 4 ++++
ext/intl/breakiterator/codepointiterator_internal.h | 4 ++++
2 files changed, 8 insertions(+)

--- a/ext/intl/breakiterator/codepointiterator_internal.cpp
+++ b/ext/intl/breakiterator/codepointiterator_internal.cpp
@@ -75,7 +75,11 @@ CodePointBreakIterator::~CodePointBreakI
clearCurrentCharIter();
}

+#if U_ICU_VERSION_MAJOR_NUM >= 70
+bool CodePointBreakIterator::operator==(const BreakIterator& that) const
+#else
UBool CodePointBreakIterator::operator==(const BreakIterator& that) const
+#endif
{
if (typeid(*this) != typeid(that)) {
return FALSE;
--- a/ext/intl/breakiterator/codepointiterator_internal.h
+++ b/ext/intl/breakiterator/codepointiterator_internal.h
@@ -39,7 +39,11 @@ namespace PHP {

virtual ~CodePointBreakIterator();

+#if U_ICU_VERSION_MAJOR_NUM >= 70
+ virtual bool operator==(const BreakIterator& that) const;
+#else
virtual UBool operator==(const BreakIterator& that) const;
+#endif

virtual CodePointBreakIterator* clone(void) const;

--- a/ext/intl/locale/locale_methods.c
+++ b/ext/intl/locale/locale_methods.c
@@ -1326,7 +1326,7 @@ PHP_FUNCTION(locale_filter_matches)
if( token && (token==cur_lang_tag) ){
/* check if the char. after match is SEPARATOR */
chrcheck = token + (strlen(cur_loc_range));
- if( isIDSeparator(*chrcheck) || isEndOfTag(*chrcheck) ){
+ if( isIDSeparator(*chrcheck) || isKeywordSeparator(*chrcheck) || isEndOfTag(*chrcheck) ){
efree( cur_lang_tag );
efree( cur_loc_range );
if( can_lang_tag){

0 comments on commit bc13112

Please sign in to comment.