diff options
author | Loui Chang | 2015-06-24 10:43:42 -0400 |
---|---|---|
committer | Loui Chang | 2015-06-24 10:43:42 -0400 |
commit | fd54ad0f7581574d7b4827c4f4b20022c6382087 (patch) | |
tree | 8bc075c43e468e29b577aaa3a7e1455277546298 | |
download | aur-fd54ad0f7581574d7b4827c4f4b20022c6382087.tar.gz |
rolo: Initial commit
Signed-off-by: Loui Chang <louipc.ist@gmail.com>
-rw-r--r-- | .SRCINFO | 31 | ||||
-rw-r--r-- | PKGBUILD | 81 | ||||
-rw-r--r-- | compare-in-utf-8.diff | 115 | ||||
-rw-r--r-- | display-multiple-addresses.diff | 86 | ||||
-rw-r--r-- | display-types.diff | 87 | ||||
-rw-r--r-- | drop-libform.diff | 14 | ||||
-rw-r--r-- | drop-rolorc-manpage.diff | 19 | ||||
-rw-r--r-- | manpage-close-list.diff | 23 | ||||
-rw-r--r-- | refresh-index-empty.diff | 19 | ||||
-rw-r--r-- | use-ncursesw.diff | 20 | ||||
-rw-r--r-- | use-usr-bin-editor.diff | 31 | ||||
-rw-r--r-- | utf8-in-index.diff | 85 |
12 files changed, 611 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..2f072a1cda91 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,31 @@ +pkgbase = rolo + pkgdesc = Tracks your contacts with vCards and displays them to you with a text-based menu. + pkgver = 011 + pkgrel = 4 + url = http://rolo.sourceforge.net + arch = i686 + arch = x86_64 + license = GPL + depends = ncurses + depends = libvc + source = http://sourceforge.net/projects/rolo/files/rolo/011/rolo-011.tar.gz + source = manpage-close-list.diff + source = refresh-index-empty.diff + source = drop-rolorc-manpage.diff + source = use-ncursesw.diff + source = drop-libform.diff + md5sums = c7478cdcc8179cb01755565901135e5e + md5sums = 3a944bf930363d585f1fe5b7201e6757 + md5sums = dc68661245692efb127b29f64aa9cc98 + md5sums = 2013dc0709425ef761e8f90e85b0b6a2 + md5sums = 69ca99eff67e1cc7f7231fec3bb72ee4 + md5sums = dc493c8f214a17e5a9e954ab052547f6 + sha256sums = 83edfb7f2de66556fb8fb516ff40dc152ae3af1f19876086ad9ec23a4abbe0e3 + sha256sums = 383fb7aa07d0f0db76c7a03a3e0967a559660861a025df1992e30e35d70db803 + sha256sums = ac90483da10ab6da25e4fd696cd3a499246eedcc314125cbea54550bf64b69b6 + sha256sums = 49f2fc9760756fd25f48078307dfa8121d630053d6cde19fcfb6c6e9d11df70f + sha256sums = 7373f0a5a8c1d9a08cd424903563d03a3fb040d4c54c786ad23956eedf4448c5 + sha256sums = ca0922907a9e4cc41c3c941c201b59926948b05d7e294f03430ceec643db0aaa + +pkgname = rolo + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..9d77fe02ba79 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,81 @@ +# Maintainer: Loui Chang <base64:bG91aXBjLmlzdEBnbWFpbC5jb20=> +# Contributor: Matthias Hueser <mail at mhueser dot de> +# Contributor: Daniel Griffiths <ghost1227 at archlinux dot us> + +pkgname=rolo +pkgver=011 +pkgrel=4 +pkgdesc="Tracks your contacts with vCards and displays them to you with + a text-based menu." +arch=('i686' 'x86_64') +url="http://rolo.sourceforge.net" +license=('GPL') +depends=('ncurses' 'libvc') +source=(http://sourceforge.net/projects/rolo/files/rolo/011/rolo-011.tar.gz) + +# Patches copied from +# https://anonscm.debian.org/cgit/users/rafael/deb-pkg/rolo.git +# Commented out ones I thought were a bit overreaching + +source+=( + manpage-close-list.diff + refresh-index-empty.diff + drop-rolorc-manpage.diff +# display-types.diff +# use-usr-bin-editor.diff +# display-multiple-addresses.diff + use-ncursesw.diff +# utf8-in-index.diff + drop-libform.diff +# compare-in-utf-8.diff +) + +build() { + cd $srcdir/$pkgname-$pkgver + + patch -p1 < ../manpage-close-list.diff + patch -p1 < ../refresh-index-empty.diff + patch -p1 < ../drop-rolorc-manpage.diff +# patch -p1 < ../display-types.diff +# patch -p1 < ../use-usr-bin-editor.diff +# patch -p1 < ../display-multiple-addresses.diff + patch -p1 < ../use-ncursesw.diff +# patch -p1 < ../utf8-in-index.diff + patch -p1 < ../drop-libform.diff +# patch -p1 < ../compare-in-utf-8.diff + + ./configure --prefix=/usr --mandir=/usr/share/man + make +} + +package() { + cd $srcdir/$pkgname-$pkgver + make DESTDIR="$pkgdir" install +} + +md5sums=( + 'c7478cdcc8179cb01755565901135e5e' + '3a944bf930363d585f1fe5b7201e6757' + 'dc68661245692efb127b29f64aa9cc98' + '2013dc0709425ef761e8f90e85b0b6a2' +# '2f042e2e6e2147901b83b1bf99600a96' +# '6dbc3c454650ec6b6b9ef75f65154e4a' +# 'd7629629831e674d65b4cc8e1696c50c' + '69ca99eff67e1cc7f7231fec3bb72ee4' +# 'b7fcb4b3030fb044062fa79f822cec01' + 'dc493c8f214a17e5a9e954ab052547f6' +# '0d7e72bfe133e561be1bde232d59e153' +) +sha256sums=( + '83edfb7f2de66556fb8fb516ff40dc152ae3af1f19876086ad9ec23a4abbe0e3' + '383fb7aa07d0f0db76c7a03a3e0967a559660861a025df1992e30e35d70db803' + 'ac90483da10ab6da25e4fd696cd3a499246eedcc314125cbea54550bf64b69b6' + '49f2fc9760756fd25f48078307dfa8121d630053d6cde19fcfb6c6e9d11df70f' +# '2569d68f88488e599929df01a14c8ab5119d3b31cfcc81bcd4f32998d82b0015' +# '2a5bb28f6e53f10f9cfb9dac6e80c65c41e4a68535c5881c8f5f10adb6e04ae5' +# 'ce338ba0afb65e705910c206f4d555bafef6a78ba7d3ed4a0fbc8056fcc370e1' + '7373f0a5a8c1d9a08cd424903563d03a3fb040d4c54c786ad23956eedf4448c5' +# '56825f5d7d791bbbc1c01290708eaf82c6ebfe710a20f037ee91446dc99bec4c' + 'ca0922907a9e4cc41c3c941c201b59926948b05d7e294f03430ceec643db0aaa' +# '4a658c26ca8eb6207faa3c439d52dbf3462f6f3eb79d8b22ea9ba00d6ceb755c' +) diff --git a/compare-in-utf-8.diff b/compare-in-utf-8.diff new file mode 100644 index 000000000000..2b65b178460d --- /dev/null +++ b/compare-in-utf-8.diff @@ -0,0 +1,115 @@ +Correctly order the names in the index when they contain UTF-8 +characters. Use libunac for converting the accented characters in +UTF-8 into plain ASCII. + + -- Rafael Laboissiere <rafael@debian.org> Sat, 21 Feb 2009 19:18:36 +0100 + +--- a/configure.ac ++++ b/configure.ac +@@ -22,6 +22,10 @@ + LIBS="$LIBS $(pkg-config glib-2.0 --libs)" + CFLAGS="$CFLAGS $(pkg-config glib-2.0 --cflags)" + ++# Libunac settings ++LIBS="$LIBS $(pkg-config unac --libs)" ++CFLAGS="$CFLAGS $(pkg-config unac --cflags)" ++ + # Checks for header files. + AC_HEADER_STDC + +--- a/src/entry.c ++++ b/src/entry.c +@@ -25,6 +25,7 @@ + #include <string.h> + #include <vc.h> + #include <glib/gunicode.h> ++#include <unac.h> + + #define MENU_PRINT_FORMAT_SIZE 80 + +@@ -175,15 +176,43 @@ + entry_node **ena = NULL; + entry_node **enb = NULL; + ++ char* ena_desc = NULL; ++ char* enb_desc = NULL; ++ char* pure_a = NULL; ++ char* pure_b = NULL; ++ int length[1] = {0}; ++ int a_alloc = 1; ++ int b_alloc = 1; ++ + ena = (entry_node **) a; + enb = (entry_node **) b; + +- ret_val = cmp_given_n ((*ena)->description, (*enb)->description); ++ ena_desc = (*ena)->description; ++ enb_desc = (*enb)->description; ++ ++ /* Try to convert the strings from UTF-8 and fall back to the original ++ strings if it fails */ ++ if (unac_string ("UTF-8", ena_desc, strlen (ena_desc), &pure_a, length)) { ++ pure_a = ena_desc; ++ a_alloc = 0; ++ } ++ ++ if (unac_string ("UTF-8", enb_desc, strlen (enb_desc), &pure_b, length)) { ++ pure_b = enb_desc; ++ b_alloc = 0; ++ } ++ ++ ret_val = cmp_given_n (pure_a, pure_b); + if (0 == ret_val) + { +- ret_val = strcmp ((*ena)->description, (*enb)->description); ++ ret_val = strcmp (pure_a, pure_b); + } + ++ if (a_alloc) ++ free (pure_a); ++ if (b_alloc) ++ free (pure_b); ++ + return ret_val; + } + +@@ -197,10 +226,38 @@ + entry_node **ena = NULL; + entry_node **enb = NULL; + ++ char* ena_desc = NULL; ++ char* enb_desc = NULL; ++ char* pure_a = NULL; ++ char* pure_b = NULL; ++ int length[1] = {0}; ++ int a_alloc = 1; ++ int b_alloc = 1; ++ + ena = (entry_node **) a; + enb = (entry_node **) b; + +- ret_val = strcmp ((*ena)->description, (*enb)->description); ++ ena_desc = (*ena)->description; ++ enb_desc = (*enb)->description; ++ ++ /* Try to convert the strings from UTF-8 and fall back to the original ++ strings if it fails */ ++ if (unac_string ("UTF-8", ena_desc, strlen (ena_desc), &pure_a, length)) { ++ pure_a = ena_desc; ++ a_alloc = 0; ++ } ++ ++ if (unac_string ("UTF-8", enb_desc, strlen (enb_desc), &pure_b, length)) { ++ pure_b = enb_desc; ++ b_alloc = 0; ++ } ++ ++ ret_val = strcmp (pure_a, pure_b); ++ ++ if (a_alloc) ++ free (pure_a); ++ if (b_alloc) ++ free (pure_b); + + return ret_val; + } diff --git a/display-multiple-addresses.diff b/display-multiple-addresses.diff new file mode 100644 index 000000000000..444673506e13 --- /dev/null +++ b/display-multiple-addresses.diff @@ -0,0 +1,86 @@ +Display multiple addresses present in a vCard, along with their "TYPE" arguments + + -- Rafael Laboissiere <rafael@debian.org> Sat, 20 Sep 2008 21:35:22 +0200 + +--- a/src/view.c ++++ b/src/view.c +@@ -226,6 +226,8 @@ + view_geo () + { + vc_component *vc = NULL; ++ vc_component_param *vcp = NULL; ++ char *type = NULL; + char *str = NULL; + char *val = NULL; + int x = 0; +@@ -261,38 +263,46 @@ + + wprintw (sub, "\n"); + +- vc = vc_get_next_by_name (g_v, VC_ADDRESS); +- val = vc_get_value (vc); ++ vc = g_v; ++ while (vc = vc_get_next_by_name (vc, VC_ADDRESS)) { + +- str = get_val_struct_part (val, ADR_PO_BOX); +- wprintw (sub, "Post Office Box : %s\n", str ? str : ""); +- free (str); ++ vcp = vc ? vc_param_get_by_name (vc_get_param (vc), "type") : NULL; ++ type = vcp ? vc_param_get_value (vcp) : NULL; ++ wprintw (sub, type ? "[%s]\n" : "%s", type ? type : ""); + +- str = get_val_struct_part (val, ADR_EXT_ADDRESS); +- wprintw (sub, "Extended Address : %s\n", str ? str : ""); +- free (str); ++ val = vc_get_value (vc); + +- str = get_val_struct_part (val, ADR_STREET); +- wprintw (sub, "Street Address : %s\n", str ? str : ""); +- free (str); ++ str = get_val_struct_part (val, ADR_PO_BOX); ++ wprintw (sub, "Post Office Box : %s\n", str ? str : ""); ++ free (str); + +- str = get_val_struct_part (val, ADR_LOCALITY); +- wprintw (sub, "Locality : %s\n", str ? str : ""); +- free (str); ++ str = get_val_struct_part (val, ADR_EXT_ADDRESS); ++ wprintw (sub, "Extended Address : %s\n", str ? str : ""); ++ free (str); + +- str = get_val_struct_part (val, ADR_REGION); +- wprintw (sub, "Region : %s\n", str ? str : ""); +- free (str); ++ str = get_val_struct_part (val, ADR_STREET); ++ wprintw (sub, "Street Address : %s\n", str ? str : ""); ++ free (str); + +- str = get_val_struct_part (val, ADR_POSTAL_CODE); +- wprintw (sub, "Postal Code : %s\n", str ? str : ""); +- free (str); ++ str = get_val_struct_part (val, ADR_LOCALITY); ++ wprintw (sub, "Locality : %s\n", str ? str : ""); ++ free (str); + +- str = get_val_struct_part (val, ADR_COUNTRY); +- wprintw (sub, "Country : %s\n", str ? str : ""); +- free (str); ++ str = get_val_struct_part (val, ADR_REGION); ++ wprintw (sub, "Region : %s\n", str ? str : ""); ++ free (str); ++ ++ str = get_val_struct_part (val, ADR_POSTAL_CODE); ++ wprintw (sub, "Postal Code : %s\n", str ? str : ""); ++ free (str); ++ ++ str = get_val_struct_part (val, ADR_COUNTRY); ++ wprintw (sub, "Country : %s\n", str ? str : ""); ++ free (str); ++ ++ wprintw (sub, "\n"); ++ } + +- wprintw (sub, "\n"); + touchwin (win); + wrefresh (sub); + wrefresh (win); diff --git a/display-types.diff b/display-types.diff new file mode 100644 index 000000000000..6146c8e61fc9 --- /dev/null +++ b/display-types.diff @@ -0,0 +1,87 @@ +Display the value of "TYPE" attributes for vCard fields that have such +attribute (closes: #442457) + + -- Rafael Laboissiere <rafael@debian.org> Mon, 30 Jun 2008 16:46:12 +0200 + +Index: rolo-011.dfsg.1/src/view.c +=================================================================== +--- rolo-011.dfsg.1.orig/src/view.c 2008-06-30 16:50:13.000000000 +0200 ++++ rolo-011.dfsg.1/src/view.c 2008-06-30 16:50:23.000000000 +0200 +@@ -305,10 +305,14 @@ + view_tel () + { + vc_component *vc = NULL; ++ vc_component_param *vcp = NULL; + char *val = NULL; ++ char *type = NULL; ++ char fmt [80]; ++ char tmp [80]; + int x = 0; + int y = 0; +- int i = 0; ++ int len = -1; + + g_mode = VIEW_TEL; + +@@ -322,20 +326,53 @@ + wstandend (sub); + wmove (sub, 3, 0); + +- for (i = 1, vc = g_v; i <= 5; i++) ++ len = -1; ++ vc = g_v; ++ while (vc = vc_get_next_by_name (vc, VC_TELEPHONE)) ++ { ++ vcp = vc ? vc_param_get_by_name (vc_get_param (vc), "type") : NULL; ++ if (vcp) ++ { ++ type = vc_param_get_value (vcp); ++ if ((len < 0) | (len < strlen (type))) ++ len = strlen (type) + 2; /* take parentheses into account */ ++ } ++ } ++ ++ vc = g_v; ++ while (vc = vc_get_next_by_name (vc, VC_TELEPHONE)) + { +- vc = vc_get_next_by_name (vc, VC_TELEPHONE); +- val = vc_get_value (vc); +- wprintw (sub, "Telephone #%i : %s\n", i, val ? val : ""); ++ vcp = vc ? vc_param_get_by_name (vc_get_param (vc), "type") : NULL; ++ type = vcp ? vc_param_get_value (vcp) : NULL; ++ val = vc ? vc_get_value (vc) : NULL; ++ snprintf (fmt, 79, "Telephone %%%ds : %%s\n", len); ++ snprintf (tmp, 79, type ? "(%s)" : "", type); ++ wprintw (sub, fmt, tmp, val ? val : ""); + } + + wprintw (sub, "\n"); + +- for (i = 1, vc = g_v; i <= 5; i++) ++ len = -1; ++ vc = g_v; ++ while (vc = vc_get_next_by_name (vc, VC_EMAIL)) ++ { ++ vcp = vc ? vc_param_get_by_name (vc_get_param (vc), "type") : NULL; ++ if (vcp) { ++ type = vc_param_get_value (vcp); ++ if ((len < 0) | (len < strlen (type))) ++ len = strlen (type) + 2; /* take parentheses into account */ ++ } ++ } ++ ++ vc = g_v; ++ while (vc = vc_get_next_by_name (vc, VC_EMAIL)) + { +- vc = vc_get_next_by_name (vc, VC_EMAIL); +- val = vc_get_value (vc); +- wprintw (sub, "Email Address #%i : %s\n", i, val ? val : ""); ++ vcp = vc ? vc_param_get_by_name (vc_get_param (vc), "type") : NULL; ++ type = vcp ? vc_param_get_value (vcp) : NULL; ++ val = vc ? vc_get_value (vc) : NULL; ++ snprintf (fmt, 79, "Email Address %%%ds : %%s\n", len); ++ snprintf (tmp, 79, type ? "(%s)" : "", type); ++ wprintw (sub, fmt, tmp, val ? val : ""); + } + + wprintw (sub, "\n"); diff --git a/drop-libform.diff b/drop-libform.diff new file mode 100644 index 000000000000..93427a432a85 --- /dev/null +++ b/drop-libform.diff @@ -0,0 +1,14 @@ +Avoid linking against libformw. This was indicated by dpkg-shlibdeps. + + -- Rafael Laboissiere <rafael@debian.org> Fri, 13 Feb 2009 18:22:28 +0100 + +--- a/configure.ac ++++ b/configure.ac +@@ -16,7 +16,6 @@ + AC_CHECK_LIB(vc, vc_new) + AC_CHECK_LIB(ncursesw, newwin) + AC_CHECK_LIB(menuw, new_menu) +-AC_CHECK_LIB(formw, new_form) + CFLAGS="$CFLAGS -I/usr/include/ncursesw/" + + # Glib settings diff --git a/drop-rolorc-manpage.diff b/drop-rolorc-manpage.diff new file mode 100644 index 000000000000..cbb1d5ddb7d5 --- /dev/null +++ b/drop-rolorc-manpage.diff @@ -0,0 +1,19 @@ +Remove the references to ~/.rolorc in the man page. This file is +not used by rolo and the mention to it in the man page is +probably a mistake from the upstream author (closes: #421926). + + -- Rafael Laboissiere <rafael@debian.org> Mon, 30 Jun 2008 16:46:12 +0200 + +Index: rolo-011.dfsg.1/doc/rolo.1 +=================================================================== +--- rolo-011.dfsg.1.orig/doc/rolo.1 2008-06-30 16:49:08.000000000 +0200 ++++ rolo-011.dfsg.1/doc/rolo.1 2008-06-30 16:49:14.000000000 +0200 +@@ -45,8 +45,6 @@ + .El + .Sh FILES + .Bl -tag -width "~/.rolo/contacts.vcf" -compact +-.It Pa ~/.rolo/rolorc +-Rolo configuration file. + .It Pa ~/.rolo/contacts.vcf + Default data file that rolo reads upon startup. + .El diff --git a/manpage-close-list.diff b/manpage-close-list.diff new file mode 100644 index 000000000000..ba0f1b3a55af --- /dev/null +++ b/manpage-close-list.diff @@ -0,0 +1,23 @@ +Close unended lists + + -- Rafael Laboissiere <rafael@debian.org> Mon, 30 Jun 2008 16:46:12 +0200 + +Index: rolo-011.dfsg.1/doc/rolo.1 +=================================================================== +--- rolo-011.dfsg.1.orig/doc/rolo.1 2008-06-30 16:47:37.000000000 +0200 ++++ rolo-011.dfsg.1/doc/rolo.1 2008-06-30 16:47:53.000000000 +0200 +@@ -42,12 +42,14 @@ + to invoke when displaying contact entries in advanced edit. If + ROLO_EDITOR is not set, then EDITOR is used. If EDITOR is also not + set, the default value of vi is used. ++.El + .Sh FILES + .Bl -tag -width "~/.rolo/contacts.vcf" -compact + .It Pa ~/.rolo/rolorc + Rolo configuration file. + .It Pa ~/.rolo/contacts.vcf + Default data file that rolo reads upon startup. ++.El + .Sh SEE ALSO + .Xr vi 1 + .Sh AUTHORS diff --git a/refresh-index-empty.diff b/refresh-index-empty.diff new file mode 100644 index 000000000000..3d589550a173 --- /dev/null +++ b/refresh-index-empty.diff @@ -0,0 +1,19 @@ +Avoid a segmentation fault when deleting a record in a vcf file containing +that single record (closes: #415737) + + -- Rafael Laboissiere <rafael@debian.org> Mon, 30 Jun 2008 16:46:12 +0200 + +Index: rolo-011.dfsg.1/src/index.c +=================================================================== +--- rolo-011.dfsg.1.orig/src/index.c 2008-06-30 16:48:31.000000000 +0200 ++++ rolo-011.dfsg.1/src/index.c 2008-06-30 16:48:37.000000000 +0200 +@@ -616,7 +616,8 @@ + + items = menu_items (menu); + current_index = current_index >= count ? count : current_index; +- set_current_item (menu, items[current_index]); ++ if (items != NULL) ++ set_current_item (menu, items[current_index]); + } + + /*************************************************************************** diff --git a/use-ncursesw.diff b/use-ncursesw.diff new file mode 100644 index 000000000000..aae3af13ee06 --- /dev/null +++ b/use-ncursesw.diff @@ -0,0 +1,20 @@ +Use libncursesw instead of libncurses, in order to get UTF-8 support + + -- Rafael Laboissiere <rafael@debian.org> Thu, 12 Feb 2009 00:22:58 +0100 + +--- a/configure.ac ++++ b/configure.ac +@@ -14,9 +14,10 @@ + + # Checks for libraries. + AC_CHECK_LIB(vc, vc_new) +-AC_CHECK_LIB(ncurses, newwin) +-AC_CHECK_LIB(menu, new_menu) +-AC_CHECK_LIB(form, new_form) ++AC_CHECK_LIB(ncursesw, newwin) ++AC_CHECK_LIB(menuw, new_menu) ++AC_CHECK_LIB(formw, new_form) ++CFLAGS="$CFLAGS -I/usr/include/ncursesw/" + + # Checks for header files. + AC_HEADER_STDC diff --git a/use-usr-bin-editor.diff b/use-usr-bin-editor.diff new file mode 100644 index 000000000000..f3944f513275 --- /dev/null +++ b/use-usr-bin-editor.diff @@ -0,0 +1,31 @@ +Use /usr/bin/editor instead of vi as the default editor when EDITOR and +ROLO_EDITOR environment variables are not defined. + + -- Rafael Laboissiere <rafael@debian.org> Sun, 13 Jul 2008 17:51:18 +0200 + +Index: rolo-011.dfsg.1/doc/rolo.1 +=================================================================== +--- rolo-011.dfsg.1.orig/doc/rolo.1 2008-07-13 17:47:54.000000000 +0200 ++++ rolo-011.dfsg.1/doc/rolo.1 2008-07-13 17:48:07.000000000 +0200 +@@ -41,7 +41,7 @@ + If ROLO_EDITOR is set, its value is used as the name of the program + to invoke when displaying contact entries in advanced edit. If + ROLO_EDITOR is not set, then EDITOR is used. If EDITOR is also not +-set, the default value of vi is used. ++set, the default value of /usr/bin/editor is used. + .El + .Sh FILES + .Bl -tag -width "~/.rolo/contacts.vcf" -compact +Index: rolo-011.dfsg.1/src/main.c +=================================================================== +--- rolo-011.dfsg.1.orig/src/main.c 2008-07-13 17:47:16.000000000 +0200 ++++ rolo-011.dfsg.1/src/main.c 2008-07-13 17:47:41.000000000 +0200 +@@ -87,7 +87,7 @@ + editor = getenv ("EDITOR"); + if (NULL == editor) + { +- editor = strdup ("vi"); ++ editor = strdup ("/usr/bin/editor"); + return editor; + } + } diff --git a/utf8-in-index.diff b/utf8-in-index.diff new file mode 100644 index 000000000000..e7ee5b660007 --- /dev/null +++ b/utf8-in-index.diff @@ -0,0 +1,85 @@ +Display the columns correctly in the index screen when the names are +encoded in UTF-8 characters. This hack is obtained by changing the way +the set_menu_print_format function sets the menu_print_format variable. +I am not fully happy with this solution, but it works and seems to close +Bug#514933. Note also that the configure.ac script must be changed in order +to have the right CFLAGS and LIBS variables being passed to Makefile. + + -- Rafael Laboissiere <rafael@debian.org> Fri, 13 Feb 2009 02:21:34 +0100 + +--- a/configure.ac ++++ b/configure.ac +@@ -19,6 +19,10 @@ + AC_CHECK_LIB(formw, new_form) + CFLAGS="$CFLAGS -I/usr/include/ncursesw/" + ++# Glib settings ++LIBS="$LIBS $(pkg-config glib-2.0 --libs)" ++CFLAGS="$CFLAGS $(pkg-config glib-2.0 --cflags)" ++ + # Checks for header files. + AC_HEADER_STDC + +--- a/src/entry.c ++++ b/src/entry.c +@@ -24,8 +24,9 @@ + #include <ncurses.h> + #include <string.h> + #include <vc.h> ++#include <glib/gunicode.h> + +-#define MENU_PRINT_FORMAT_SIZE 38 ++#define MENU_PRINT_FORMAT_SIZE 80 + + static int cmp_tel (const char *desc_a, const char *desc_b); + static int cmp_email (const char *desc_a, const char *desc_b); +@@ -37,7 +38,9 @@ + static char *construct_menu_name (const char *family_name, + const char *given_name, const char *email, + const char *tel); +-static void set_menu_print_format (char *menu_print_format, int width); ++static void set_menu_print_format (char *menu_print_format, ++ const char* fn, const char* gn, ++ const char* em); + + /*************************************************************************** + */ +@@ -451,9 +454,10 @@ + /* FIXME: get the y and x vals from arguments passed to this function + so that this module will not need to rely on ncurses.h */ + getmaxyx (stdscr, y, x); +- menu_name = (char *) malloc (sizeof (char) * (x - 5 + 1)); ++ /* Allow enough room for UTF-8 characters */ ++ menu_name = (char *) malloc (sizeof (char) * 2 * x); + +- set_menu_print_format (menu_print_format, x); ++ set_menu_print_format (menu_print_format, family_name, given_name, email); + sprintf (menu_name, menu_print_format, + family_name ? family_name : "", + given_name ? given_name : "", email ? email : "", tel ? tel : ""); +@@ -466,8 +470,23 @@ + */ + + static void +-set_menu_print_format (char *menu_print_format, int width) ++set_menu_print_format (char *menu_print_format, ++ const char* fn, const char* gn, const char* em) + { ++ int fn_len, gn_len, em_len; ++ fn_len = gn_len = 12; ++ em_len = 30; ++ if (fn) ++ fn_len += strlen (fn) - g_utf8_strlen (fn, -1); ++ if (gn) ++ gn_len += strlen (gn) - g_utf8_strlen (gn, -1); ++ if (em) ++ em_len += strlen (em) - g_utf8_strlen (em, -1); ++ ++ snprintf (menu_print_format, MENU_PRINT_FORMAT_SIZE, ++ "%%-%d.%ds %%-%d.%ds %%-%d.%ds %%-18.18s", ++ fn_len, fn_len, gn_len, gn_len, em_len, em_len); ++ + /* 75 characters long -- fits into 80 character wide screen */ +- strcpy (menu_print_format, "%-12.12s %-12.12s %-30.30s %-18.18s"); ++ /* strcpy (menu_print_format, "%-12.12s %-12.12s %-30.30s %-18.18s"); */ + } |