--- Begin Message ---
Source: libfolia
Source-Version: 1.6-2
Severity: important
Tags: patch
Usertags: icu63
Dear Maintainer,
ICU 63.1 recently released, packaged and uploaded to experimental.
Its transition is going to start soon. However your package fails to
build with this version. I attach a patch which fixes the problem.
Please check if it works with the version in Sid and upload the
package when it's feasible for you.
Thanks,
Laszlo/GCS
Description: fix FTBFS with ICU 63.1
Add icu namespace.
Author: Laszlo Boszormenyi (GCS) <g...@debian.org>
Last-Update: 2018-11-07
---
--- libfolia-1.6.orig/include/libfolia/folia_document.h
+++ libfolia-1.6/include/libfolia/folia_document.h
@@ -56,7 +56,7 @@ namespace folia {
Pattern( const std::vector<std::string>&, const std::string& );
~Pattern();
- bool match( const UnicodeString& , size_t&, int&, bool&, bool& ) const;
+ bool match( const icu::UnicodeString& , size_t&, int&, bool&, bool& ) const;
size_t size() const { return sequence.size(); };
void unsetwild();
bool variablesize() const;
@@ -66,8 +66,8 @@ namespace folia {
private:
bool case_sensitive;
int maxgapsize;
- std::vector<UnicodeString> sequence;
- std::vector<RegexMatcher*> matchers;
+ std::vector<icu::UnicodeString> sequence;
+ std::vector<icu::RegexMatcher*> matchers;
std::string matchannotationset;
};
@@ -105,7 +105,7 @@ namespace folia {
void set_foreign_metadata( xmlNode * );
void addStyle( const std::string&, const std::string& );
void replaceStyle( const std::string&, const std::string& );
- UnicodeString text( const std::string& = "current",
+ icu::UnicodeString text( const std::string& = "current",
bool = false,
bool = false ) const;
std::vector<Paragraph*> paragraphs() const;
--- libfolia-1.6.orig/include/libfolia/folia_impl.h
+++ libfolia-1.6/include/libfolia/folia_impl.h
@@ -272,12 +272,12 @@ namespace folia {
bool hastext( const std::string& = "current" ) const;
virtual const std::string str( const std::string& = "current" ) const = 0;
- const UnicodeString unicode( const std::string& cls = "current" ) const { return text( cls ); };
- virtual const UnicodeString text( const std::string& = "current",
+ const icu::UnicodeString unicode( const std::string& cls = "current" ) const { return text( cls ); };
+ virtual const icu::UnicodeString text( const std::string& = "current",
bool = false, bool = false ) const = 0;
- const UnicodeString stricttext( const std::string& = "current" ) const;
- const UnicodeString toktext( const std::string& = "current" ) const;
- virtual const UnicodeString phon( const std::string& = "current",
+ const icu::UnicodeString stricttext( const std::string& = "current" ) const;
+ const icu::UnicodeString toktext( const std::string& = "current" ) const;
+ virtual const icu::UnicodeString phon( const std::string& = "current",
bool = false ) const = 0;
virtual bool printable() const = 0;
virtual bool speakable() const = 0;
@@ -337,8 +337,8 @@ namespace folia {
virtual TextContent *textcontent( const std::string& = "current" ) const = 0;
TextContent *settext( const std::string&, const std::string& = "current" );
TextContent *settext( const std::string&, int , const std::string& = "current" );
- TextContent *setutext( const UnicodeString&, const std::string& = "current" );
- TextContent *setutext( const UnicodeString&, int , const std::string& = "current" );
+ TextContent *setutext( const icu::UnicodeString&, const std::string& = "current" );
+ TextContent *setutext( const icu::UnicodeString&, int , const std::string& = "current" );
virtual int offset() const NOT_IMPLEMENTED;
// PhonContent
@@ -410,7 +410,7 @@ namespace folia {
virtual const std::string content() const NOT_IMPLEMENTED;
virtual const std::string src() const NOT_IMPLEMENTED;
- virtual const UnicodeString caption() const NOT_IMPLEMENTED;
+ virtual const icu::UnicodeString caption() const NOT_IMPLEMENTED;
virtual std::vector<FoliaElement *> resolve() const NOT_IMPLEMENTED;
virtual const FoliaElement* resolveid() const NOT_IMPLEMENTED;
virtual bool checkAtts() = 0;
@@ -563,14 +563,14 @@ namespace folia {
// text/string content
const std::string str( const std::string& = "current" ) const;
- const UnicodeString text( const std::string& = "current",
+ const icu::UnicodeString text( const std::string& = "current",
bool = false, bool = false ) const;
- const UnicodeString phon( const std::string& = "current",
+ const icu::UnicodeString phon( const std::string& = "current",
bool = false ) const;
- const UnicodeString deeptext( const std::string& = "current",
+ const icu::UnicodeString deeptext( const std::string& = "current",
bool = false ) const;
- const UnicodeString deepphon( const std::string& = "current" ) const;
+ const icu::UnicodeString deepphon( const std::string& = "current" ) const;
// Word
const Word* resolveword( const std::string& ) const { return 0; };
@@ -693,7 +693,7 @@ namespace folia {
const std::string& cls = "current" ) {
return e->str( cls ); }
- inline const UnicodeString text( const FoliaElement *e,
+ inline const icu::UnicodeString text( const FoliaElement *e,
const std::string& cls = "current" ) {
if ( e )
return e->text( cls );
@@ -701,7 +701,7 @@ namespace folia {
throw ValueError( "text() for empty element" );
}
- inline const UnicodeString unicode( const FoliaElement *e ) {
+ inline const icu::UnicodeString unicode( const FoliaElement *e ) {
return e->unicode(); }
inline bool isinstance( const FoliaElement *e, ElementType t ) {
@@ -917,7 +917,7 @@ namespace folia {
void setAttributes( const KWargs& );
KWargs collectAttributes() const;
- const UnicodeString text( const std::string& = "current",
+ const icu::UnicodeString text( const std::string& = "current",
bool = false, bool = false ) const;
private:
static properties PROPS;
@@ -975,7 +975,7 @@ namespace folia {
FoliaImpl(PROPS,d){ classInit( a ); }
void setAttributes( const KWargs& );
KWargs collectAttributes() const;
- const UnicodeString phon( const std::string& = "current",
+ const icu::UnicodeString phon( const std::string& = "current",
bool = false ) const;
int offset() const { return _offset; };
private:
@@ -991,7 +991,7 @@ namespace folia {
FoliaImpl( PROPS,d) { classInit(); }
FoLiA( const KWargs& a, Document *d = 0 ):
FoliaImpl( PROPS, d ) { classInit( a ); }
- const UnicodeString text( const std::string& = "current",
+ const icu::UnicodeString text( const std::string& = "current",
bool = false, bool = false ) const;
private:
static properties PROPS;
@@ -1127,7 +1127,7 @@ namespace folia {
AbstractStructureElement( PROPS, d ){ classInit(); };
Linebreak( const KWargs& a, Document *d = 0 ):
AbstractStructureElement( PROPS, d ){ classInit( a ); };
- const UnicodeString text( const std::string& = "current",
+ const icu::UnicodeString text( const std::string& = "current",
bool = false, bool = false ) const {
return "\n";
}
@@ -1149,7 +1149,7 @@ namespace folia {
Whitespace( const KWargs& a, Document *d = 0 ):
AbstractStructureElement( PROPS, d ){ classInit( a ); }
- const UnicodeString text( const std::string& = "current",
+ const icu::UnicodeString text( const std::string& = "current",
bool = false, bool = false ) const {
return "\n\n";
}
@@ -1366,7 +1366,7 @@ namespace folia {
AbstractStructureElement( PROPS, d ){ classInit( a ); }
const std::string src() const { return _src; };
- const UnicodeString caption() const;
+ const icu::UnicodeString caption() const;
private:
static properties PROPS;
};
@@ -2120,7 +2120,7 @@ namespace folia {
xmlNode *xml( bool, bool=false ) const;
bool setvalue( const std::string& s ) { _value = s; return true; };
const std::string& getTextDelimiter( bool ) const { return EMPTY_STRING; };
- const UnicodeString text( const std::string& = "current",
+ const icu::UnicodeString text( const std::string& = "current",
bool = false, bool = false ) const;
private:
static properties PROPS;
@@ -2246,7 +2246,7 @@ namespace folia {
FoliaElement *getCurrent( size_t ) const;
std::vector<Suggestion*> suggestions() const;
Suggestion *suggestions( size_t ) const;
- const UnicodeString text( const std::string& = "current",
+ const icu::UnicodeString text( const std::string& = "current",
bool = false, bool = false ) const;
TextContent *textcontent( const std::string& = "current" ) const;
PhonContent *phoncontent( const std::string& = "current" ) const;
--- libfolia-1.6.orig/include/libfolia/folia_utils.h
+++ libfolia-1.6/include/libfolia/folia_utils.h
@@ -104,8 +104,8 @@ namespace folia {
NoDefaultError( const std::string& s ): std::runtime_error( "No Default found: " + s ){};
};
- UnicodeString UTF8ToUnicode( const std::string& );
- std::string UnicodeToUTF8( const UnicodeString& );
+ icu::UnicodeString UTF8ToUnicode( const std::string& );
+ std::string UnicodeToUTF8( const icu::UnicodeString& );
std::string toString( const AnnotationType::AnnotationType& );
AnnotationType::AnnotationType stringToAT( const std::string& );
--- libfolia-1.6.orig/src/folia_document.cxx
+++ libfolia-1.6/src/folia_document.cxx
@@ -403,7 +403,7 @@ namespace folia {
throw range_error( "Document index out of range" );
}
- UnicodeString Document::text( const std::string& cls,
+ icu::UnicodeString Document::text( const std::string& cls,
bool retaintok,
bool strict ) const {
return foliadoc->text( cls, retaintok, strict );
@@ -1304,7 +1304,7 @@ namespace folia {
bool goon = true;
for ( size_t i = startpos; i < mywords.size() && goon ; ++i ){
// cerr << "inner LOOP I = " << i << " myword=" << mywords[i] << endl;
- UnicodeString value;
+ icu::UnicodeString value;
if ( pat.matchannotation == BASE )
value = mywords[i]->text();
else {
@@ -1432,9 +1432,9 @@ namespace folia {
if ( pat.find( "regexp('" ) == 0 &&
pat.rfind( "')" ) == pat.length()-2 ){
string tmp = pat.substr( 8, pat.length() - 10 );
- UnicodeString us = UTF8ToUnicode( tmp );
+ icu::UnicodeString us = UTF8ToUnicode( tmp );
UErrorCode u_stat = U_ZERO_ERROR;
- RegexMatcher *matcher = new RegexMatcher(us, 0, u_stat);
+ icu::RegexMatcher *matcher = new icu::RegexMatcher(us, 0, u_stat);
if ( U_FAILURE(u_stat) ){
throw runtime_error( "failed to create a regexp matcher with '" + tmp + "'" );
}
@@ -1469,9 +1469,9 @@ namespace folia {
if ( pat.find( "regexp('" ) == 0 &&
pat.rfind( "')" ) == pat.length()-2 ){
string tmp = pat.substr( 8, pat.length() - 10 );
- UnicodeString us = UTF8ToUnicode( tmp );
+ icu::UnicodeString us = UTF8ToUnicode( tmp );
UErrorCode u_stat = U_ZERO_ERROR;
- RegexMatcher *matcher = new RegexMatcher(us, 0, u_stat);
+ icu::RegexMatcher *matcher = new icu::RegexMatcher(us, 0, u_stat);
if ( U_FAILURE(u_stat) ){
throw runtime_error( "failed to create a regexp matcher with '" + tmp + "'" );
}
@@ -1500,9 +1500,9 @@ namespace folia {
return os;
}
- bool Pattern::match( const UnicodeString& us, size_t& pos, int& gap,
+ bool Pattern::match( const icu::UnicodeString& us, size_t& pos, int& gap,
bool& done, bool& flag ) const {
- UnicodeString s = us;
+ icu::UnicodeString s = us;
// cerr << "gap = " << gap << "cursor=" << pos << " vergelijk '" << sequence[pos] << "' met '" << us << "'" << endl;
if ( matchers[pos] ){
matchers[pos]->reset( s );
--- libfolia-1.6.orig/src/folia_impl.cxx
+++ libfolia-1.6/src/folia_impl.cxx
@@ -773,7 +773,7 @@ namespace folia {
// if this is a PhonContent or it may contain PhonContent
// then return the associated phon()
// otherwise fallback to the tagname.
- UnicodeString us;
+ icu::UnicodeString us;
try {
us = text(cls);
}
@@ -859,10 +859,10 @@ namespace folia {
return _props.TEXTDELIMITER;
}
- const UnicodeString FoliaImpl::text( const string& cls,
+ const icu::UnicodeString FoliaImpl::text( const string& cls,
bool retaintok,
bool strict ) const {
- // get the UnicodeString value of underlying elements
+ // get the icu::UnicodeString value of underlying elements
// default cls="current"
#ifdef DEBUG_TEXT
cerr << "TEXT(" << cls << ") op node : " << xmltag() << " id ( " << id() << ")" << endl;
@@ -872,7 +872,7 @@ namespace folia {
}
else if ( element_id() == TextContent_t
|| element_id() == AbstractTextMarkup_t ){ // TEXTCONTAINER property
- UnicodeString result;
+ icu::UnicodeString result;
for ( const auto& d : data ){
if ( !result.isEmpty() ){
const string& delim = d->getTextDelimiter( retaintok );
@@ -889,7 +889,7 @@ namespace folia {
throw NoSuchText( "NON printable element: " + xmltag() );
}
else {
- UnicodeString result = deeptext( cls, retaintok );
+ icu::UnicodeString result = deeptext( cls, retaintok );
if ( result.isEmpty() ) {
result = stricttext( cls );
}
@@ -900,13 +900,13 @@ namespace folia {
}
}
- const UnicodeString FoLiA::text( const string& cls,
+ const icu::UnicodeString FoLiA::text( const string& cls,
bool retaintok,
bool strict ) const {
#ifdef DEBUG_TEXT
cerr << "FoLiA::TEXT(" << cls << ")" << endl;
#endif
- UnicodeString result;
+ icu::UnicodeString result;
for ( const auto& d : data ){
if ( !result.isEmpty() ){
const string& delim = d->getTextDelimiter( retaintok );
@@ -920,20 +920,20 @@ namespace folia {
return result;
}
- UnicodeString trim_space( const UnicodeString& in ){
- UnicodeString cmp = " ";
+ icu::UnicodeString trim_space( const icu::UnicodeString& in ){
+ icu::UnicodeString cmp = " ";
// cerr << "in = '" << in << "'" << endl;
- UnicodeString out;
+ icu::UnicodeString out;
int i = 0;
for( ; i < in.length(); ++i ){
- // cerr << "start: bekijk:" << UnicodeString(in[i]) << endl;
+ // cerr << "start: bekijk:" << icu::UnicodeString(in[i]) << endl;
if ( in[i] != cmp[0] ){
break;
}
}
int j = in.length()-1;
for( ; j >= 0; --j ){
- // cerr << "end: bekijk:" << UnicodeString(in[j]) << endl;
+ // cerr << "end: bekijk:" << icu::UnicodeString(in[j]) << endl;
if ( in[j] != cmp[0] ){
break;
}
@@ -944,12 +944,12 @@ namespace folia {
// cerr << "out = LEEG" << endl;
return out;
}
- out = UnicodeString( in, i, j-i+1 );
+ out = icu::UnicodeString( in, i, j-i+1 );
// cerr << "out = '" << out << "'" << endl;
return out;
}
- bool check_end( const UnicodeString& us, bool& only ){
+ bool check_end( const icu::UnicodeString& us, bool& only ){
only = false;
string tmp = UnicodeToUTF8( us );
int j = tmp.length()-1;
@@ -966,9 +966,9 @@ namespace folia {
return found_nl > 0;
}
- const UnicodeString FoliaImpl::deeptext( const string& cls,
+ const icu::UnicodeString FoliaImpl::deeptext( const string& cls,
bool retaintok ) const {
- // get the UnicodeString value of underlying elements
+ // get the icu::UnicodeString value of underlying elements
// default cls="current"
#ifdef DEBUG_TEXT
cerr << "deepTEXT(" << cls << ") op node : " << xmltag() << " id(" << id() << ")" << endl;
@@ -976,8 +976,8 @@ namespace folia {
#ifdef DEBUG_TEXT
cerr << "deeptext: node has " << data.size() << " children." << endl;
#endif
- vector<UnicodeString> parts;
- vector<UnicodeString> seps;
+ vector<icu::UnicodeString> parts;
+ vector<icu::UnicodeString> seps;
for ( const auto& child : data ) {
// try to get text dynamically from children
// skip TextContent elements
@@ -991,7 +991,7 @@ namespace folia {
cerr << "deeptext:bekijk node[" << child->xmltag() << "]"<< endl;
#endif
try {
- UnicodeString tmp = child->text( cls, retaintok, false );
+ icu::UnicodeString tmp = child->text( cls, retaintok, false );
#ifdef DEBUG_TEXT
cerr << "deeptext found '" << tmp << "'" << endl;
#endif
@@ -1018,7 +1018,7 @@ namespace folia {
}
// now construct the result;
- UnicodeString result;
+ icu::UnicodeString result;
for ( size_t i=0; i < parts.size(); ++i ) {
#ifdef DEBUG_TEXT
cerr << "part[" << i << "]='" << parts[i] << "'" << endl;
@@ -1066,14 +1066,14 @@ namespace folia {
return result;
}
- const UnicodeString FoliaElement::stricttext( const string& cls ) const {
- // get UnicodeString content of TextContent children only
+ const icu::UnicodeString FoliaElement::stricttext( const string& cls ) const {
+ // get icu::UnicodeString content of TextContent children only
// default cls="current"
return this->text(cls, false, true );
}
- const UnicodeString FoliaElement::toktext( const string& cls ) const {
- // get UnicodeString content of TextContent children only
+ const icu::UnicodeString FoliaElement::toktext( const string& cls ) const {
+ // get icu::UnicodeString content of TextContent children only
// default cls="current"
return this->text(cls, true, false );
}
@@ -1133,9 +1133,9 @@ namespace folia {
//#define DEBUG_PHON
- const UnicodeString FoliaImpl::phon( const string& cls,
+ const icu::UnicodeString FoliaImpl::phon( const string& cls,
bool strict ) const {
- // get the UnicodeString value of underlying elements
+ // get the icu::UnicodeString value of underlying elements
// default cls="current"
#ifdef DEBUG_PHON
cerr << "PHON(" << cls << ") op node : " << xmltag() << " id ( " << id() << ")" << endl;
@@ -1147,7 +1147,7 @@ namespace folia {
throw NoSuchText( "NON speakable element: " + xmltag() );
}
else {
- UnicodeString result = deepphon( cls );
+ icu::UnicodeString result = deepphon( cls );
if ( result.isEmpty() ) {
result = phoncontent(cls)->phon();
}
@@ -1158,8 +1158,8 @@ namespace folia {
}
}
- const UnicodeString FoliaImpl::deepphon( const string& cls ) const {
- // get the UnicodeString value of underlying elements
+ const icu::UnicodeString FoliaImpl::deepphon( const string& cls ) const {
+ // get the icu::UnicodeString value of underlying elements
// default cls="current"
#ifdef DEBUG_PHON
cerr << "deepPHON(" << cls << ") op node : " << xmltag() << " id(" << id() << ")" << endl;
@@ -1167,8 +1167,8 @@ namespace folia {
#ifdef DEBUG_PHON
cerr << "deepphon: node has " << data.size() << " children." << endl;
#endif
- vector<UnicodeString> parts;
- vector<UnicodeString> seps;
+ vector<icu::UnicodeString> parts;
+ vector<icu::UnicodeString> seps;
for ( const auto& child : data ) {
// try to get text dynamically from children
// skip TextContent elements
@@ -1182,7 +1182,7 @@ namespace folia {
cerr << "deepphon:bekijk node[" << child->xmltag() << "]" << endl;
#endif
try {
- UnicodeString tmp = child->phon( cls, false );
+ icu::UnicodeString tmp = child->phon( cls, false );
#ifdef DEBUG_PHON
cerr << "deepphon found '" << tmp << "'" << endl;
#endif
@@ -1202,7 +1202,7 @@ namespace folia {
}
// now construct the result;
- UnicodeString result;
+ icu::UnicodeString result;
for ( size_t i=0; i < parts.size(); ++i ) {
result += parts[i];
if ( i < parts.size()-1 ) {
@@ -1276,7 +1276,7 @@ namespace folia {
return node;
}
- TextContent *FoliaElement::setutext( const UnicodeString& txt,
+ TextContent *FoliaElement::setutext( const icu::UnicodeString& txt,
const string& cls ) {
// create a TextContent child of class 'cls'
// Default cls="current"
@@ -1300,7 +1300,7 @@ namespace folia {
return node;
}
- TextContent *FoliaElement::setutext( const UnicodeString& txt,
+ TextContent *FoliaElement::setutext( const icu::UnicodeString& txt,
int offset,
const string& cls ) {
// create a TextContent child of class 'cls'
@@ -2179,14 +2179,14 @@ namespace folia {
return result;
}
- const UnicodeString PhonContent::phon( const string& cls,
+ const icu::UnicodeString PhonContent::phon( const string& cls,
bool ) const {
- // get the UnicodeString value of underlying elements
+ // get the icu::UnicodeString value of underlying elements
// default cls="current"
#ifdef DEBUG_PHON
cerr << "PhonContent::PHON(" << cls << ") " << endl;
#endif
- UnicodeString result;
+ icu::UnicodeString result;
for ( const auto& el : data ) {
// try to get text dynamically from children
#ifdef DEBUG_PHON
@@ -2196,7 +2196,7 @@ namespace folia {
#ifdef DEBUG_PHON
cerr << "roep text(" << cls << ") aan op " << el << endl;
#endif
- UnicodeString tmp = el->text( cls );
+ icu::UnicodeString tmp = el->text( cls );
#ifdef DEBUG_PHON
cerr << "PhonContent found '" << tmp << "'" << endl;
#endif
@@ -3193,7 +3193,7 @@ namespace folia {
Word::setAttributes( args );
}
- const UnicodeString Figure::caption() const {
+ const icu::UnicodeString Figure::caption() const {
vector<FoliaElement *> v = select(Caption_t);
if ( v.empty() ) {
throw NoSuchText("caption");
@@ -3414,7 +3414,7 @@ namespace folia {
return this;
}
- const UnicodeString Correction::text( const string& cls,
+ const icu::UnicodeString Correction::text( const string& cls,
bool retaintok,
bool ) const {
#ifdef DEBUG_TEXT
@@ -3653,7 +3653,7 @@ namespace folia {
return 0;
}
- const UnicodeString XmlText::text( const string&, bool, bool ) const {
+ const icu::UnicodeString XmlText::text( const string&, bool, bool ) const {
return UTF8ToUnicode(_value);
}
@@ -3991,7 +3991,7 @@ namespace folia {
FoliaImpl::setAttributes( argl );
}
- const UnicodeString TextMarkupCorrection::text( const string& cls,
+ const icu::UnicodeString TextMarkupCorrection::text( const string& cls,
bool ret,
bool strict ) const{
if ( cls == "original" ) {
--- libfolia-1.6.orig/src/folia_utils.cxx
+++ libfolia-1.6/src/folia_utils.cxx
@@ -44,11 +44,11 @@ using namespace TiCC;
namespace folia {
- UnicodeString UTF8ToUnicode( const string& s ){
- return UnicodeString::fromUTF8( s );
+ icu::UnicodeString UTF8ToUnicode( const string& s ){
+ return icu::UnicodeString::fromUTF8( s );
}
- string UnicodeToUTF8( const UnicodeString& s ){
+ string UnicodeToUTF8( const icu::UnicodeString& s ){
string result;
s.toUTF8String(result);
return result;
--- End Message ---