summaryrefslogtreecommitdiff
path: root/community/parcellite
diff options
context:
space:
mode:
Diffstat (limited to 'community/parcellite')
-rw-r--r--community/parcellite/ChangeLog17
-rw-r--r--community/parcellite/PKGBUILD26
-rw-r--r--community/parcellite/history_menu_crash_patch39
3 files changed, 82 insertions, 0 deletions
diff --git a/community/parcellite/ChangeLog b/community/parcellite/ChangeLog
new file mode 100644
index 000000000..aff4a9e4b
--- /dev/null
+++ b/community/parcellite/ChangeLog
@@ -0,0 +1,17 @@
+2009-05-05 Biru Ionut <biru.ionut at gmail.com>
+ * parcellite-0.9.1-1:
+ New upstream release.
+
+2008-12-14 Alexander Fehr <pizzapunk gmail com>
+
+ * parcellite-0.9-1:
+ New upstream release.
+
+2008-08-14 Alexander Fehr <pizzapunk gmail com>
+
+ * parcellite-0.8-1:
+ New upstream release.
+ Changed url.
+ Added make dependency on intltool.
+ Changed download location to downloads.sourceforge.net.
+ Added ChangeLog.
diff --git a/community/parcellite/PKGBUILD b/community/parcellite/PKGBUILD
new file mode 100644
index 000000000..7d7a812ff
--- /dev/null
+++ b/community/parcellite/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 55624 2011-09-16 13:23:02Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Alexander Fehr <pizzapunk gmail com>
+
+pkgname=parcellite
+pkgver=1.0.2rc5
+pkgrel=1
+pkgdesc="Lightweight GTK+ clipboard manager"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://parcellite.sourceforge.net/"
+license=('GPL3')
+depends=('gtk2')
+makedepends=('intltool')
+source=(http://downloads.sourceforge.net/parcellite/parcellite-$pkgver.tar.gz
+ history_menu_crash_patch)
+md5sums=('e7c818b93c7303daadf6093c6ebe79f9'
+ '8fd6e07fa907865ca4db7b3e13441ce6')
+
+build() {
+ cd "$srcdir/parcellite-$pkgver"
+ (cd src && patch -p0 <$srcdir/history_menu_crash_patch)
+ make distclean
+ ./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)