summaryrefslogtreecommitdiff
path: root/extra/kdelibs
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2011-10-10 23:14:36 +0000
committerroot <root@rshg054.dnsready.net>2011-10-10 23:14:36 +0000
commitcbcf42aba84733e1b9072f5320519c99bf8c0ac7 (patch)
treea329670cb53aabe42cc50ef6cda1e534d4dfbabf /extra/kdelibs
parent8e372cc6207b56516c1facdaeb92d15c4716d8a2 (diff)
Mon Oct 10 23:14:36 UTC 2011
Diffstat (limited to 'extra/kdelibs')
-rw-r--r--extra/kdelibs/PKGBUILD12
-rw-r--r--extra/kdelibs/kdelibs-nepomuk-unicode.diff65
2 files changed, 73 insertions, 4 deletions
diff --git a/extra/kdelibs/PKGBUILD b/extra/kdelibs/PKGBUILD
index 24ac8c85c..99360d885 100644
--- a/extra/kdelibs/PKGBUILD
+++ b/extra/kdelibs/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 139893 2011-10-05 19:09:04Z andrea $
+# $Id: PKGBUILD 140212 2011-10-09 17:04:53Z ronald $
# Maintainer: Andrea Scarpino <andrea@archlinux.org
# Contributor: Pierre Schmitz <pierre@archlinux.de>
pkgname=kdelibs
pkgver=4.7.2
-pkgrel=1
+pkgrel=2
pkgdesc="KDE Core Libraries"
arch=('i686' 'x86_64')
url='http://www.kde.org'
@@ -19,10 +19,12 @@ makedepends=('pkgconfig' 'cmake' 'automoc4' 'intltool' 'avahi' 'libgl'
replaces=('kdelibs-experimental')
install='kdelibs.install'
source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2"
- 'kde-applications-menu.patch' 'archlinux-menu.patch')
+ 'kde-applications-menu.patch' 'archlinux-menu.patch'
+ 'kdelibs-nepomuk-unicode.diff')
sha1sums=('4b074633cbf69752fda96018514ee771efe8f18b'
'86ee8c8660f19de8141ac99cd6943964d97a1ed7'
- '63a850ab4196b9d06934f2b4a13acd9f7739bc67')
+ '63a850ab4196b9d06934f2b4a13acd9f7739bc67'
+ 'e24aae17ef0d83085199ad7c7623afef9919b8ff')
build() {
cd "${srcdir}"/${pkgname}-${pkgver}
@@ -31,6 +33,8 @@ build() {
patch -p1 -i "${srcdir}"/kde-applications-menu.patch
# add Archlinux menu entry
patch -p1 -i "${srcdir}"/archlinux-menu.patch
+ # nepomuk unicode character fix
+ patch -p1 -i "${srcdir}"/kdelibs-nepomuk-unicode.diff
cd "${srcdir}"
mkdir build
diff --git a/extra/kdelibs/kdelibs-nepomuk-unicode.diff b/extra/kdelibs/kdelibs-nepomuk-unicode.diff
new file mode 100644
index 000000000..1c85d6fc9
--- /dev/null
+++ b/extra/kdelibs/kdelibs-nepomuk-unicode.diff
@@ -0,0 +1,65 @@
+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<QString, QStringList>::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