From 28b13b7e8e6e1e4fa1593f0dfb1c37569f2f90a8 Mon Sep 17 00:00:00 2001 From: Parabola Date: Tue, 15 Nov 2011 14:34:01 +0000 Subject: Tue Nov 15 14:33:58 UTC 2011 --- extra/kdelibs/kdelibs-nepomuk-unicode.diff | 65 ------------------------------ 1 file changed, 65 deletions(-) delete mode 100644 extra/kdelibs/kdelibs-nepomuk-unicode.diff (limited to 'extra/kdelibs') diff --git a/extra/kdelibs/kdelibs-nepomuk-unicode.diff b/extra/kdelibs/kdelibs-nepomuk-unicode.diff deleted file mode 100644 index 1c85d6fc9..000000000 --- a/extra/kdelibs/kdelibs-nepomuk-unicode.diff +++ /dev/null @@ -1,65 +0,0 @@ -diff --git a/nepomuk/query/querybuilderdata_p.h b/nepomuk/query/querybuilderdata_p.h -index 055482e..3880e13 100644 ---- a/nepomuk/query/querybuilderdata_p.h -+++ b/nepomuk/query/querybuilderdata_p.h -@@ -32,6 +32,28 @@ - #include "query_p.h" - #include "groupterm_p.h" - -+namespace { -+/// A hack to avoid passing extended chars to the bif:search_excerpts method which cannot handle -+/// utf8 chars which use more than one char, ie. wide chars. -+/// Thus, we simply truncate each term at the first wide char. -+QStringList stripExtendedCharsHack(const QStringList& terms) { -+ QStringList newTerms; -+ foreach(const QString& term, terms) { -+ int i = 0; -+ while(i < term.length()) { -+ if(term[i].unicode() > 0x7f) { -+ break; -+ } -+ ++i; -+ } -+ if(i > 0) { -+ newTerms.append(term.left(i)); -+ } -+ } -+ return newTerms; -+} -+} -+ - namespace Nepomuk { - namespace Query { - class QueryBuilderData -@@ -246,16 +268,23 @@ namespace Nepomuk { - for( QHash::const_iterator it = m_fullTextSearchTerms.constBegin(); - it != m_fullTextSearchTerms.constEnd(); ++it ) { - const QString& varName = it.key(); -- const QStringList& terms = it.value(); -- // bif:search_excerpt wants a vector of all search terms -- excerptParts -- << QString::fromLatin1("bif:search_excerpt(bif:vector(bif:charset_recode('%1', '_WIDE_', 'UTF-8')), %2)") -- .arg( terms.join(QLatin1String("','")), -- varName ); -+ const QStringList terms = stripExtendedCharsHack(it.value()); -+ if(terms.count()) { -+ // bif:search_excerpt wants a vector of all search terms -+ excerptParts -+ << QString::fromLatin1("bif:search_excerpt(bif:vector('%1'), %2)") -+ .arg( terms.join(QLatin1String("','")), -+ varName ); -+ } - } - -- return QString::fromLatin1("(bif:concat(%1)) as ?_n_f_t_m_ex_") -- .arg(excerptParts.join(QLatin1String(","))); -+ if(excerptParts.count()) { -+ return QString::fromLatin1("(bif:concat(%1)) as ?_n_f_t_m_ex_") -+ .arg(excerptParts.join(QLatin1String(","))); -+ } -+ else { -+ return QString(); -+ } - } - else { - return QString(); \ No newline at end of file -- cgit v1.2.3-54-g00ecf