summaryrefslogtreecommitdiff
path: root/community/parcellite
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2011-08-12 23:14:35 +0000
committerroot <root@rshg054.dnsready.net>2011-08-12 23:14:35 +0000
commit3b2bf66355e8254bc2f033dab2dfea9e2978fa4d (patch)
tree71995991b30b0bfc7deb0c92f1da969bbfd91ec7 /community/parcellite
parenteddbc98aa28d38b35833cfb1a4a3cf632c9f2b47 (diff)
Fri Aug 12 23:14:35 UTC 2011
Diffstat (limited to 'community/parcellite')
-rw-r--r--community/parcellite/PKGBUILD11
-rw-r--r--community/parcellite/history_menu_crash_patch39
2 files changed, 46 insertions, 4 deletions
diff --git a/community/parcellite/PKGBUILD b/community/parcellite/PKGBUILD
index 2685f08d3..71b4f568b 100644
--- a/community/parcellite/PKGBUILD
+++ b/community/parcellite/PKGBUILD
@@ -1,21 +1,24 @@
-# $Id: PKGBUILD 53903 2011-08-09 19:26:51Z spupykin $
+# $Id: PKGBUILD 54009 2011-08-11 18:03:17Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Alexander Fehr <pizzapunk gmail com>
pkgname=parcellite
pkgver=1.0.2rc3
-pkgrel=1
+pkgrel=2
pkgdesc="Lightweight GTK+ clipboard manager"
arch=('i686' 'x86_64')
url="http://parcellite.sourceforge.net/"
license=('GPL3')
depends=('gtk2')
makedepends=('intltool')
-source=(http://downloads.sourceforge.net/parcellite/parcellite-$pkgver.tar.gz)
-md5sums=('3fe1196cc2bb3f34d57d0e34e10449b3')
+source=(http://downloads.sourceforge.net/parcellite/parcellite-$pkgver.tar.gz
+ history_menu_crash_patch)
+md5sums=('3fe1196cc2bb3f34d57d0e34e10449b3'
+ '8fd6e07fa907865ca4db7b3e13441ce6')
build() {
cd "$srcdir/parcellite-$pkgver"
+ (cd src && patch -p0 <$srcdir/history_menu_crash_patch)
./configure --prefix=/usr --sysconfdir=/etc
make
make DESTDIR="$pkgdir" install
diff --git a/community/parcellite/history_menu_crash_patch b/community/parcellite/history_menu_crash_patch
new file mode 100644
index 000000000..961106839
--- /dev/null
+++ b/community/parcellite/history_menu_crash_patch
@@ -0,0 +1,39 @@
+Index: main.c
+===================================================================
+--- main.c (revision 232)
++++ main.c (working copy)
+@@ -1199,24 +1199,28 @@
+ {
+ GString* string = g_string_new((gchar*)element->data);
+ /* Ellipsize text */
+- if (string->len > prefs.item_length)
++ glong len = g_utf8_strlen(string->str, string->len);
++ if (len > prefs.item_length)
+ {
+ switch (prefs.ellipsize)
+ {
+ case PANGO_ELLIPSIZE_START:
+- string = g_string_erase(string, 0, string->len-(prefs.item_length));
++ string = g_string_erase(string, 0, g_utf8_offset_to_pointer(string->str, len - prefs.item_length) - string->str);
+ string = g_string_prepend(string, "...");
+ break;
+ case PANGO_ELLIPSIZE_MIDDLE:
+- string = g_string_erase(string, (prefs.item_length/2), string->len-(prefs.item_length));
+- string = g_string_insert(string, (string->len/2), "...");
++ ; /* to avoid wierd gcc error */
++ gchar* p1 = g_utf8_offset_to_pointer(string->str, prefs.item_length / 2);
++ gchar* p2 = g_utf8_offset_to_pointer(string->str, len - prefs.item_length / 2);
++ string = g_string_erase(string, p1 - string->str, p2 - p1);
++ string = g_string_insert(string, p1 - string->str, "...");
+ break;
+ case PANGO_ELLIPSIZE_END:
+- string = g_string_truncate(string, prefs.item_length);
++ string = g_string_truncate(string, g_utf8_offset_to_pointer(string->str, prefs.item_length) - string->str);
+ string = g_string_append(string, "...");
+ break;
+ }
+- }
++ }
+ /* Remove control characters */
+ gsize i = 0;
+ while (i < string->len)