-abook v 0.5
+abook
 
 Abook is small and powerful addressbook program designed to use with mutt mail
 client. Abook runs on Linux / FreeBSD and probably with small changes on other
 
 
 Jaakko Heinonen                <jheinonen@users.sourceforge.net>
 
+Cedric Duval           <cedricduval@free.fr>
+ - views
+ - i18n
+ - etc.
+
 Alan Ford              <alan@whirlnet.co.uk>
  - Debian package
  - manual pages
  - palmcsv export filter
  - fixes
 
-Cedric Duval           <cedricduval@free.fr>
- - i18n
-
 
-0.6.0pre
+0.6.0
  - configurable views (Cedric Duval)
  - new field types, lists and improved custom field support (Cedric Duval)
+ - index_format option (Cedric Duval)
  - Italian translation (Claudio Stazzone)
+ - BSD calendar export filter (Guillem Jover)
+ - translation updates
+ - bugfixes
 
 0.5.6
  - translation fixes
 
                ui.h views.h xmalloc.h
 
 EXTRA_DIST = config.rpath  ANNOUNCE BUGS FAQ abook.1 abookrc.5 sample.abookrc \
-               abook.spec contrib doc/HOWTO.translating_abook \
-               RELNOTES-0.6pre
+               abook.spec contrib doc/HOWTO.translating_abook RELEASE_NOTES
 
 abook_LDADD = @LIBINTL@
 
 
                ui.h views.h xmalloc.h
 
 EXTRA_DIST = config.rpath  ANNOUNCE BUGS FAQ abook.1 abookrc.5 sample.abookrc \
-               abook.spec contrib doc/HOWTO.translating_abook \
-               RELNOTES-0.6pre
+               abook.spec contrib doc/HOWTO.translating_abook RELEASE_NOTES
 
 abook_LDADD = @LIBINTL@
 SUBDIRS = intl po
 
 
-See also RELNOTES-0.6pre.
-
  ABOOK by JH <jheinonen@users.sourceforge.net>
  -----
 
 
 COMPILATION
 
-To compile abook you must have ncurses developement libraries installed.
+To compile abook you must have ncurses development libraries installed.
 Starting from version 0.4.10 abook is known to compile with the native curses
 library of SUN Solaris and OpenBSD. Since version 0.5.0 GNU readline is
 required. Please note that other readline implementations don't work.
 been compiled and tested successfully on following platforms:
 (NOTE: All versions of abook haven't been tested on all platforms.)
 
-Linux (Debian GNU/Linux, RedHat Linux, all other distributions with GNU ncurses
-       and GNU readline should work)
+Linux (distributions with moderately new GNU ncurses and GNU readline libraries
+       should work)
 Darwin
 Solaris
 FreeBSD
 and add sender e-mail addresses to the addressbook from pager using 'A'
 command. (Of course you can choose another keybinding if you like.)
 
-It's also recommeded to set pipe_decode variable in mutt configuration.
+It's also recommended to set pipe_decode variable in mutt configuration.
 See the mutt manual for details.
 
+UPGRADING FROM VERSION 0.5
+
+See RELEASE_NOTES .
+
 UPGRADING FROM VERSION 0.4
 
 You must import your abook 0.4 addressbook file because it is stored
 All files in this distribution are released under GNU GENERAL PUBLIC LICENSE.
 See COPYING for details.
 
-CONTACT AUTHOR
+CONTACT AUTHORS
 
-Send bugreports, fixes, wishes etc. to Jaakko Heinonen
-<jheinonen@users.sourceforge.net> or use the mailing list.
+Send bugreports, fixes, wishes etc. to abook mailing list:
+https://lists.sourceforge.net/lists/listinfo/abook-devel
 
 
--- /dev/null
+This file lists major changes affecting abook's behavior.
+Please read this file carefully when upgrading abook.
+A more comprehensive list of changes can be found in the ChangeLog file.
+
+--
+
+0.6.0pre2:
+  * The four following configuration options have been deprecated and will
+    no longer be accepted by abook:
+      * emailpos
+      * extra_column
+      * extra_alternative
+      * extrapos
+
+    They have been replaced with a single more flexible option:
+    index_format.
+
+    This option is a string defining the format of a line in the main list.
+    It allows displaying of as many fields as desired, with optional
+    width limit, as well as an arbitrary number of alternative fields.
+
+0.6.0pre1 (2006-08-30):
+  * The 'customfield' command has been obsoleted by a more flexible set
+    of commands: 'field' and 'view'.
+
+    Those two commands make it possible to define fields and organize
+    them within tabs as you see fit.
+
+    Not using these commands, the look and feel of previous releases
+    will mostly be kept the same. Also see the related 'preserve_fields'
+    configuration variable.
+
 
+++ /dev/null
-abook 0.6pre1
-
-RELEASE NOTES
-
-* See sample.abookrc and abookrc(5) how to configure views and custom fields.
-
-* There are four types for fields:  'string' (default), 'emails', 'list', and
-  'date'
-
-* Report all bugs and incompatibilities with abook 0.5 to abook-devel mailing
-  list: https://lists.sourceforge.net/lists/listinfo/abook-devel .
-  (Subscription is needed due to spam.) As a last resort you can also
-  mail to jheinonen@users.sourceforge.net .
 
 Giuseppe Corbelli
 Mariusz Balewski
 Marc Tardif
+Gerfried Fuchs
+Josef Schugt
+Guillem Jover
 
 See also AUTHORS
 
+0.6
+ - allcsv should export all fields
+
 generic:
  - grouping
  - new file format (xml?)
 
-.TH ABOOK 1 "June 6, 2003"
+.TH ABOOK 1 2006-09-06
 .nh
 .SH NAME
 abook \- text-based address book program
 - \fBspruce\fP Spruce address book
 .br
 - \fBwl\fP Wanderlust address book
+.br
+- \fBbsdcal\fP BSD calendar
 .TP
 \fB\-\-add-email\fP
 Read an e-mail message from stdin and add the sender to the addressbook.
 
 /*
- * $Id: abook.c,v 1.59 2006/08/07 19:20:25 cduval Exp $
+ * $Id: abook.c,v 1.60 2006/09/04 18:29:24 cduval Exp $
  *
  * by JH <jheinonen@users.sourceforge.net>
  *
 
        signal(SIGTERM, quit_abook_sig);
 
+       init_index();
+
        if(init_ui())
                exit(EXIT_FAILURE);
 
 
 Summary:       Text-based addressbook program
 Name:          abook
-Version:       0.6.0pre1
+Version:       0.6.0pre2
 Release:       1
 License:       GPL
 Group:         Utilities
 
 .TP
 .B none
 discards any unknown field.
+.RE
 .IP
 Default is \fIstandard\fP.
-.RE
 
 .TP
-\fBshow_all_emails\fP=[true|false]
-Defines whether all email addresses for a contact are shown in the main list view. Default is true
-
+\fBindex_format\fP=format_string
+Defines the way entries are displayed in the main list. This is a string containing field names enclosed between braces, with an optional width limit specified by a number (right alignment if negative) after the field name and a colon, and an arbitrary number of alternative fields (first with non empty content is to be displayed) separated by vertical bars. For instance:
+.RS
 .TP
-\fBemailpos\fP=column
-Defines the screen column on the main list where the email address is to begin. Default is 25.
-
+\fI{name:22}\fP
+displays the \fIname\fP field with a maximal width of 22 characters.
 .TP
-\fBextra_column\fP=field
-Defines the field to display in the extra (third) column on the main list. Default is "phone" (Home Phone).
+\fI{phone:-13|workphone|mobile}\fP
+displays (right aligned within a width of 13 characters), either the \fIphone\fP, \fIworkphone\fP or \fImobile\fP field, whichever being the first to be non-empty.
+.RE
 .IP
-\fIfield\fP can be any of the following:
-.br
--1                     disabled
-.br
-phone          Home Phone
-.br
-workphone              Work Phone
-.br
-fax                    Fax
-.br
-mobile         Mobile Phone
-.br
-nick                   Nickname/Alias
-.br
-url                    URL
-.br
-notes          Notes
+Default is \fI" {name:22} {email:40} {phone:12|workphone|mobile}"\fP
 
 .TP
-\fBextra_alternative\fP=field
-This is an optional setting that allows you to specify an alternative field to be displayed in the extra (third) column if there is no data for the field specified in extra_column for a particular item. The strings for the fields are the same as above. Please note that the data shown where the alternative field has been used will NOT be marked differently in any way from the rest of the extra column. There is no default.
+\fBshow_all_emails\fP=[true|false]
+Defines whether all email addresses for a contact are shown in the main list view. Default is true.
 
 .TP
-\fBextrapos\fP=column
-Defines the screen column on the main list where the extra field is to begin. Default is 65.
-
+.PD 0
+\fBemailpos\fP
+.TP
+.PD 0
+\fBextra_column\fP
+.TP
+.PD 0
+\fBextra_alternative\fP
 .TP
-\fBmutt_command\fP=command
-Defines the command to start mutt. Default is "mutt".
+.PD
+\fBextrapos\fP
+Obsoleted by \fBindex_format\fP.
 
 .TP
 \fBmutt_return_all_emails\fP=[true|false]
 # Automatically save database on exit
 set autosave=true
 
+# Format of entries lines in list
+set index_format=" {name:22} {email:40} {phone:12|workphone|mobile}"
+
 # Show all email addresses in list
 set show_all_emails=true
 
-# Screen column for email field to start
-set emailpos=25
-
-# Field to be used in the extra column
-set extra_column=phone
-# frequently used values:
-#      -1          disabled
-#      phone       Home Phone
-#      workphone   Work Phone
-#      fax         Fax
-#      mobile      Mobile Phone
-#      nick        Nickname/Alias
-#      url         URL
-
-#
-set extra_alternative=-1
-
-# Screen column for the extra field to start
-set extrapos=65
-
 # Command used to start mutt
 set mutt_command=mutt
 
 # Command used to start the web browser
 set www_command=lynx
 
-# address style [eu|us|uk]
+# Address style [eu|us|uk]
 set address_style=eu
 
-# use ASCII characters only
+# Use ASCII characters only
 set use_ascii_only=false
 
 # Prevent double entry
 set add_email_prevent_duplicates=false
 
-# field to be used with "sort by field" command
+# Field to be used with "sort by field" command
 set sort_field=nick
 
-# show cursor in main display
+# Show cursor in main display
 set show_cursor=false
 
 .fi
 
 
 # Define the identity of the package.
  PACKAGE=abook
- VERSION=0.6.0pre1
+ VERSION=0.6.0pre2
 
 
 cat >>confdefs.h <<_ACEOF
 
 
 
-
        abook_localedir="$datadir/locale"
-       abook_localedir=`(      test "x$prefix" = xNONE && prefix="$ac_default_prefix"
-               eval echo \""$abook_localedir"\"        )`
+                       abook_localedir=`(      test "x$prefix" = xNONE && prefix="$ac_default_prefix"
+               eval tmp_abook_prefix=\""$abook_localedir"\"
+               eval echo $tmp_abook_prefix
+               )`
 
 localedir="\$(datadir)/locale"
 
 
 dnl abook configure.in
 
 AC_INIT(abook.c)
-AM_INIT_AUTOMAKE(abook, 0.6.0pre1)
+AM_INIT_AUTOMAKE(abook, 0.6.0pre2)
 AM_CONFIG_HEADER(config.h)
 
 dnl ---------------
 
 AC_DEFUN([ABOOK_EXPAND_PREFIX], [
        $1=$2
+       dnl expanding twice, since from autoconf 2.60 on, $datadir refers to
+       dnl $datarootdir which in turn refers to $prefix
        $1=`(   test "x$prefix" = xNONE && prefix="$ac_default_prefix"
-               eval echo \""[$]$1"\"   )`
+               eval tmp_abook_prefix=\""[$]$1"\"
+               eval echo $tmp_abook_prefix
+               )`
 ])
 
-dnl 
-dnl dnl Use this with autoconf >= 2.60
-dnl
-dnl ABOOK_EXPAND_PREFIX(abook_localedir, "$datarootdir/locale")
-dnl localedir="\$(datarootdir)/locale"
-dnl
-
 ABOOK_EXPAND_PREFIX(abook_localedir, "$datadir/locale")
 localedir="\$(datadir)/locale"
 
 
--- /dev/null
+abook/contrib
 
--- /dev/null
+:ext:jheinonen@abook.cvs.sourceforge.net:/cvsroot/abook
 
 
 /*
- * $Id: database.c,v 1.38 2006/08/25 22:51:00 cduval Exp $
+ * $Id: database.c,v 1.39 2006/09/04 18:29:25 cduval Exp $
  *
  * by JH <jheinonen@users.sourceforge.net>
  *
 }
 
 void
-get_field_keyname(int i, char **key, char **name)
+get_field_info(int i, char **key, char **name, int *type)
 {
        abook_field_list *cur = fields_list;
        int j;
                *key = (i < 0) ? NULL : cur->field->key;
        if(name)
                *name = (i < 0) ? NULL : cur->field->name;
+       if(type)
+               *type = (i < 0) ? -1 : cur->field->type;
 }
 
 void
 
 #define find_field(key, list)          real_find_field(key, list, NULL)
 #define find_field_number(key, pt_nb)  real_find_field(key, NULL, pt_nb)
 #define find_declared_field(key)       find_field(key,NULL)
-void get_field_keyname(int i, char **key, char **name);
+void get_field_info(int i, char **key, char **name, int *type);
 void add_field(abook_field_list **list, abook_field *f);
 char *declare_new_field(char *key, char *name, char *type, int accept_standard);
 void init_standard_fields();
 
 
 /*
- * $Id: edit.c,v 1.52 2006/08/26 19:16:41 cduval Exp $
+ * $Id: edit.c,v 1.55 2006/09/06 02:46:44 cduval Exp $
  *
  * by JH <jheinonen@users.sourceforge.net>
  *
 
 WINDOW *editw;
 
-static int parse_date_string(char *s, int *day, int *month, int *year);
-
 
 static void
 editor_tab(const int tab)
  *  valid string
  */
 static int
-change_field(char *msg, char **field, int max_len)
+change_field(char *msg, char **field, size_t max_len)
 {
        char *old;
        int ret = 0;
 }
 
 static int
-change_name_field(char *msg, char **field, int max_len)
+change_name_field(char *msg, char **field, size_t max_len)
 {
        char *tmp;
        int ret;
        return valid;
 }
 
-static int
+int
 parse_date_string(char *s, int *day, int *month, int *year)
 {
        int i = 0;
        return is_valid_date(*day, *month, *year);
 }
 
-static int
-is_number(char *s)
-{
-       char *p;
-
-       for(p = s; *p; p++)
-               if(!isdigit(*p))
-                       return FALSE;
-       return TRUE;
-}
-
 static void
 edit_date(int item, int nb)
 {
 
 void           edit_item(int item);
 void           get_first_email(char *str, int item);
 void           add_item();
+int            parse_date_string(char *s, int *day, int *month, int *year);
 
 #define EDITW_COLS     (COLS - 6)
 #define EDITW_LINES    (LINES - 5)
 
 
 /*
- * $Id: filter.c,v 1.53 2006/08/07 19:20:26 cduval Exp $
+ * $Id: filter.c,v 1.55 2006/09/06 02:46:44 cduval Exp $
  *
  * by JH <jheinonen@users.sourceforge.net>
  *
 static int     text_export_database(FILE *out, struct db_enumerator e);
 static int     spruce_export_database(FILE *out, struct db_enumerator e);
 static int     wl_export_database(FILE *out, struct db_enumerator e);
+static int     bsdcal_export_database(FILE *out, struct db_enumerator e);
 
 /*
  * end of function declarations
        { "text", N_("plain text"), text_export_database },
        { "wl", N_("Wanderlust address book"), wl_export_database },
        { "spruce", N_("Spruce address book"), spruce_export_database },
+       { "bsdcal", N_("BSD calendar"), bsdcal_export_database },
        { "\0", NULL, NULL }
 };
 
  * html export filter
  */
 
-static void            html_export_write_head(FILE *out, int extra_column);
+static void            html_export_write_head(FILE *out);
 static void            html_export_write_tail(FILE *out);
 
+extern struct index_elem *index_elements;
+
+static void
+html_print_emails(FILE *out, struct list_field *f)
+{
+       abook_list *l = csv_to_abook_list(f->data);
+
+       for(; l; l = l->next) {
+               fprintf(out, "<a href=\"mailto:%s\">%s</a>", l->data, l->data);
+               if(l->next)
+                       fprintf(out, ", ");
+       }
+
+       abook_list_free(&l);
+}
+
 static int
 html_export_database(FILE *out, struct db_enumerator e)
 {
-       char tmp[MAX_EMAILSTR_LEN], *emails;
-       int extra_column;
+       struct list_field f;
+       struct index_elem *cur;
 
        if(list_is_empty())
                return 2;
 
-       extra_column = init_extra_field(STR_EXTRA_COLUMN);
-       html_export_write_head(out, extra_column);
+       init_index();
 
-       db_enumerate_items(e) {
-               get_first_email(tmp, e.item);
-               if (*tmp)
-                   fprintf(out, "<tr>\n<td>"
-                                   "<a href=\"mailto:%s\">%s</a>"
-                                   "</td>\n",
-                           tmp,
-                           db_name_get(e.item));
-               else
-                   fprintf(out, "<tr>\n<td>%s</td>\n", db_name_get(e.item));
+       html_export_write_head(out);
 
-               emails = db_email_get(e.item);
-               fprintf(out, "<td>%s</td>\n", emails);
-               free(emails);
-               if(extra_column >= 0)
-                       fprintf(out, "<td>%s</td>\n",
-                               safe_str(db_fget_byid(e.item, extra_column)));
-               fprintf(out, "</tr>\n\n");
+       db_enumerate_items(e) {
+               fprintf(out, "<tr>");
+               for(cur = index_elements; cur; cur = cur->next) {
+                       if(cur->type != INDEX_FIELD)
+                               continue;
+
+                       get_list_field(e.item, cur, &f);
+
+                       if(f.type == FIELD_EMAILS) {
+                               fprintf(out, "<td>");
+                               html_print_emails(out, &f);
+                               fprintf(out, "</td>");
+                               continue;
+                       } else {
+                               fprintf(out, "<td>%s</td>", safe_str(f.data));
+                       }
+               }
+               fprintf(out, "</tr>\n");
        }
 
        html_export_write_tail(out);
 }
 
 static void
-html_export_write_head(FILE *out, int extra_column)
+html_export_write_head(FILE *out)
 {
-       char *realname = get_real_name(), *extra_column_name = NULL;
+       char *realname = get_real_name(), *str;
+       struct index_elem *cur;
 
        fprintf(out, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n");
        fprintf(out, "<html>\n<head>\n <title>%s's addressbook</title>",
        fprintf(out, "\n<h2>%s's addressbook</h2>\n", realname );
        fprintf(out, "<br><br>\n\n");
 
-       fprintf(out, "<table border=\"1\" align=\"center\">\n");
-       fprintf(out, "\n<tr><th>Name</th><th>E-mail address(es)</th>");
-       if(extra_column >= 0) {
-               get_field_keyname(extra_column, NULL, &extra_column_name);
-               fprintf(out, "<th>%s</th>", safe_str(extra_column_name));
+       fprintf(out, "<table border=\"1\" align=\"center\">\n<tr>");
+       for(cur = index_elements; cur; cur = cur->next) {
+               if(cur->type != INDEX_FIELD)
+                       continue;
+
+               get_field_info(cur->d.field.id, NULL, &str, NULL);
+               fprintf(out, "<th>%s</th>", str);
        }
        fprintf(out, "</tr>\n\n");
 
                        fprintf(out, "\n");
                        for(j = PHONE; j <= MOBILEPHONE; j++)
                                if(db_fget(e.item, j)) {
-                                       get_field_keyname(field_id(j),
-                                                       NULL, &str);
+                                       get_field_info(field_id(j),
+                                                       NULL, &str, NULL);
                                        fprintf(out, "%s: %s\n", str,
                                                db_fget(e.item, j));
                                }
  * end of wanderlust addressbook export filter
  */
 
+/*
+ * BSD calendar export filter
+ */
+
+static int
+bsdcal_export_database(FILE *out, struct db_enumerator e)
+{
+       db_enumerate_items(e) {
+               int year, month = 0, day = 0;
+               char *anniversary = db_fget(e.item, ANNIVERSARY);
+
+               if(anniversary) {
+                       parse_date_string(anniversary, &day, &month, &year);
+
+                       fprintf(out,
+                               _("%02d/%02d\tAnniversary of %s\n"),
+                               month,
+                               day,
+                               safe_str(db_name_get(e.item))
+                       );
+               }
+       }
+
+       return 0;
+}
+
+/*
+ * end of BSD calendar export filter
+ */
+
 
 N_("   Z               move current item down\n"),
 "\n",
 N_("   m               send mail with mutt\n"),
-N_("   u               view URL with web browser\n"),
+N_("   v               view URL with web browser\n"),
 NULL
 
 };
 
 
 /*
- * $Id: list.c,v 1.30 2006/08/07 19:20:26 cduval Exp $
+ * $Id: list.c,v 1.33 2006/09/05 08:21:35 jheinonen Exp $
  *
  * by JH <jheinonen@users.sourceforge.net>
  *
 int first_list_item = -1;
 char *selected = NULL;
 
-int extra_column = -1;
-int extra_alternative = -1;
-
 extern abook_field_list *fields_list;
+struct index_elem *index_elements = NULL;
 
 static WINDOW *list = NULL;
 
 
-int
-init_extra_field(enum str_opts option)
+static void
+index_elem_add(int type, char *a, char *b)
 {
-       int ret = -1;
-       char *option_str;
+       struct index_elem *tmp = NULL, *cur, *cur2;
+       int field, len = 0;
+
+       if(!a || !*a)
+               return;
+
+       switch(type) {
+               case INDEX_TEXT:
+                       tmp = xmalloc(sizeof(struct index_elem));
+                       tmp->d.text = xstrdup(a);
+                       break;
+               case INDEX_FIELD: /* fall through */
+               case INDEX_ALT_FIELD:
+                       find_field_number(a, &field);
+                       if(field == -1)
+                               return;
+                       len = (b && *b && is_number(b)) ? atoi(b) : 0;
+                       tmp = xmalloc(sizeof(struct index_elem));
+                       tmp->d.field.id = field;
+                       tmp->d.field.len = len;
+                       break;
+               default:
+                       assert(0);
+       }
+       tmp->type = type;
+       tmp->next = NULL;
+       tmp->d.field.next = NULL;
 
-       option_str = opt_get_str(option);
+       if(!index_elements) { /* first element */
+               index_elements = tmp;
+               return;
+       }
 
-       if(option_str && *option_str) {
-               find_field_number(option_str, &ret);
+       for(cur = index_elements; cur->next; cur = cur->next)
+               ;
+       if(type != INDEX_ALT_FIELD)
+               cur->next = tmp;
+       else { /* add as an alternate field */
+               tmp->d.field.len = cur->d.field.len;
+               for(cur2 = cur; cur2->d.field.next; cur2 = cur2->d.field.next)
+                       ;
+               cur2->d.field.next = tmp;
+       }
+}
 
-               if(!strcmp(option_str, "name") || !strcmp(option_str, "email"))
-                       ret = -1;
+static void
+parse_index_format(char *s)
+{
+       char *p, *start, *lstart = NULL;
+       int in_field = 0, in_alternate = 0, in_length = 0, type;
+
+       p = start = s;
+
+       while(*p) {
+               if(*p == '{' && !in_field) {
+                       *p = 0;
+                       index_elem_add(INDEX_TEXT, start, NULL);
+                       start = ++p;
+                       in_field = 1;
+               } else if(*p == ':' && in_field && !in_alternate) {
+                       *p = 0;
+                       lstart = ++p;
+                       in_length = 1;
+               } else if(*p == '|' && in_field) {
+                       *p = 0;
+                       type = in_alternate ? INDEX_ALT_FIELD : INDEX_FIELD;
+                       index_elem_add(type, start, in_length ? lstart : NULL);
+                       start = ++p;
+                       in_length = 0;
+                       in_alternate = 1;
+               } else if(*p == '}' && in_field) {
+                       *p = 0;
+                       type = in_alternate ? INDEX_ALT_FIELD : INDEX_FIELD;
+                       index_elem_add(type, start, in_length ? lstart : NULL);
+                       start = ++p;
+                       in_field = in_alternate = in_length = 0;
+               } else
+                       p++;
        }
+       if(!in_field)
+               index_elem_add(INDEX_TEXT, start, NULL);
+}
 
-       return ret;
+void
+init_index()
+{
+       assert(!index_elements);
+       parse_index_format(opt_get_str(STR_INDEX_FORMAT));
 }
 
 void
 {
        list = newwin(LIST_LINES, LIST_COLS, LIST_TOP, 0);
        scrollok(list, TRUE);
-
-       /*
-        * init extra_column and extra alternative
-        */
-
-       extra_column = init_extra_field(STR_EXTRA_COLUMN);
-       extra_alternative = init_extra_field(STR_EXTRA_ALTERNATIVE);
 }
 
 void
        list = NULL;
 }
 
+void
+get_list_field(int item, struct index_elem *e, struct list_field *res)
+{
+       char *s;
+
+       res->data = s = NULL;
+
+       do { /* find first non-empty field data in the alternate fields list */
+               s = db_fget_byid(item, e->d.field.id);
+       } while(!(s && *s) && ((e = e->d.field.next) != NULL));
+
+       if(!e || !s || !*s)
+               return;
+
+       res->data = s;
+       get_field_info(e->d.field.id, NULL, NULL, &res->type);
+}
+
+static void
+print_list_field(int item, int line, int *x_pos, struct index_elem *e)
+{
+       char *s, *p;
+       int width, x_start, mustfree = FALSE, len = abs(e->d.field.len);
+       struct list_field f;
+
+       get_list_field(item, e, &f);
+       s = f.data;
+
+       if(!s || !*s) {
+               *x_pos += len;
+               return;
+       }
+       
+       if(f.type == FIELD_EMAILS && !opt_get_bool(BOOL_SHOW_ALL_EMAILS))
+               if((p = strchr(s, ',')) != NULL) {
+                       s = xstrndup(s, p - s);
+                       mustfree = TRUE;
+               }
+
+       width = len ? bytes2width(s, len) : strwidth(s);
+       x_start = *x_pos + ((e->d.field.len < 0) ? len - width : 0);
+       if(width + x_start >= COLS)
+               width = COLS - x_start;
+
+       if(width)
+               mvwaddnstr(list, line, x_start, s, width);
+
+       if(mustfree)
+               free(s);
+               
+       *x_pos += len ? len : width;
+}
+
+static void
+highlight_line(WINDOW *win, int line)
+{
+       wstandout(win);
+
+       /*
+        * this is a tricky one
+        */
+#if 0
+/*#ifdef mvwchgat*/
+       mvwchgat(win, line, 0, -1,  A_STANDOUT, 0, NULL);
+#else
+       /*
+        * buggy function: FIXME
+        */
+       scrollok(win, FALSE);
+       {
+               int i;
+               wmove(win, line, 0);
+               for(i = 0; i < COLS; i++)
+                       waddch(win, ' ');
+       /*wattrset(win, 0);*/
+       }
+       scrollok(win, TRUE);
+#endif
+}
+
+static void
+print_list_line(int item, int line, int highlight)
+{
+       struct index_elem *cur;
+       int x_pos = 1;
+
+       scrollok(list, FALSE);
+       if(highlight)
+               highlight_line(list, line);
+
+       if(selected[item])
+               mvwaddch(list, line, 0, '*' );
+
+       for(cur = index_elements; cur; cur = cur->next)
+               switch(cur->type) {
+                       case INDEX_TEXT:
+                               mvwaddstr(list, line, x_pos, cur->d.text);
+                               x_pos += strwidth(cur->d.text);
+                               break;
+                       case INDEX_FIELD:
+                               print_list_field(item, line, &x_pos, cur);
+                               break;
+                       default:
+                               assert(0);
+               }
+
+       scrollok(list, TRUE);
+       if(highlight)
+               wstandend(list);
+}
+
 void
 refresh_list()
 {
         wrefresh(list);
 }
 
-void
-print_list_line(int i, int line, int highlight)
-{
-       int extra = extra_column;
-       char tmp[MAX_EMAILSTR_LEN], *emails;
-       int real_emaillen = (extra_column > 0 || extra_alternative > 0) ?
-               EMAILLEN : COLS - EMAILPOS;
-
-       scrollok(list, FALSE);
-       if(highlight)
-               highlight_line(list, line);
-
-       if(selected[i])
-               mvwaddch(list, line, 0, '*' );
-
-       mvwaddnstr(list, line, NAMEPOS, db_name_get(i),
-               bytes2width(db_name_get(i), NAMELEN));
-
-       if(opt_get_bool(BOOL_SHOW_ALL_EMAILS)) {
-               emails = db_email_get(i);
-               mvwaddnstr(list, line, EMAILPOS, emails,
-                               bytes2width(emails, real_emaillen));
-               free(emails);
-       } else {
-               get_first_email(tmp, i);
-               mvwaddnstr(list, line, EMAILPOS, tmp,
-                               bytes2width(tmp, real_emaillen));
-       }
-
-       if(extra < 0 || !db_fget_byid(i, extra))
-               extra = extra_alternative;
-       if(extra >= 0)
-               mvwaddnstr(list, line, EXTRAPOS,
-                       safe_str(db_fget_byid(i, extra)),
-                       bytes2width(safe_str(db_fget_byid(i, extra)),
-                       EXTRALEN));
-
-       scrollok(list, TRUE);
-       if(highlight)
-               wstandend(list);
-}
-
 void
 list_headerline()
 {
+       struct index_elem *e;
+       int x_pos = 1, width;
        char *str = NULL;
 
 #if defined(A_BOLD) && defined(A_NORMAL)
        attrset(A_BOLD);
 #endif
 
-       mvaddstr(2, NAMEPOS, find_field("name", NULL)->name);
-       mvaddstr(2, EMAILPOS, find_field("email", NULL)->name);
-       if(extra_column > 0) {
-               get_field_keyname(extra_column, NULL, &str);
-               mvaddnstr(2, EXTRAPOS, str, COLS - EXTRAPOS);
-       }
+       for(e = index_elements; e; e = e->next)
+               if(e->type == INDEX_TEXT)
+                       x_pos += strwidth(e->d.text);
+               else if(e->type == INDEX_FIELD) {
+                       get_field_info(e->d.field.id, NULL, &str, NULL);
+                       width = e->d.field.len ? abs(e->d.field.len) : strwidth(str);
+                       mvaddnstr(2, x_pos, str, width);
+                       x_pos += width;
+               } else
+                       assert(0);
 
 #if defined(A_BOLD) && defined(A_NORMAL)
        attrset(A_NORMAL);
        refresh_list();
 }
 
-void
-highlight_line(WINDOW *win, int line)
-{
-       wstandout(win);
-
-       /*
-        * this is a tricky one
-        */
-#if 0
-/*#ifdef mvwchgat*/
-       mvwchgat(win, line, 0, -1,  A_STANDOUT, 0, NULL);
-#else
-       /*
-        * buggy function: FIXME
-        */
-       scrollok(win, FALSE);
-       {
-               int i;
-               wmove(win, line, 0);
-               for(i = 0; i < COLS; i++)
-                       waddch(win, ' ');
-       /*wattrset(win, 0);*/
-       }
-       scrollok(win, TRUE);
-#endif
-}
-
 int
 selected_items()
 {
 
 
 #include "ui.h"
 
+#define INDEX_TEXT  1
+#define INDEX_FIELD 2
+#define INDEX_ALT_FIELD 3
+
+struct index_elem {
+       int type;
+       union {
+               char *text;
+               struct {
+                       int id;
+                       int len;
+                       struct index_elem *next;
+               } field;
+       } d;
+       struct index_elem *next;
+};
+
+struct list_field {
+       char *data;
+       int type;
+};
+
+void           init_index();
 void           init_list();
 int            init_extra_field(enum str_opts option);
 void           close_list();
 void            refresh_list();
-void           print_list_line(int i, int line, int highlight);
+void   get_list_field(int item, struct index_elem *e, struct list_field *res);
 void           list_headerline();
 void            scroll_up();
 void            scroll_down();
 void            move_curitem(int direction);
 void           goto_home();
 void           goto_end();
-void           highlight_line(WINDOW *win, int line);
 int            selected_items();
 void           invert_selection();
 int            list_is_empty();
 };
 
 #define LIST_TOP        3
-#define LIST_BOTTOM     (LINES-2)
+#define LIST_BOTTOM     (LINES - 2)
 
-#define LIST_LINES     (LIST_BOTTOM-LIST_TOP)
+#define LIST_LINES     (LIST_BOTTOM - LIST_TOP)
 #define LIST_COLS      COLS
 
-#define NAMEPOS                2
-#define EMAILPOS        opt_get_int(INT_EMAILPOS)
-#define EXTRAPOS       opt_get_int(INT_EXTRAPOS)
-
-#define NAMELEN                (EMAILPOS - NAMEPOS - 1)
-#define EMAILLEN        (EXTRAPOS - EMAILPOS - 1)
-#define EXTRALEN       (COLS - EXTRAPOS)
-
 #define LAST_LIST_ITEM (first_list_item + LIST_LINES - 1)
 
 #endif
 
 
 /*
- * $Id: misc.c,v 1.22 2005/10/25 23:27:24 cduval Exp $
+ * $Id: misc.c,v 1.23 2006/09/04 18:29:25 cduval Exp $
  *
  * by JH <jheinonen@users.sourceforge.net>
  *
        return s;
 }
 
+int
+is_number(char *p)
+{
+       if(!p || !*p || (*p == '-' && !*++p))
+               return 0;
+
+       for(; *p; p++)
+               if(!isdigit(*p))
+                       return 0;
+
+       return 1;
+}
+
 
 #ifdef HAVE_CONFIG_H
 #      include "config.h"
 
 char           *strlower(char *str);
 char           *strtrim(char *);
 
+int            is_number(char *s);
+
 char           *strdup_printf(const char *format, ... );
 char           *strconcat(const char *str, ...);
 
 
 
 /*
- * $Id: options.c,v 1.30 2006/08/07 11:39:53 jheinonen Exp $
+ * $Id: options.c,v 1.33 2006/09/06 08:48:33 jheinonen Exp $
  *
  * by JH <jheinonen@users.sourceforge.net>
  *
        { "autosave", OT_BOOL, BOOL_AUTOSAVE, TRUE },
 
        { "show_all_emails", OT_BOOL, BOOL_SHOW_ALL_EMAILS, TRUE },
-       { "emailpos", OT_INT, INT_EMAILPOS, 25 },
-       { "extra_column", OT_STR, STR_EXTRA_COLUMN, UL "phone" },
-       { "extra_alternative", OT_STR, STR_EXTRA_ALTERNATIVE, UL "-1" },
-       { "extrapos", OT_INT, INT_EXTRAPOS, 65 },
-
+       { "index_format", OT_STR, STR_INDEX_FORMAT, UL " {name:22} {email:40} {phone:12|workphone|mobile}" },
        { "mutt_command", OT_STR, STR_MUTT_COMMAND, UL "mutt" },
        { "mutt_return_all_emails", OT_BOOL, BOOL_MUTT_RETURN_ALL_EMAILS,
                TRUE },
 {
        int len;
 
-       strtrim(p);
+       assert(p);
 
+       strtrim(p);
        len = strlen(p);
 
-       if(p[len - 1] == '\"' && *p == '\"') {
+       if(*p == '\"' && p[len - 1] == '\"') {
                if(len < 3)
                        return _("invalid value");
                p[len - 1] = 0;
 {
        int i;
 
+       assert(var);
+       assert(p);
+
        for(i = 0; abook_vars[i].option; i++)
                if(!strcmp(abook_vars[i].option, var))
                        return opt_set_set_option(p, &abook_vars[i]);
 
 enum str_opts {
        STR_EXTRA_COLUMN,
        STR_EXTRA_ALTERNATIVE,
+       STR_INDEX_FORMAT,
        STR_MUTT_COMMAND,
        STR_PRINT_COMMAND,
        STR_WWW_COMMAND,
 
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: <abook-devel@lists.sourceforge.net>\n"
-"POT-Creation-Date: 2006-08-29 22:30+0300\n"
+"POT-Creation-Date: 2006-09-06 17:14+0300\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 msgid "Press enter to continue...\n"
 msgstr ""
 
-#: abook.c:141
+#: abook.c:143
 #, c-format
 msgid "File %s is not writeable"
 msgstr ""
 
-#: abook.c:146
+#: abook.c:148
 msgid "If you continue all changes will be lost. Do you want to continue?"
 msgstr ""
 
-#: abook.c:165
+#: abook.c:167
 msgid "Save database"
 msgstr ""
 
-#: abook.c:167
+#: abook.c:169
 msgid "Quit without saving"
 msgstr ""
 
-#: abook.c:223
+#: abook.c:225
 #, c-format
 msgid "%s is not a valid HOME directory\n"
 msgstr ""
 
-#: abook.c:254
+#: abook.c:256
 #, c-format
 msgid ""
 "Cannot combine options --mutt-query, --convert, --add-email or --add-email-"
 "quiet\n"
 msgstr ""
 
-#: abook.c:285
+#: abook.c:287
 #, c-format
 msgid "please use option --%s after --convert option\n"
 msgstr ""
 
-#: abook.c:384
+#: abook.c:386
 #, c-format
 msgid "%s: unrecognized arguments on command line\n"
 msgstr ""
 
-#: abook.c:406
+#: abook.c:408
 msgid "     -h\t--help\t\t\t\tshow usage"
 msgstr ""
 
-#: abook.c:407
+#: abook.c:409
 msgid "     -C\t--config\t<file>\t\tuse an alternative configuration file"
 msgstr ""
 
-#: abook.c:408
+#: abook.c:410
 msgid "\t--datafile\t<file>\t\tuse an alternative addressbook file"
 msgstr ""
 
-#: abook.c:409
+#: abook.c:411
 msgid "\t--mutt-query\t<string>\tmake a query for mutt"
 msgstr ""
 
-#: abook.c:410
+#: abook.c:412
 msgid ""
 "\t--add-email\t\t\tread an e-mail message from stdin and\n"
 "\t\t\t\t\tadd the sender to the addressbook"
 msgstr ""
 
-#: abook.c:414
+#: abook.c:416
 msgid ""
 "\t--add-email-quiet\t\tsame as --add-email but doesn't\n"
 "\t\t\t\t\trequire to confirm adding"
 msgstr ""
 
-#: abook.c:418
+#: abook.c:420
 msgid "\t--convert\t\t\tconvert address book files"
 msgstr ""
 
-#: abook.c:419
+#: abook.c:421
 msgid "\toptions to use with --convert:"
 msgstr ""
 
-#: abook.c:420
+#: abook.c:422
 msgid "\t--informat\t<format>\tformat for input file"
 msgstr ""
 
-#: abook.c:421
+#: abook.c:423
 msgid "\t\t\t\t\t(default: abook)"
 msgstr ""
 
-#: abook.c:422
+#: abook.c:424
 msgid "\t--infile\t<file>\t\tsource file"
 msgstr ""
 
-#: abook.c:423
+#: abook.c:425
 msgid "\t\t\t\t\t(default: stdin)"
 msgstr ""
 
-#: abook.c:424
+#: abook.c:426
 msgid "\t--outformat\t<format>\tformat for output file"
 msgstr ""
 
-#: abook.c:425
+#: abook.c:427
 msgid "\t\t\t\t\t(default: text)"
 msgstr ""
 
-#: abook.c:426
+#: abook.c:428
 msgid "\t--outfile\t<file>\t\tdestination file"
 msgstr ""
 
-#: abook.c:427
+#: abook.c:429
 msgid "\t\t\t\t\t(default: stdout)"
 msgstr ""
 
-#: abook.c:428
+#: abook.c:430
 msgid "\t--formats\t\t\tlist available formats"
 msgstr ""
 
-#: abook.c:499
+#: abook.c:501
 #, c-format
 msgid "Cannot open database\n"
 msgstr ""
 
-#: abook.c:625
+#: abook.c:627
 #, c-format
 msgid "too few arguments to make conversion\n"
 msgstr ""
 
-#: abook.c:626
+#: abook.c:628
 #, c-format
 msgid "try --help\n"
 msgstr ""
 
-#: abook.c:631
+#: abook.c:633
 #, c-format
 msgid ""
 "input and output formats are the same\n"
 "exiting...\n"
 msgstr ""
 
-#: abook.c:645
+#: abook.c:647
 #, c-format
 msgid "input format %s not supported\n"
 msgstr ""
 
-#: abook.c:649
+#: abook.c:651
 #, c-format
 msgid "cannot read file %s\n"
 msgstr ""
 
-#: abook.c:658
+#: abook.c:660
 #, c-format
 msgid "output format %s not supported\n"
 msgstr ""
 
-#: abook.c:664
+#: abook.c:666
 #, c-format
 msgid "cannot write file %s\n"
 msgstr ""
 
-#: abook.c:685
+#: abook.c:687
 #, c-format
 msgid "cannot open %s\n"
 msgstr ""
 
-#: abook.c:688
+#: abook.c:690
 #, c-format
 msgid "%d item(s) added to %s\n"
 msgstr ""
 
-#: abook.c:690
+#: abook.c:692
 msgid "Valid sender address not found"
 msgstr ""
 
-#: abook.c:730
+#: abook.c:732
 #, c-format
 msgid "Address %s already in addressbook\n"
 msgstr ""
 
-#: abook.c:740
+#: abook.c:742
 #, c-format
 msgid ""
 "cannot open /dev/tty\n"
 "you may want to use --add-email-quiet\n"
 msgstr ""
 
-#: abook.c:746
+#: abook.c:748
 #, c-format
 msgid "Add \"%s <%s>\" to %s? (%c/%c)\n"
 msgstr ""
 
-#: abook.c:750 abook.c:757 ui.c:343 ui.c:605
+#: abook.c:752 abook.c:759 ui.c:343 ui.c:609
 msgid "keybinding for yes|y"
 msgstr ""
 
-#: abook.c:751 abook.c:753 ui.c:341
+#: abook.c:753 abook.c:755 ui.c:341
 msgid "keybinding for no|n"
 msgstr ""
 
-#: abook.c:778
+#: abook.c:780
 #, c-format
 msgid "stdin is a directory or cannot stat stdin\n"
 msgstr ""
 msgid "Anniversary day"
 msgstr ""
 
-#: database.c:164
+#: database.c:166
 msgid "field already defined"
 msgstr ""
 
-#: database.c:168
+#: database.c:170
 msgid "standard field does not need to be declared"
 msgstr ""
 
-#: database.c:183
+#: database.c:185
 msgid "unknown type"
 msgstr ""
 
-#: database.c:583
+#: database.c:585
 msgid "Invalid field value defined in configuration"
 msgstr ""
 
-#: database.c:586
+#: database.c:588
 msgid "Invalid field value for sorting"
 msgstr ""
 
-#: edit.c:53
+#: edit.c:51
 msgid "Tab name too wide for screen"
 msgstr ""
 
-#: edit.c:355
+#: edit.c:353
 msgid "keybindings_new_123456789|n123456789"
 msgstr ""
 
-#: edit.c:357
+#: edit.c:355
 #, c-format
 msgid "Choose %s to modify (<1>%s%c%s%s."
 msgstr ""
 
-#: edit.c:358
+#: edit.c:356
 msgid "email"
 msgstr ""
 
-#: edit.c:358
+#: edit.c:356
 msgid "item"
 msgstr ""
 
-#: edit.c:363
+#: edit.c:361
 msgid " or <n>ew"
 msgstr ""
 
-#: edit.c:381
+#: edit.c:379
 msgid "E-mail: "
 msgstr ""
 
-#: edit.c:381
+#: edit.c:379
 msgid "Item: "
 msgstr ""
 
-#: edit.c:478
+#: edit.c:465
 msgid "Day: "
 msgstr ""
 
-#: edit.c:478
+#: edit.c:465
 msgid "Month: "
 msgstr ""
 
-#: edit.c:478
+#: edit.c:465
 msgid "Year (optional): "
 msgstr ""
 
-#: edit.c:511
+#: edit.c:498
 msgid "Invalid date"
 msgstr ""
 
-#: edit.c:666
+#: edit.c:653
 msgid "Name: "
 msgstr ""
 
-#: edit.h:13
+#: edit.h:14
 msgid "?:help q:quit editor"
 msgstr ""
 
-#: filter.c:70 filter.c:81
+#: filter.c:71 filter.c:82
 msgid "abook native format"
 msgstr ""
 
-#: filter.c:71
+#: filter.c:72
 msgid "ldif / Netscape addressbook"
 msgstr ""
 
-#: filter.c:72 filter.c:83
+#: filter.c:73 filter.c:84
 msgid "mutt alias"
 msgstr ""
 
-#: filter.c:73 filter.c:85
+#: filter.c:74 filter.c:86
 msgid "pine addressbook"
 msgstr ""
 
-#: filter.c:74 filter.c:87
+#: filter.c:75 filter.c:88
 msgid "comma separated values"
 msgstr ""
 
-#: filter.c:75 filter.c:88
+#: filter.c:76 filter.c:89
 msgid "comma separated values (all fields)"
 msgstr ""
 
-#: filter.c:76 filter.c:89
+#: filter.c:77 filter.c:90
 msgid "Palm comma separated values"
 msgstr ""
 
-#: filter.c:82
+#: filter.c:83
 msgid "ldif / Netscape addressbook (.4ld)"
 msgstr ""
 
-#: filter.c:84
+#: filter.c:85
 msgid "html document"
 msgstr ""
 
-#: filter.c:86
+#: filter.c:87
 msgid "GnomeCard (VCard) addressbook"
 msgstr ""
 
-#: filter.c:90
+#: filter.c:91
 msgid "elm alias"
 msgstr ""
 
-#: filter.c:91
+#: filter.c:92
 msgid "plain text"
 msgstr ""
 
-#: filter.c:92
+#: filter.c:93
 msgid "Wanderlust address book"
 msgstr ""
 
-#: filter.c:93
+#: filter.c:94
 msgid "Spruce address book"
 msgstr ""
 
-#: filter.c:106
+#: filter.c:95
+msgid "BSD calendar"
+msgstr ""
+
+#: filter.c:108
 msgid "input:"
 msgstr ""
 
-#: filter.c:113
+#: filter.c:115
 msgid "output:"
 msgstr ""
 
-#: filter.c:178
+#: filter.c:180
 msgid "import database"
 msgstr ""
 
-#: filter.c:180 filter.c:297
+#: filter.c:182 filter.c:299
 msgid "please select a filter"
 msgstr ""
 
-#: filter.c:188 filter.c:305
+#: filter.c:190 filter.c:307
 msgid "x -\tcancel"
 msgstr ""
 
-#: filter.c:209 filter.c:343
+#: filter.c:211 filter.c:345
 msgid "Filename: "
 msgstr ""
 
-#: filter.c:216
+#: filter.c:218
 msgid "Error occured while opening the file"
 msgstr ""
 
-#: filter.c:218
+#: filter.c:220
 msgid "File does not seem to be a valid addressbook"
 msgstr ""
 
-#: filter.c:295
+#: filter.c:297
 msgid "export database"
 msgstr ""
 
-#: filter.c:328
+#: filter.c:330
 msgid "Export <a>ll, export <s>elected, or <c>ancel?"
 msgstr ""
 
-#: filter.c:329 ui.c:628
+#: filter.c:331 ui.c:632
 msgid "keybindings:all/selected/cancel|asc"
 msgstr ""
 
-#: filter.c:350
+#: filter.c:352
 msgid "Error occured while exporting"
 msgstr ""
 
+#: filter.c:1896
+#, c-format
+msgid "%02d/%02d\tAnniversary of %s\n"
+msgstr ""
+
 #: help.h:11
 msgid "\t?\t\thelp\n"
 msgstr ""
 msgstr ""
 
 #: help.h:47
-msgid "\tu\t\tview URL with web browser\n"
+msgid "\tv\t\tview URL with web browser\n"
 msgstr ""
 
 #: help.h:55
 msgid "\tv\t\t\tview url with web browser\n"
 msgstr ""
 
-#: options.c:254
+#: options.c:250
 msgid "quote mismatch"
 msgstr ""
 
-#: options.c:260
+#: options.c:256
 msgid "no assignment character found"
 msgstr ""
 
-#: options.c:263
+#: options.c:259
 msgid "error in comma separated list"
 msgstr ""
 
-#: options.c:292 options.c:311
+#: options.c:289 options.c:308
 msgid "invalid value"
 msgstr ""
 
 msgid "Clear WHOLE database"
 msgstr ""
 
-#: ui.c:578
+#: ui.c:582
 msgid "Search hit bottom, continuing at top"
 msgstr ""
 
-#: ui.c:603
+#: ui.c:607
 #, c-format
 msgid "Your current data will be lost - Press '%c' to continue"
 msgstr ""
 
-#: ui.c:628
+#: ui.c:632
 msgid "Print <a>ll, print <s>elected, or <c>ancel?"
 msgstr ""
 
-#: ui.c:634
+#: ui.c:638
 msgid "No selected items"
 msgstr ""
 
-#: ui.c:660
+#: ui.c:664
 msgid "File to open: "
 msgstr ""
 
-#: ui.c:670
+#: ui.c:674
 msgid "Save current database"
 msgstr ""
 
-#: ui.c:678
+#: ui.c:682
 msgid "Sorry, the specified file appears not to be a valid abook addressbook"
 msgstr ""
 
 
 # Copyright (C) 2005 Free Software Foundation, Inc.
 # This file is distributed under the same license as the abook package.
 # Johannes Weißl <jargon@molb.org>, 2005.
+# Gerfried Fuchs <alfie@ist.org>, 2006.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: abook 0.5.5pre1\n"
 "Report-Msgid-Bugs-To: <abook-devel@lists.sourceforge.net>\n"
-"POT-Creation-Date: 2006-08-29 22:30+0300\n"
-"PO-Revision-Date: 2006-08-05 14:12+0200\n"
+"POT-Creation-Date: 2006-09-06 17:14+0300\n"
+"PO-Revision-Date: 2006-09-04 21:00+0200\n"
 "Last-Translator: Johannes Weißl <jargon@molb.org>\n"
 "Language-Team: German <de@li.org>\n"
 "MIME-Version: 1.0\n"
 msgid "Press enter to continue...\n"
 msgstr "Eingabetaste drücken, um fortzufahren...\n"
 
-#: abook.c:141
+#: abook.c:143
 #, c-format
 msgid "File %s is not writeable"
 msgstr "Datei %s ist nicht beschreibbar"
 
-#: abook.c:146
+#: abook.c:148
 msgid "If you continue all changes will be lost. Do you want to continue?"
 msgstr "Beim Fortfahren gehen alle Änderungen verloren. Fortfahren?"
 
-#: abook.c:165
+#: abook.c:167
 msgid "Save database"
 msgstr "Speichere Datenbank"
 
-#: abook.c:167
+#: abook.c:169
 msgid "Quit without saving"
 msgstr "Beenden ohne zu speichern"
 
-#: abook.c:223
+#: abook.c:225
 #, c-format
 msgid "%s is not a valid HOME directory\n"
 msgstr "%s ist kein gültiges HOME Verzeichnis\n"
 
-#: abook.c:254
+#: abook.c:256
 #, c-format
 msgid ""
 "Cannot combine options --mutt-query, --convert, --add-email or --add-email-"
 "Die Optionen --mutt-query, --convert, --add-email und --add-email-"
 "quietkönnen nicht kombiniert werden\n"
 
-#: abook.c:285
+#: abook.c:287
 #, c-format
 msgid "please use option --%s after --convert option\n"
 msgstr "Bitte die Option --%s nach der Option --convert angeben\n"
 
-#: abook.c:384
+#: abook.c:386
 #, c-format
 msgid "%s: unrecognized arguments on command line\n"
 msgstr "%s: unbekannte Argumente auf der Kommandozeile\n"
 
-#: abook.c:406
+#: abook.c:408
 msgid "     -h\t--help\t\t\t\tshow usage"
 msgstr "     -h\t--help\t\t\t\tHilfe anzeigen"
 
-#: abook.c:407
+#: abook.c:409
 msgid "     -C\t--config\t<file>\t\tuse an alternative configuration file"
 msgstr "     -C\t--config\t<datei>\t\tAlternative Config-Datei verwenden"
 
-#: abook.c:408
+#: abook.c:410
 msgid "\t--datafile\t<file>\t\tuse an alternative addressbook file"
 msgstr "\t--datafile\t<datei>\t\tAlternative Adressbuch-Datei verwenden"
 
-#: abook.c:409
+#: abook.c:411
 msgid "\t--mutt-query\t<string>\tmake a query for mutt"
 msgstr "\t--mutt-query\t<string>\tMutt-Anfrage durchführen"
 
-#: abook.c:410
+#: abook.c:412
 msgid ""
 "\t--add-email\t\t\tread an e-mail message from stdin and\n"
 "\t\t\t\t\tadd the sender to the addressbook"
 "\t--add-email\t\t\tE-Mail-Adresse von stdin lesen und\n"
 "\t\t\t\t\tAbsender zum Adressbuch hinzufügen"
 
-#: abook.c:414
+#: abook.c:416
 msgid ""
 "\t--add-email-quiet\t\tsame as --add-email but doesn't\n"
 "\t\t\t\t\trequire to confirm adding"
 "\t--add-email-quiet\t\twie --add-email, aber man muss\n"
 "\t\t\t\t\tdas Hinzufügen nicht bestätigen"
 
-#: abook.c:418
+#: abook.c:420
 msgid "\t--convert\t\t\tconvert address book files"
 msgstr "\t--convert\t\t\tAdressbuch-Dateien konvertieren"
 
-#: abook.c:419
+#: abook.c:421
 msgid "\toptions to use with --convert:"
 msgstr "\tOptionen in Verbindung mit --convert:"
 
-#: abook.c:420
+#: abook.c:422
 msgid "\t--informat\t<format>\tformat for input file"
 msgstr "\t--informat\t<format>\tFormat für Eingabedatei"
 
-#: abook.c:421
+#: abook.c:423
 msgid "\t\t\t\t\t(default: abook)"
 msgstr "\t\t\t\t\t(Standard: abook)"
 
-#: abook.c:422
+#: abook.c:424
 msgid "\t--infile\t<file>\t\tsource file"
 msgstr "\t--infile\t<datei>\t\tQuelldatei"
 
-#: abook.c:423
+#: abook.c:425
 msgid "\t\t\t\t\t(default: stdin)"
 msgstr "\t\t\t\t\t(Standard: stdin)"
 
-#: abook.c:424
+#: abook.c:426
 msgid "\t--outformat\t<format>\tformat for output file"
 msgstr "\t--outformat\t<format>\tFormat für Ausgabedatei"
 
-#: abook.c:425
+#: abook.c:427
 msgid "\t\t\t\t\t(default: text)"
 msgstr "\t\t\t\t\t(Standard: text)"
 
-#: abook.c:426
+#: abook.c:428
 msgid "\t--outfile\t<file>\t\tdestination file"
 msgstr "\t--outfile\t<datei>\t\tZieldatei"
 
-#: abook.c:427
+#: abook.c:429
 msgid "\t\t\t\t\t(default: stdout)"
 msgstr "\t\t\t\t\t(Standard: stdout)"
 
-#: abook.c:428
+#: abook.c:430
 msgid "\t--formats\t\t\tlist available formats"
 msgstr "\t--formats\t\t\tVerfügbare Formate auflisten"
 
-#: abook.c:499
+#: abook.c:501
 #, c-format
 msgid "Cannot open database\n"
 msgstr "Kann die Datenbank nicht öffnen\n"
 
-#: abook.c:625
+#: abook.c:627
 #, c-format
 msgid "too few arguments to make conversion\n"
 msgstr "zu wenig Argumente um die Konvertierung durchzuführen\n"
 
-#: abook.c:626
+#: abook.c:628
 #, c-format
 msgid "try --help\n"
 msgstr "versuche einmal --help\n"
 
 # I think "Abbruch" is better than e.g. "Beenden"
-#: abook.c:631
+#: abook.c:633
 #, c-format
 msgid ""
 "input and output formats are the same\n"
 "Eingabe- und Ausgabedatei sind identisch\n"
 "Abbruch...\n"
 
-#: abook.c:645
+#: abook.c:647
 #, c-format
 msgid "input format %s not supported\n"
 msgstr "Eingabeformat %s wird nicht unterstützt\n"
 
-#: abook.c:649
+#: abook.c:651
 #, c-format
 msgid "cannot read file %s\n"
 msgstr "kann die Datei %s nicht lesen\n"
 
-#: abook.c:658
+#: abook.c:660
 #, c-format
 msgid "output format %s not supported\n"
 msgstr "Ausgabeformat %s wird nicht unterstützt\n"
 
-#: abook.c:664
+#: abook.c:666
 #, c-format
 msgid "cannot write file %s\n"
 msgstr "kann die Datei %s nicht schreiben\n"
 
-#: abook.c:685
+#: abook.c:687
 #, c-format
 msgid "cannot open %s\n"
 msgstr "kann %s nicht öffnen\n"
 
-#: abook.c:688
+#: abook.c:690
 #, c-format
 msgid "%d item(s) added to %s\n"
 msgstr "%d Element(e) zu %s hinzugefügt\n"
 
-#: abook.c:690
+#: abook.c:692
 msgid "Valid sender address not found"
 msgstr "Keine gültige Absender-Adresse gefunden"
 
-#: abook.c:730
+#: abook.c:732
 #, c-format
 msgid "Address %s already in addressbook\n"
 msgstr "Adresse %s befindet sich bereits im Adressbuch\n"
 
 # I don't want to translate 'you' with 'du'
-#: abook.c:740
+#: abook.c:742
 #, c-format
 msgid ""
 "cannot open /dev/tty\n"
 "kann /dev/tty nicht öffnen\n"
 "versuche es einmal mit --add-email-quiet\n"
 
-#: abook.c:746
+#: abook.c:748
 #, c-format
 msgid "Add \"%s <%s>\" to %s? (%c/%c)\n"
 msgstr "Füge \"%s <%s>\" zu %s hinzu? (%c/%c)\n"
 
-#: abook.c:750 abook.c:757 ui.c:343 ui.c:605
+#: abook.c:752 abook.c:759 ui.c:343 ui.c:609
 msgid "keybinding for yes|y"
 msgstr "j"
 
-#: abook.c:751 abook.c:753 ui.c:341
+#: abook.c:753 abook.c:755 ui.c:341
 msgid "keybinding for no|n"
 msgstr "n"
 
-#: abook.c:778
+#: abook.c:780
 #, c-format
 msgid "stdin is a directory or cannot stat stdin\n"
 msgstr ""
 msgstr "Name"
 
 #: database.c:46
-#, fuzzy
 msgid "E-mail addresses"
-msgstr "E-Mail-Adressen:"
+msgstr "E-Mail-Adressen"
 
 #: database.c:47
 msgid "Address"
 msgid "Anniversary day"
 msgstr ""
 
-#: database.c:164
+#: database.c:166
 msgid "field already defined"
-msgstr ""
+msgstr "Feld bereits definiert"
 
-#: database.c:168
+#: database.c:170
 msgid "standard field does not need to be declared"
 msgstr ""
 
-#: database.c:183
-#, fuzzy
+#: database.c:185
 msgid "unknown type"
-msgstr "unbekannte Option"
+msgstr "unbekannter Typ"
 
-#: database.c:583
+#: database.c:585
 msgid "Invalid field value defined in configuration"
 msgstr "Ungültiger Feld-Wert in der Konfiguration festgelegt"
 
-#: database.c:586
+#: database.c:588
 #, fuzzy
 msgid "Invalid field value for sorting"
 msgstr "Ungültiger Feld-Wert in der Konfiguration festgelegt"
 
-#: edit.c:53
+#: edit.c:51
 msgid "Tab name too wide for screen"
 msgstr "Kartei-Name zu breit für den Bildschirm"
 
-#: edit.c:355
+#: edit.c:353
 msgid "keybindings_new_123456789|n123456789"
-msgstr ""
+msgstr "n123456789"
 
-#: edit.c:357
+#: edit.c:355
 #, c-format
 msgid "Choose %s to modify (<1>%s%c%s%s."
 msgstr ""
 
-#: edit.c:358
-#, fuzzy
+#: edit.c:356
 msgid "email"
-msgstr "E-Mails"
+msgstr "E-Mail"
 
-#: edit.c:358
+#: edit.c:356
 msgid "item"
-msgstr ""
+msgstr "Element"
 
-#: edit.c:363
+#: edit.c:361
 msgid " or <n>ew"
-msgstr ""
+msgstr " oder <n>eu"
 
-#: edit.c:381
-#, fuzzy
+#: edit.c:379
 msgid "E-mail: "
-msgstr "E-Mails"
+msgstr "E-Mails: "
 
-#: edit.c:381
+#: edit.c:379
 msgid "Item: "
-msgstr ""
+msgstr "Element: "
 
-#: edit.c:478
+#: edit.c:465
 msgid "Day: "
 msgstr ""
 
-#: edit.c:478
+#: edit.c:465
 msgid "Month: "
 msgstr ""
 
-#: edit.c:478
+#: edit.c:465
 msgid "Year (optional): "
 msgstr ""
 
-#: edit.c:511
+#: edit.c:498
 #, fuzzy
 msgid "Invalid date"
 msgstr "ungültiger Wert"
 
-#: edit.c:666
+#: edit.c:653
 msgid "Name: "
 msgstr "Name: "
 
-#: edit.h:13
+#: edit.h:14
 msgid "?:help q:quit editor"
-msgstr ""
+msgstr "?:Hilfe q:Editor beenden"
 
-#: filter.c:70 filter.c:81
+#: filter.c:71 filter.c:82
 msgid "abook native format"
 msgstr "abooks eigenes Format"
 
-#: filter.c:71
+#: filter.c:72
 msgid "ldif / Netscape addressbook"
 msgstr "ldif / Netscape Adressbuch"
 
-#: filter.c:72 filter.c:83
+#: filter.c:73 filter.c:84
 msgid "mutt alias"
 msgstr "mutt alias"
 
-#: filter.c:73 filter.c:85
+#: filter.c:74 filter.c:86
 msgid "pine addressbook"
 msgstr "pine Adressbuch"
 
-#: filter.c:74 filter.c:87
+#: filter.c:75 filter.c:88
 msgid "comma separated values"
 msgstr "komma-separierte Werte"
 
-#: filter.c:75 filter.c:88
+#: filter.c:76 filter.c:89
 msgid "comma separated values (all fields)"
 msgstr "komma-separierte Werte (alle Felder)"
 
-#: filter.c:76 filter.c:89
+#: filter.c:77 filter.c:90
 msgid "Palm comma separated values"
 msgstr "Palm komma-separierte Werte"
 
-#: filter.c:82
+#: filter.c:83
 msgid "ldif / Netscape addressbook (.4ld)"
 msgstr "ldif / Netscape Adressbuch (.4ld)"
 
-#: filter.c:84
+#: filter.c:85
 msgid "html document"
 msgstr "HTML Dokument"
 
-#: filter.c:86
+#: filter.c:87
 msgid "GnomeCard (VCard) addressbook"
 msgstr "GnomeCard (VCard) Adressbuch"
 
-#: filter.c:90
+#: filter.c:91
 msgid "elm alias"
 msgstr "elm alias"
 
-#: filter.c:91
+#: filter.c:92
 msgid "plain text"
 msgstr "Klartext"
 
-#: filter.c:92
+#: filter.c:93
 #, fuzzy
 msgid "Wanderlust address book"
 msgstr "pine Adressbuch"
 
-#: filter.c:93
+#: filter.c:94
 msgid "Spruce address book"
 msgstr "Spruce Adressbuch"
 
-#: filter.c:106
+#: filter.c:95
+msgid "BSD calendar"
+msgstr ""
+
+#: filter.c:108
 msgid "input:"
 msgstr "Eingabe:"
 
-#: filter.c:113
+#: filter.c:115
 msgid "output:"
 msgstr "Ausgabe:"
 
-#: filter.c:178
+#: filter.c:180
 msgid "import database"
 msgstr "importiere Datenbank"
 
-#: filter.c:180 filter.c:297
+#: filter.c:182 filter.c:299
 msgid "please select a filter"
 msgstr "Bitte Filter auswählen"
 
-#: filter.c:188 filter.c:305
+#: filter.c:190 filter.c:307
 msgid "x -\tcancel"
 msgstr "x -\tabbrechen"
 
-#: filter.c:209 filter.c:343
+#: filter.c:211 filter.c:345
 msgid "Filename: "
 msgstr "Dateiname: "
 
-#: filter.c:216
+#: filter.c:218
 msgid "Error occured while opening the file"
 msgstr "Fehler beim Öffnen der Datei"
 
-#: filter.c:218
+#: filter.c:220
 msgid "File does not seem to be a valid addressbook"
 msgstr "Die Datei scheint kein gültiges Adressbuch zu sein"
 
-#: filter.c:295
+#: filter.c:297
 msgid "export database"
 msgstr "exportiere Datenbank"
 
 # instead: Exportiere alle (a), exportiere ausgewählte (s), oder abbrechen (c)?
-#: filter.c:328
+#: filter.c:330
 msgid "Export <a>ll, export <s>elected, or <c>ancel?"
 msgstr "Exportiere <a>lle, exportiere au<s>gewählte, oder bri<c>h ab?"
 
-#: filter.c:329 ui.c:628
+#: filter.c:331 ui.c:632
 msgid "keybindings:all/selected/cancel|asc"
 msgstr ""
 
-#: filter.c:350
+#: filter.c:352
 msgid "Error occured while exporting"
 msgstr "Fehler beim Exportieren aufgetreten"
 
+#: filter.c:1896
+#, c-format
+msgid "%02d/%02d\tAnniversary of %s\n"
+msgstr ""
+
 #: help.h:11
 msgid "\t?\t\thelp\n"
 msgstr "\t?\t\tHilfe\n"
 msgstr "\tm\t\tE-Mail mit Mutt senden\n"
 
 #: help.h:47
-msgid "\tu\t\tview URL with web browser\n"
-msgstr "\tu\t\tURL mit Web-Browser anzeigen\n"
+msgid "\tv\t\tview URL with web browser\n"
+msgstr "\tv\t\tURL mit Web-Browser anzeigen\n"
 
 #: help.h:55
 #, fuzzy
 msgid "\tv\t\t\tview url with web browser\n"
 msgstr "\tv\t\t\tURL mit Web-Browser anzeigen\n"
 
-#: options.c:254
+#: options.c:250
 msgid "quote mismatch"
 msgstr ""
 
-#: options.c:260
+#: options.c:256
 msgid "no assignment character found"
 msgstr ""
 
-#: options.c:263
-#, fuzzy
+#: options.c:259
 msgid "error in comma separated list"
-msgstr "komma-separierte Werte"
+msgstr "Fehler in komma-separierter Liste"
 
-#: options.c:292 options.c:311
+#: options.c:289 options.c:308
 msgid "invalid value"
 msgstr "ungültiger Wert"
 
 msgid "Clear WHOLE database"
 msgstr "Lösche GESAMTE Datenbank"
 
-#: ui.c:578
+#: ui.c:582
 msgid "Search hit bottom, continuing at top"
 msgstr "Suche hat das Ende erreicht, weiter am Anfang"
 
 # Why 'y', and not 'j'?
 # c-format
-#: ui.c:603
+#: ui.c:607
 #, c-format
 msgid "Your current data will be lost - Press '%c' to continue"
 msgstr "Die aktuellen Daten sind verloren - Drücke '%c' um fortzufahren"
 
 # instead: Drucke alle (a), drucke ausgewählte (s), oder abbrechen (c)?
-#: ui.c:628
+#: ui.c:632
 msgid "Print <a>ll, print <s>elected, or <c>ancel?"
 msgstr "Drucke <a>lle, drucke au<s>gewählte oder bri<c>h ab?"
 
-#: ui.c:634
+#: ui.c:638
 msgid "No selected items"
 msgstr "Keine Elemente ausgewählt"
 
-#: ui.c:660
+#: ui.c:664
 msgid "File to open: "
 msgstr "Öffne Datei: "
 
-#: ui.c:670
+#: ui.c:674
 msgid "Save current database"
 msgstr "Speichere aktuelle Datenbank"
 
-#: ui.c:678
+#: ui.c:682
 msgid "Sorry, the specified file appears not to be a valid abook addressbook"
 msgstr ""
 "Die angegebene Datei scheint leider kein gültiges abook Adressbuch zu sein"
 msgstr "ADRESSE"
 
 #: views.c:142
-#, fuzzy
 msgid "PHONE"
 msgstr "TELEFON"
 
 #: views.c:143
-#, fuzzy
 msgid "OTHER"
 msgstr "ANDERE"
 
 #: views.c:165 views.c:166 views.c:167 views.c:168 views.c:169
-#, fuzzy
 msgid "CUSTOM"
 msgstr "BENUTZER"
 
 #: views.c:169
 msgid "Custom5"
 msgstr "Benutzer5"
-
-#~ msgid "?:help c:contact a:address p:phone o:other"
-#~ msgstr "?:Hilfe c:Kontakt a:Adresse p:Telefon o:Andere"
-
-#~ msgid "invalid custom field number"
-#~ msgstr "ungültige benutzerdefinierte Feldnummer"
 
 msgstr ""
 "Project-Id-Version: abook\n"
 "Report-Msgid-Bugs-To: <abook-devel@lists.sourceforge.net>\n"
-"POT-Creation-Date: 2006-08-29 22:30+0300\n"
-"PO-Revision-Date: 2006-08-09 23:57+0200\n"
+"POT-Creation-Date: 2006-09-06 17:14+0300\n"
+"PO-Revision-Date: 2006-09-05 11:42+0200\n"
 "Last-Translator: Cedric Duval <cedricduval+abook@free.fr>\n"
 "Language-Team: french\n"
 "MIME-Version: 1.0\n"
 msgid "Press enter to continue...\n"
 msgstr "Appuyez sur entrée pour continuer...\n"
 
-#: abook.c:141
+#: abook.c:143
 #, c-format
 msgid "File %s is not writeable"
 msgstr "Impossible d'écrire dans le fichier %s"
 
-#: abook.c:146
+#: abook.c:148
 msgid "If you continue all changes will be lost. Do you want to continue?"
 msgstr ""
-"En continuant vos modifications seront perdues. Voulez-vous continuer ?"
+"Si vous continuez, vos modifications seront perdues. Voulez-vous continuer ?"
 
-#: abook.c:165
+#: abook.c:167
 msgid "Save database"
 msgstr "Sauvegarder la base de données"
 
-#: abook.c:167
+#: abook.c:169
 msgid "Quit without saving"
 msgstr "Quitter sans sauvegarder"
 
-#: abook.c:223
+#: abook.c:225
 #, c-format
 msgid "%s is not a valid HOME directory\n"
 msgstr "%s n'est pas un répertoire personnel (HOME) valide\n"
 
-#: abook.c:254
+#: abook.c:256
 #, c-format
 msgid ""
 "Cannot combine options --mutt-query, --convert, --add-email or --add-email-"
 "Impossible de combiner les options --mutt-query, --convert, --add-email ou --"
 "add-email-quiet\n"
 
-#: abook.c:285
+#: abook.c:287
 #, c-format
 msgid "please use option --%s after --convert option\n"
 msgstr "Veuillez utiliser l'option --%s après l'option --convert\n"
 
-#: abook.c:384
+#: abook.c:386
 #, c-format
 msgid "%s: unrecognized arguments on command line\n"
 msgstr "%s: paramètres de ligne de commande non reconnus\n"
 
-#: abook.c:406
+#: abook.c:408
 msgid "     -h\t--help\t\t\t\tshow usage"
-msgstr "     -h\t--help\t\t\t\tmontrer l'utilisation"
+msgstr "     -h\t--help\t\t\t\tafficher l'aide"
 
-#: abook.c:407
+#: abook.c:409
 msgid "     -C\t--config\t<file>\t\tuse an alternative configuration file"
 msgstr ""
-"     -C\t--config\t<fichier>\tutiliser un fichier de configuration\n"
-"\t\t\t\t\talternatif"
+"     -C\t--config\t<fichier>\tutiliser un autre fichier de configuration"
 
-#: abook.c:408
+#: abook.c:410
 msgid "\t--datafile\t<file>\t\tuse an alternative addressbook file"
 msgstr "\t--datafile\t<fichier>\tutiliser un autre carnet d'adresses"
 
-#: abook.c:409
+#: abook.c:411
 msgid "\t--mutt-query\t<string>\tmake a query for mutt"
 msgstr "\t--mutt-query\t<chaine>\teffectuer une requête pour mutt"
 
-#: abook.c:410
+#: abook.c:412
 msgid ""
 "\t--add-email\t\t\tread an e-mail message from stdin and\n"
 "\t\t\t\t\tadd the sender to the addressbook"
 "\t\t\t\t\tl'entrée standard et ajouter\n"
 "\t\t\t\t\tl'expéditeur au carnet d'adresses"
 
-#: abook.c:414
+#: abook.c:416
 msgid ""
 "\t--add-email-quiet\t\tsame as --add-email but doesn't\n"
 "\t\t\t\t\trequire to confirm adding"
 "\t--add-email-quiet\t\tcomme --add-email mais sans nécessité de confirmer\n"
 "\t\t\t\t\tl'ajout"
 
-#: abook.c:418
+#: abook.c:420
 msgid "\t--convert\t\t\tconvert address book files"
 msgstr "\t--convert\t\t\tconvertir des carnets d'adresses"
 
-#: abook.c:419
+#: abook.c:421
 msgid "\toptions to use with --convert:"
-msgstr "\toptions à utiliser avec --convert :"
+msgstr "\toptions à utiliser avec --convert:"
 
-#: abook.c:420
+#: abook.c:422
 msgid "\t--informat\t<format>\tformat for input file"
 msgstr "\t--informat\t<format>\tformat du fichier source"
 
-#: abook.c:421
+#: abook.c:423
 msgid "\t\t\t\t\t(default: abook)"
 msgstr "\t\t\t\t\t(défaut: abook)"
 
-#: abook.c:422
+#: abook.c:424
 msgid "\t--infile\t<file>\t\tsource file"
 msgstr "\t--infile\t<file>\t\tfichier source"
 
-#: abook.c:423
+#: abook.c:425
 msgid "\t\t\t\t\t(default: stdin)"
 msgstr "\t\t\t\t\t(défaut: entrée standard)"
 
-#: abook.c:424
+#: abook.c:426
 msgid "\t--outformat\t<format>\tformat for output file"
 msgstr "\t--outformat\t<format>\tformat du fichier de destination"
 
-#: abook.c:425
+#: abook.c:427
 msgid "\t\t\t\t\t(default: text)"
 msgstr "\t\t\t\t\t(défaut: texte)"
 
-#: abook.c:426
+#: abook.c:428
 msgid "\t--outfile\t<file>\t\tdestination file"
 msgstr "\t--outfile\t<file>\t\tfichier de destination"
 
-#: abook.c:427
+#: abook.c:429
 msgid "\t\t\t\t\t(default: stdout)"
 msgstr "\t\t\t\t\t(défaut: sortie standard)"
 
-#: abook.c:428
+#: abook.c:430
 msgid "\t--formats\t\t\tlist available formats"
 msgstr "\t--formats\t\t\tlister les formats disponibles"
 
-#: abook.c:499
+#: abook.c:501
 #, c-format
 msgid "Cannot open database\n"
 msgstr "Impossible d'ouvrir la base de données\n"
 
-#: abook.c:625
+#: abook.c:627
 #, c-format
 msgid "too few arguments to make conversion\n"
 msgstr "trop peu de paramètres pour effectuer la conversion\n"
 
-#: abook.c:626
+#: abook.c:628
 #, c-format
 msgid "try --help\n"
 msgstr "essayez --help\n"
 
-#: abook.c:631
+#: abook.c:633
 #, c-format
 msgid ""
 "input and output formats are the same\n"
 "la source et la destination sont identiques\n"
 "arrêt...\n"
 
-#: abook.c:645
+#: abook.c:647
 #, c-format
 msgid "input format %s not supported\n"
 msgstr "le format source %s n'est pas supporté\n"
 
-#: abook.c:649
+#: abook.c:651
 #, c-format
 msgid "cannot read file %s\n"
 msgstr "Impossible de lire le fichier %s\n"
 
-#: abook.c:658
+#: abook.c:660
 #, c-format
 msgid "output format %s not supported\n"
 msgstr "le format de destination %s n'est pas supporté\n"
 
-#: abook.c:664
+#: abook.c:666
 #, c-format
 msgid "cannot write file %s\n"
 msgstr "impossible d'écrire le fichier %s\n"
 
-#: abook.c:685
+#: abook.c:687
 #, c-format
 msgid "cannot open %s\n"
 msgstr "impossible d'ouvrir %s\n"
 
-#: abook.c:688
+#: abook.c:690
 #, c-format
 msgid "%d item(s) added to %s\n"
 msgstr "%d entrées ajoutées à %s\n"
 
-#: abook.c:690
+#: abook.c:692
 msgid "Valid sender address not found"
 msgstr "Aucune adresse d'expéditeur valide trouvée"
 
-#: abook.c:730
+#: abook.c:732
 #, c-format
 msgid "Address %s already in addressbook\n"
 msgstr "L'adresse %s figure déjà dans le carnet d'adresses\n"
 
-#: abook.c:740
+#: abook.c:742
 #, c-format
 msgid ""
 "cannot open /dev/tty\n"
 "you may want to use --add-email-quiet\n"
 msgstr ""
 "impossible d'ouvrir /dev/tty\n"
-"peut-être souhaiter-vous utiliser --add-email-quiet\n"
+"peut-être souhaitez-vous utiliser --add-email-quiet\n"
 
-#: abook.c:746
+#: abook.c:748
 #, c-format
 msgid "Add \"%s <%s>\" to %s? (%c/%c)\n"
 msgstr "Ajouter \"%s <%s>\" à %s ? (%c/%c)\n"
 
-#: abook.c:750 abook.c:757 ui.c:343 ui.c:605
+#: abook.c:752 abook.c:759 ui.c:343 ui.c:609
 msgid "keybinding for yes|y"
 msgstr "o"
 
-#: abook.c:751 abook.c:753 ui.c:341
+#: abook.c:753 abook.c:755 ui.c:341
 msgid "keybinding for no|n"
 msgstr "n"
 
-#: abook.c:778
+#: abook.c:780
 #, c-format
 msgid "stdin is a directory or cannot stat stdin\n"
 msgstr "stdin est un répertoire, ou impossible d'en quérir son état\n"
 msgid "Anniversary day"
 msgstr "Date d'anniversaire"
 
-#: database.c:164
+#: database.c:166
 msgid "field already defined"
 msgstr "champ déjà défini"
 
-#: database.c:168
+#: database.c:170
 msgid "standard field does not need to be declared"
 msgstr "les champs standard n'ont pas besoin d'être déclarés"
 
-#: database.c:183
+#: database.c:185
 msgid "unknown type"
 msgstr "type inconnu"
 
-#: database.c:583
+#: database.c:585
 msgid "Invalid field value defined in configuration"
 msgstr "Valeur de champ invalide définie dans la configuration"
 
-#: database.c:586
+#: database.c:588
 msgid "Invalid field value for sorting"
 msgstr "Valeur de champ invalide pour le classement"
 
 # Comment traduire 'tab' ?
-#: edit.c:53
+#: edit.c:51
 msgid "Tab name too wide for screen"
-msgstr "Intitulé de \"tab\" trop large pour l'écran"
+msgstr "Intitulé d'onglet trop large pour l'écran"
 
-#: edit.c:355
+#: edit.c:353
 msgid "keybindings_new_123456789|n123456789"
 msgstr "n123456789"
 
-#: edit.c:357
+#: edit.c:355
 #, c-format
 msgid "Choose %s to modify (<1>%s%c%s%s."
 msgstr "Choisir %s à modifier (<1>%s%c%s%s."
 
-#: edit.c:358
+#: edit.c:356
 msgid "email"
 msgstr "email"
 
-#: edit.c:358
+#: edit.c:356
 msgid "item"
 msgstr "entrée"
 
-#: edit.c:363
+#: edit.c:361
 msgid " or <n>ew"
 msgstr " ou <n>nouveau"
 
-#: edit.c:381
+#: edit.c:379
 msgid "E-mail: "
 msgstr "Emails: "
 
-#: edit.c:381
+#: edit.c:379
 msgid "Item: "
 msgstr "Entrée: "
 
-#: edit.c:478
+#: edit.c:465
 msgid "Day: "
-msgstr ""
+msgstr "Jour: "
 
-#: edit.c:478
+#: edit.c:465
 msgid "Month: "
-msgstr ""
+msgstr "Mois: "
 
-#: edit.c:478
+#: edit.c:465
 msgid "Year (optional): "
-msgstr ""
+msgstr "Année (optionnelle): "
 
-#: edit.c:511
-#, fuzzy
+#: edit.c:498
 msgid "Invalid date"
-msgstr "valeur invalide"
+msgstr "Date invalide"
 
-#: edit.c:666
+#: edit.c:653
 msgid "Name: "
 msgstr "Nom: "
 
-#: edit.h:13
+#: edit.h:14
 msgid "?:help q:quit editor"
 msgstr "?:aide q:quitter l'éditeur"
 
-#: filter.c:70 filter.c:81
+#: filter.c:71 filter.c:82
 msgid "abook native format"
 msgstr "format natif abook"
 
-#: filter.c:71
+#: filter.c:72
 msgid "ldif / Netscape addressbook"
 msgstr "ldif / carnet d'adresses Netscape"
 
-#: filter.c:72 filter.c:83
+#: filter.c:73 filter.c:84
 msgid "mutt alias"
 msgstr "alias mutt"
 
-#: filter.c:73 filter.c:85
+#: filter.c:74 filter.c:86
 msgid "pine addressbook"
 msgstr "carnet d'adresses pine"
 
-#: filter.c:74 filter.c:87
+#: filter.c:75 filter.c:88
 msgid "comma separated values"
 msgstr "valeurs délimitées par des virgules"
 
-#: filter.c:75 filter.c:88
+#: filter.c:76 filter.c:89
 msgid "comma separated values (all fields)"
 msgstr "valeurs délimitées par des virgules (tous les champs)"
 
-#: filter.c:76 filter.c:89
+#: filter.c:77 filter.c:90
 msgid "Palm comma separated values"
 msgstr "valeur délimitées par des virgules, format Palm"
 
-#: filter.c:82
+#: filter.c:83
 msgid "ldif / Netscape addressbook (.4ld)"
 msgstr "ldif / carnet d'adresses Netscape (.41d)"
 
-#: filter.c:84
+#: filter.c:85
 msgid "html document"
 msgstr "document html"
 
-#: filter.c:86
+#: filter.c:87
 msgid "GnomeCard (VCard) addressbook"
 msgstr "carnet d'adresses GnomCard (VCard)"
 
-#: filter.c:90
+#: filter.c:91
 msgid "elm alias"
 msgstr "alias elm"
 
-#: filter.c:91
+#: filter.c:92
 msgid "plain text"
 msgstr "texte simple"
 
-#: filter.c:92
+#: filter.c:93
 msgid "Wanderlust address book"
 msgstr "carnet d'adresses Wanderlust"
 
-#: filter.c:93
+#: filter.c:94
 msgid "Spruce address book"
 msgstr "carnet d'adresses Spruce"
 
-#: filter.c:106
+#: filter.c:95
+msgid "BSD calendar"
+msgstr ""
+
+#: filter.c:108
 msgid "input:"
 msgstr "entrée:"
 
-#: filter.c:113
+#: filter.c:115
 msgid "output:"
 msgstr "sortie:"
 
-#: filter.c:178
+#: filter.c:180
 msgid "import database"
 msgstr "importer la base de données"
 
-#: filter.c:180 filter.c:297
+#: filter.c:182 filter.c:299
 msgid "please select a filter"
-msgstr "veuiller choisir un filtre"
+msgstr "veuillez choisir un filtre"
 
-#: filter.c:188 filter.c:305
+#: filter.c:190 filter.c:307
 msgid "x -\tcancel"
 msgstr "x - \tannuler"
 
-#: filter.c:209 filter.c:343
+#: filter.c:211 filter.c:345
 msgid "Filename: "
 msgstr "Nom de fichier: "
 
-#: filter.c:216
+#: filter.c:218
 msgid "Error occured while opening the file"
 msgstr "Une erreur est survenue à l'ouverture du fichier"
 
-#: filter.c:218
+#: filter.c:220
 msgid "File does not seem to be a valid addressbook"
 msgstr "Le fichier spécifié ne semble pas être un carnet d'adresses valide"
 
-#: filter.c:295
+#: filter.c:297
 msgid "export database"
 msgstr "exporter la base de données"
 
-#: filter.c:328
+#: filter.c:330
 msgid "Export <a>ll, export <s>elected, or <c>ancel?"
 msgstr "Exporter <t>out, exporter les entrées <s>électionnées, ou <a>nnuler ?"
 
-#: filter.c:329 ui.c:628
+#: filter.c:331 ui.c:632
 msgid "keybindings:all/selected/cancel|asc"
 msgstr "tsa"
 
-#: filter.c:350
+#: filter.c:352
 msgid "Error occured while exporting"
 msgstr "Une erreur est survenue lors de l'exportation"
 
+#: filter.c:1896
+#, c-format
+msgid "%02d/%02d\tAnniversary of %s\n"
+msgstr ""
+
 #: help.h:11
 msgid "\t?\t\thelp\n"
 msgstr "\t?\t\taide\n"
 
 #: help.h:15
 msgid "\t^L\t\trefresh screen\n"
-msgstr "\t^L\t\traffraîchir l'écran\n"
+msgstr "\t^L\t\trafraîchir l'écran\n"
 
 #: help.h:17
 msgid "\tarrows / j,k\tscroll list\n"
 
 #: help.h:21
 msgid "\tD\t\tduplicate item\n"
-msgstr "\tD\t\tduppliquer une entrée\n"
+msgstr "\tD\t\tdupliquer une entrée\n"
 
 #: help.h:23
 msgid "\tspace\t\tselect item\n"
 msgstr "\tm\t\tenvoyer un courrier électronique avec mutt\n"
 
 #: help.h:47
-msgid "\tu\t\tview URL with web browser\n"
-msgstr "\tu\t\tvisualiser l'URL avec un navigateur web\n"
+msgid "\tv\t\tview URL with web browser\n"
+msgstr "\tv\t\tvisualiser l'URL avec un navigateur web\n"
 
 #: help.h:55
 msgid "\tarrows/h,l\t\tchange tab\n"
 
 #: help.h:67
 msgid "\tu\t\t\tundo\n"
-msgstr "\tu\t\t\tdéfaire\n"
+msgstr "\tu\t\t\tannuler\n"
 
 #: help.h:69
 msgid "\tm\t\t\tsend mail with mutt\n"
 msgid "\tv\t\t\tview url with web browser\n"
 msgstr "\tv\t\t\tvisualiser l'URL avec un navigateur web\n"
 
-#: options.c:254
+#: options.c:250
 msgid "quote mismatch"
-msgstr "problème de correspondance de caractère de quotation"
+msgstr "problème de correspondance de guillemets"
 
-#: options.c:260
+#: options.c:256
 msgid "no assignment character found"
-msgstr "pas de caractère assignation trouvé"
+msgstr "pas de caractère d'affectation trouvé"
 
-#: options.c:263
+#: options.c:259
 msgid "error in comma separated list"
 msgstr "erreur dans la liste de valeurs délimitées par des virgules"
 
-#: options.c:292 options.c:311
+#: options.c:289 options.c:308
 msgid "invalid value"
 msgstr "valeur invalide"
 
 #: options.c:490
 #, c-format
 msgid "%s: parse error at line %d: "
-msgstr "%s: erreur d'analyse lexicale à la ligne %d:"
+msgstr "%s: erreur d'analyse lexicale à la ligne %d: "
 
 #: options.c:494
 #, c-format
 msgid "Clear WHOLE database"
 msgstr "Effacer ENTIÈREMENT la base de données"
 
-#: ui.c:578
+#: ui.c:582
 msgid "Search hit bottom, continuing at top"
 msgstr "La recherche a atteint la fin, poursuite au début"
 
-#: ui.c:603
+#: ui.c:607
 #, c-format
 msgid "Your current data will be lost - Press '%c' to continue"
 msgstr "Vos données actuelles seront perdues - Appuyez sur '%c' pour continuer"
 
-#: ui.c:628
+#: ui.c:632
 msgid "Print <a>ll, print <s>elected, or <c>ancel?"
 msgstr "Imprimer <t>out, imprimer les entrées <s>électionnées, ou <a>nnuler ?"
 
-#: ui.c:634
+#: ui.c:638
 msgid "No selected items"
 msgstr "Pas d'entrée sélectionnée"
 
-#: ui.c:660
+#: ui.c:664
 msgid "File to open: "
 msgstr "Fichier à ouvrir: "
 
-#: ui.c:670
+#: ui.c:674
 msgid "Save current database"
 msgstr "Sauvegarder la base de données"
 
-#: ui.c:678
+#: ui.c:682
 msgid "Sorry, the specified file appears not to be a valid abook addressbook"
 msgstr ""
 "Désolé, le fichier spécifié ne semble pas être un carnet d'adresses valide"
 
 msgstr ""
 "Project-Id-Version: abook 0.5.5\n"
 "Report-Msgid-Bugs-To: <abook-devel@lists.sourceforge.net>\n"
-"POT-Creation-Date: 2006-08-29 22:30+0300\n"
+"POT-Creation-Date: 2006-09-06 17:14+0300\n"
 "PO-Revision-Date: 2006-08-26 01:26+0200\n"
 "Last-Translator: Claudio Stazzone <c.stazzo@jumpy.it>\n"
 "Language-Team: none\n"
 msgid "Press enter to continue...\n"
 msgstr "Premi invio per continuare...\n"
 
-#: abook.c:141
+#: abook.c:143
 #, c-format
 msgid "File %s is not writeable"
 msgstr "Il file %s non è scrivibile"
 
-#: abook.c:146
+#: abook.c:148
 msgid "If you continue all changes will be lost. Do you want to continue?"
 msgstr "Se continui i cambiamenti verranno persi. Vuoi continuare?"
 
-#: abook.c:165
+#: abook.c:167
 msgid "Save database"
 msgstr "Salva il database"
 
-#: abook.c:167
+#: abook.c:169
 msgid "Quit without saving"
 msgstr "Esci senza salvare"
 
-#: abook.c:223
+#: abook.c:225
 #, c-format
 msgid "%s is not a valid HOME directory\n"
 msgstr "%s non è una directory HOME valida\n"
 
-#: abook.c:254
+#: abook.c:256
 #, c-format
 msgid ""
 "Cannot combine options --mutt-query, --convert, --add-email or --add-email-"
 "Non posso combinare le opzioni --mutt-query, --convert, --add-email o --add-"
 "email-quiet\n"
 
-#: abook.c:285
+#: abook.c:287
 #, c-format
 msgid "please use option --%s after --convert option\n"
 msgstr "per favore usa l'opzione --%s dopo --convert option\n"
 
-#: abook.c:384
+#: abook.c:386
 #, c-format
 msgid "%s: unrecognized arguments on command line\n"
 msgstr "%s: argomenti non validi\n"
 
-#: abook.c:406
+#: abook.c:408
 msgid "     -h\t--help\t\t\t\tshow usage"
 msgstr "     -h\t--help\t\t\t\tmostra l'utilizzo"
 
-#: abook.c:407
+#: abook.c:409
 msgid "     -C\t--config\t<file>\t\tuse an alternative configuration file"
 msgstr "     -C\t--config\t<file>\t\tusa un file di configurazione diverso"
 
-#: abook.c:408
+#: abook.c:410
 msgid "\t--datafile\t<file>\t\tuse an alternative addressbook file"
 msgstr "\t--datafile\t<file>\t\tusa un file di rubrica diverso"
 
-#: abook.c:409
+#: abook.c:411
 msgid "\t--mutt-query\t<string>\tmake a query for mutt"
 msgstr "\t--mutt-query\t<string>\tesegue una ricerca per mutt"
 
-#: abook.c:410
+#: abook.c:412
 msgid ""
 "\t--add-email\t\t\tread an e-mail message from stdin and\n"
 "\t\t\t\t\tadd the sender to the addressbook"
 "\t--add-email\t\t\tlegge un messaggio da standard input e\n"
 "\t\t\t\t\taggiunge il mittente alla rubrica"
 
-#: abook.c:414
+#: abook.c:416
 msgid ""
 "\t--add-email-quiet\t\tsame as --add-email but doesn't\n"
 "\t\t\t\t\trequire to confirm adding"
 "\t--add-email-quiet\t\tlo stesso che --add-email ma non\n"
 "\t\t\t\t\trichiede la conferma"
 
-#: abook.c:418
+#: abook.c:420
 msgid "\t--convert\t\t\tconvert address book files"
 msgstr "\t--convert\t\t\tconverte i file di rubrica"
 
-#: abook.c:419
+#: abook.c:421
 msgid "\toptions to use with --convert:"
 msgstr "\topzioni da usare con --convert:"
 
-#: abook.c:420
+#: abook.c:422
 msgid "\t--informat\t<format>\tformat for input file"
 msgstr "\t--informat\t<format>\tformato del file di input"
 
-#: abook.c:421
+#: abook.c:423
 msgid "\t\t\t\t\t(default: abook)"
 msgstr "\t\t\t\t\t(predefinito: abook)"
 
-#: abook.c:422
+#: abook.c:424
 msgid "\t--infile\t<file>\t\tsource file"
 msgstr "\t--infile\t<file>\t\tfile sorgente"
 
-#: abook.c:423
+#: abook.c:425
 msgid "\t\t\t\t\t(default: stdin)"
 msgstr "\t\t\t\t\t(predefinito: standard input)"
 
-#: abook.c:424
+#: abook.c:426
 msgid "\t--outformat\t<format>\tformat for output file"
 msgstr "\t--outformat\t<format>\tformato file di output"
 
-#: abook.c:425
+#: abook.c:427
 msgid "\t\t\t\t\t(default: text)"
 msgstr "\t\t\t\t\t(predefinito: testo)"
 
-#: abook.c:426
+#: abook.c:428
 msgid "\t--outfile\t<file>\t\tdestination file"
 msgstr "\t--outfile\t<file>\t\tfile di destinazione"
 
-#: abook.c:427
+#: abook.c:429
 msgid "\t\t\t\t\t(default: stdout)"
 msgstr "\t\t\t\t\t(predefinito: standard output)"
 
-#: abook.c:428
+#: abook.c:430
 msgid "\t--formats\t\t\tlist available formats"
 msgstr "\t--formats\t\t\tlista dei formati disponibili"
 
-#: abook.c:499
+#: abook.c:501
 #, c-format
 msgid "Cannot open database\n"
 msgstr "Non posso aprire il database\n"
 
-#: abook.c:625
+#: abook.c:627
 #, c-format
 msgid "too few arguments to make conversion\n"
 msgstr "argomenti insufficienti per convertire\n"
 
-#: abook.c:626
+#: abook.c:628
 #, c-format
 msgid "try --help\n"
 msgstr "prova --help\n"
 
-#: abook.c:631
+#: abook.c:633
 #, c-format
 msgid ""
 "input and output formats are the same\n"
 "i formati di input e output sono gli stessi\n"
 "uscita...\n"
 
-#: abook.c:645
+#: abook.c:647
 #, c-format
 msgid "input format %s not supported\n"
 msgstr "formato di input %s non supportato\n"
 
-#: abook.c:649
+#: abook.c:651
 #, c-format
 msgid "cannot read file %s\n"
 msgstr "non posso leggere il file %s\n"
 
-#: abook.c:658
+#: abook.c:660
 #, c-format
 msgid "output format %s not supported\n"
 msgstr "formato di output %s non supportato\n"
 
-#: abook.c:664
+#: abook.c:666
 #, c-format
 msgid "cannot write file %s\n"
 msgstr "non posso scrivere il file %s\n"
 
-#: abook.c:685
+#: abook.c:687
 #, c-format
 msgid "cannot open %s\n"
 msgstr "non posso aprire %s\n"
 
-#: abook.c:688
+#: abook.c:690
 #, c-format
 msgid "%d item(s) added to %s\n"
 msgstr "%d oggetto/i aggiunto/i a %s\n"
 
-#: abook.c:690
+#: abook.c:692
 msgid "Valid sender address not found"
 msgstr "Impossibile trovare un valido indirizzo del mittente"
 
-#: abook.c:730
+#: abook.c:732
 #, c-format
 msgid "Address %s already in addressbook\n"
 msgstr "Indirizzo %s già presente in rubrica\n"
 
-#: abook.c:740
+#: abook.c:742
 #, c-format
 msgid ""
 "cannot open /dev/tty\n"
 "non posso aprire /dev/tty\n"
 "puoi usare --add-email-quiet\n"
 
-#: abook.c:746
+#: abook.c:748
 #, c-format
 msgid "Add \"%s <%s>\" to %s? (%c/%c)\n"
 msgstr "Aggiungi \"%s <%s>\" a %s? (%c/%c)\n"
 
-#: abook.c:750 abook.c:757 ui.c:343 ui.c:605
+#: abook.c:752 abook.c:759 ui.c:343 ui.c:609
 msgid "keybinding for yes|y"
 msgstr "s"
 
-#: abook.c:751 abook.c:753 ui.c:341
+#: abook.c:753 abook.c:755 ui.c:341
 msgid "keybinding for no|n"
 msgstr "n"
 
-#: abook.c:778
+#: abook.c:780
 #, c-format
 msgid "stdin is a directory or cannot stat stdin\n"
 msgstr "standard input è una directory o non posso usare standard input\n"
 msgid "Anniversary day"
 msgstr "Anniversario"
 
-#: database.c:164
+#: database.c:166
 msgid "field already defined"
 msgstr "campo già definito"
 
-#: database.c:168
+#: database.c:170
 msgid "standard field does not need to be declared"
 msgstr "campo standard non necessita dichiarazione"
 
-#: database.c:183
+#: database.c:185
 msgid "unknown type"
 msgstr "tipo sconosciuto"
 
-#: database.c:583
+#: database.c:585
 msgid "Invalid field value defined in configuration"
 msgstr "Valore di campo errato nella configurazione"
 
-#: database.c:586
+#: database.c:588
 msgid "Invalid field value for sorting"
 msgstr "Valore di campo errato per l'ordinamento"
 
-#: edit.c:53
+#: edit.c:51
 msgid "Tab name too wide for screen"
 msgstr "Nome etichetta troppo largo per lo schermo"
 
-#: edit.c:355
+#: edit.c:353
 msgid "keybindings_new_123456789|n123456789"
 msgstr "keybindings_new_123456789|n123456789"
 
-#: edit.c:357
+#: edit.c:355
 #, c-format
 msgid "Choose %s to modify (<1>%s%c%s%s."
 msgstr "Scegli %s per modificare (<1>%s%c%s%s."
 
-#: edit.c:358
+#: edit.c:356
 msgid "email"
 msgstr "email"
 
-#: edit.c:358
+#: edit.c:356
 msgid "item"
 msgstr "oggetto"
 
-#: edit.c:363
+#: edit.c:361
 msgid " or <n>ew"
 msgstr "o <n>uovo"
 
-#: edit.c:381
+#: edit.c:379
 msgid "E-mail: "
 msgstr "E-mails:"
 
-#: edit.c:381
+#: edit.c:379
 msgid "Item: "
 msgstr "Oggetto:"
 
-#: edit.c:478
+#: edit.c:465
 msgid "Day: "
 msgstr ""
 
-#: edit.c:478
+#: edit.c:465
 msgid "Month: "
 msgstr ""
 
-#: edit.c:478
+#: edit.c:465
 msgid "Year (optional): "
 msgstr ""
 
-#: edit.c:511
+#: edit.c:498
 #, fuzzy
 msgid "Invalid date"
 msgstr "valore non valido"
 
-#: edit.c:666
+#: edit.c:653
 msgid "Name: "
 msgstr "Nome: "
 
-#: edit.h:13
+#: edit.h:14
 msgid "?:help q:quit editor"
 msgstr "?:aiuto q:esci editor"
 
-#: filter.c:70 filter.c:81
+#: filter.c:71 filter.c:82
 msgid "abook native format"
 msgstr "formato nativo di abook"
 
-#: filter.c:71
+#: filter.c:72
 msgid "ldif / Netscape addressbook"
 msgstr "ldif / rubrica Netscape"
 
-#: filter.c:72 filter.c:83
+#: filter.c:73 filter.c:84
 msgid "mutt alias"
 msgstr "alias di mutt"
 
-#: filter.c:73 filter.c:85
+#: filter.c:74 filter.c:86
 msgid "pine addressbook"
 msgstr "rubrica di Pine"
 
-#: filter.c:74 filter.c:87
+#: filter.c:75 filter.c:88
 msgid "comma separated values"
 msgstr "valori separati da virgole"
 
-#: filter.c:75 filter.c:88
+#: filter.c:76 filter.c:89
 msgid "comma separated values (all fields)"
 msgstr "valori separati da virgole (tutti i campi)"
 
-#: filter.c:76 filter.c:89
+#: filter.c:77 filter.c:90
 msgid "Palm comma separated values"
 msgstr "Valori separati da virgole per Palm"
 
-#: filter.c:82
+#: filter.c:83
 msgid "ldif / Netscape addressbook (.4ld)"
 msgstr "ldif / rubrica Netscape (.4ld)"
 
-#: filter.c:84
+#: filter.c:85
 msgid "html document"
 msgstr "documento html"
 
-#: filter.c:86
+#: filter.c:87
 msgid "GnomeCard (VCard) addressbook"
 msgstr "Rubrica GnomeCard (VCard)"
 
-#: filter.c:90
+#: filter.c:91
 msgid "elm alias"
 msgstr "alias di elm"
 
-#: filter.c:91
+#: filter.c:92
 msgid "plain text"
 msgstr "testo puro"
 
-#: filter.c:92
+#: filter.c:93
 msgid "Wanderlust address book"
 msgstr "Rubrica Wanderlust"
 
-#: filter.c:93
+#: filter.c:94
 msgid "Spruce address book"
 msgstr "Rubrica Spruce"
 
-#: filter.c:106
+#: filter.c:95
+msgid "BSD calendar"
+msgstr ""
+
+#: filter.c:108
 msgid "input:"
 msgstr "input:"
 
-#: filter.c:113
+#: filter.c:115
 msgid "output:"
 msgstr "output:"
 
-#: filter.c:178
+#: filter.c:180
 msgid "import database"
 msgstr "importa un database"
 
-#: filter.c:180 filter.c:297
+#: filter.c:182 filter.c:299
 msgid "please select a filter"
 msgstr "seleziona un filtro"
 
-#: filter.c:188 filter.c:305
+#: filter.c:190 filter.c:307
 msgid "x -\tcancel"
 msgstr "x -\tcancella"
 
-#: filter.c:209 filter.c:343
+#: filter.c:211 filter.c:345
 msgid "Filename: "
 msgstr "Nome del file:"
 
-#: filter.c:216
+#: filter.c:218
 msgid "Error occured while opening the file"
 msgstr "Errore nell'apertura del file"
 
-#: filter.c:218
+#: filter.c:220
 msgid "File does not seem to be a valid addressbook"
 msgstr "Il file non sembra essere una rubrica valida"
 
-#: filter.c:295
+#: filter.c:297
 msgid "export database"
 msgstr "esporta il database"
 
-#: filter.c:328
+#: filter.c:330
 msgid "Export <a>ll, export <s>elected, or <c>ancel?"
 msgstr "Esporta <t>utti, esporta <s>elezionati, o <c>ancella?"
 
-#: filter.c:329 ui.c:628
+#: filter.c:331 ui.c:632
 msgid "keybindings:all/selected/cancel|asc"
 msgstr "tsc"
 
-#: filter.c:350
+#: filter.c:352
 msgid "Error occured while exporting"
 msgstr "Errore nell'esportazione"
 
+#: filter.c:1896
+#, c-format
+msgid "%02d/%02d\tAnniversary of %s\n"
+msgstr ""
+
 #: help.h:11
 msgid "\t?\t\thelp\n"
 msgstr "\t?\t\taiuto\n"
 msgstr "\tm\t\tspedisci mail con mutt\n"
 
 #: help.h:47
-msgid "\tu\t\tview URL with web browser\n"
-msgstr "\tu\t\tmostra URL con browser html\n"
+msgid "\tv\t\tview URL with web browser\n"
+msgstr "\tv\t\tmostra URL con browser html\n"
 
 #: help.h:55
 msgid "\tarrows/h,l\t\tchange tab\n"
 msgid "\tv\t\t\tview url with web browser\n"
 msgstr "\tv\t\t\tmostra url con browser html\n"
 
-#: options.c:254
+#: options.c:250
 msgid "quote mismatch"
 msgstr "manca una virgoletta"
 
-#: options.c:260
+#: options.c:256
 msgid "no assignment character found"
 msgstr "errore di assegnamento"
 
-#: options.c:263
+#: options.c:259
 msgid "error in comma separated list"
 msgstr "errore nei valori separati da virgole"
 
-#: options.c:292 options.c:311
+#: options.c:289 options.c:308
 msgid "invalid value"
 msgstr "valore non valido"
 
 msgid "Clear WHOLE database"
 msgstr "Cancella TUTTO il database"
 
-#: ui.c:578
+#: ui.c:582
 msgid "Search hit bottom, continuing at top"
 msgstr "La ricerca è finita, continuo dall'inizio"
 
-#: ui.c:603
+#: ui.c:607
 #, c-format
 msgid "Your current data will be lost - Press '%c' to continue"
 msgstr "I dati correnti saranno persi - Premi '%c' per continuare"
 
-#: ui.c:628
+#: ui.c:632
 msgid "Print <a>ll, print <s>elected, or <c>ancel?"
 msgstr "Stampa <t>utti, stampa <s>elezionati, o <c>ancella?"
 
-#: ui.c:634
+#: ui.c:638
 msgid "No selected items"
 msgstr "Nessun oggetto selezionato"
 
-#: ui.c:660
+#: ui.c:664
 msgid "File to open: "
 msgstr "File da aprire:"
 
-#: ui.c:670
+#: ui.c:674
 msgid "Save current database"
 msgstr "Salva il database corrente"
 
-#: ui.c:678
+#: ui.c:682
 msgid "Sorry, the specified file appears not to be a valid abook addressbook"
 msgstr "Mi dispiace, il file selezionato non è una rubrica valida per Abook"
 
 
 msgstr ""
 "Project-Id-Version: 0.5.5\n"
 "Report-Msgid-Bugs-To: <abook-devel@lists.sourceforge.net>\n"
-"POT-Creation-Date: 2006-08-29 22:30+0300\n"
+"POT-Creation-Date: 2006-09-06 17:14+0300\n"
 "PO-Revision-Date: 2005-10-18 18:10+0200\n"
 "Last-Translator: TAKAHASHI Tamotsu <ttakah@lapis.plala.or.jp>\n"
 "Language-Team: japanese\n"
 msgid "Press enter to continue...\n"
 msgstr "³¤±¤ë¤Ë¤Ï Enter ¥¡¼¤ò...\n"
 
-#: abook.c:141
+#: abook.c:143
 #, c-format
 msgid "File %s is not writeable"
 msgstr "¥Õ¥¡¥¤¥ë %s ¤Ï½ñ¤¹þ¤ßÉÔ²Äǽ¤Ç¤¹"
 
-#: abook.c:146
+#: abook.c:148
 msgid "If you continue all changes will be lost. Do you want to continue?"
 msgstr "¤³¤Î¤Þ¤Þ¤À¤ÈÊѹ¹ÅÀ¤¬¤¹¤Ù¤Æ¾Ã¤¨¤Æ¤·¤Þ¤¤¤Þ¤¹¤¬¡¢Â³¤±¤Æ¤â¤è¤í¤·¤¤¤Ç¤¹¤«?"
 
-#: abook.c:165
+#: abook.c:167
 msgid "Save database"
 msgstr "¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÊݸ"
 
-#: abook.c:167
+#: abook.c:169
 msgid "Quit without saving"
 msgstr "Êݸ¤»¤º¤Ë½ªÎ»"
 
-#: abook.c:223
+#: abook.c:225
 #, c-format
 msgid "%s is not a valid HOME directory\n"
 msgstr "%s ¤ÏÀµ¤·¤¤ HOME ¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó\n"
 
-#: abook.c:254
+#: abook.c:256
 #, c-format
 msgid ""
 "Cannot combine options --mutt-query, --convert, --add-email or --add-email-"
 "¼¡¤Î¥ª¥×¥·¥ç¥ó¤òƱ»þ¤ËÊ£¿ô»ÈÍѤ¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó: --mutt-query, --convert, "
 "--add-email, --add-email-quiet\n"
 
-#: abook.c:285
+#: abook.c:287
 #, c-format
 msgid "please use option --%s after --convert option\n"
 msgstr "--%s ¥ª¥×¥·¥ç¥ó¤Ï --convert ¥ª¥×¥·¥ç¥ó¤Î¸å¤Ë»ØÄꤷ¤Æ¤¯¤À¤µ¤¤\n"
 
-#: abook.c:384
+#: abook.c:386
 #, c-format
 msgid "%s: unrecognized arguments on command line\n"
 msgstr "%s: Ç§¼±¤Ç¤¤Ê¤¤¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¿ô¤Ç¤¹\n"
 
-#: abook.c:406
+#: abook.c:408
 msgid "     -h\t--help\t\t\t\tshow usage"
 msgstr "     -h\t--help\t\t\t\t»ÈÍÑÊýË¡"
 
-#: abook.c:407
+#: abook.c:409
 msgid "     -C\t--config\t<file>\t\tuse an alternative configuration file"
 msgstr ""
 "     -C\t--config\t<¥Õ¥¡¥¤¥ë>\t\tÄ̾ï¤Î¾ì½ê°Ê³°¤Ë¤¢¤ëÀßÄê¥Õ¥¡¥¤¥ë¤ò»È¤¦"
 
-#: abook.c:408
+#: abook.c:410
 msgid "\t--datafile\t<file>\t\tuse an alternative addressbook file"
 msgstr ""
 "\t--datafile\t<¥Õ¥¡¥¤¥ë>\t\tÄ̾ï¤Î¾ì½ê°Ê³°¤Ë¤¢¤ë¥¢¥É¥ì¥¹Ä¢¥Õ¥¡¥¤¥ë¤ò»È¤¦"
 
-#: abook.c:409
+#: abook.c:411
 msgid "\t--mutt-query\t<string>\tmake a query for mutt"
 msgstr "\t--mutt-query\t<ʸ»úÎó>\tÌ䤤¹ç¤ï¤»¤ËÂФ·¤Æ mutt ÍѤËÀ°·Á½ÐÎϤ¹¤ë"
 
-#: abook.c:410
+#: abook.c:412
 msgid ""
 "\t--add-email\t\t\tread an e-mail message from stdin and\n"
 "\t\t\t\t\tadd the sender to the addressbook"
 "\t--add-email\t\t\t¥á¡¼¥ë¤òɸ½àÆþÎϤ«¤éÆÉ¤ß½Ð¤·¤Æ\n"
 "\t\t\t\t\t¤½¤Îº¹½Ð¿Í¤ò¥¢¥É¥ì¥¹Ä¢¤ËÄɲ乤ë"
 
-#: abook.c:414
+#: abook.c:416
 msgid ""
 "\t--add-email-quiet\t\tsame as --add-email but doesn't\n"
 "\t\t\t\t\trequire to confirm adding"
 "\t--add-email-quiet\t\t--add-email ¤ÈƱ¤¸¡£¤¿¤À¤·\n"
 "\t\t\t\t\tÄɲ乤ëÁ°¤Ë³Îǧ¤òµá¤á¤Ê¤¤"
 
-#: abook.c:418
+#: abook.c:420
 msgid "\t--convert\t\t\tconvert address book files"
 msgstr "\t--convert\t\t\t¥¢¥É¥ì¥¹Ä¢¥Õ¥¡¥¤¥ë¤ò¾·Á¼°¤ØÊÑ´¹¤¹¤ë"
 
-#: abook.c:419
+#: abook.c:421
 msgid "\toptions to use with --convert:"
 msgstr "\t--convert ¤Ç»È¤¦¥ª¥×¥·¥ç¥ó:"
 
-#: abook.c:420
+#: abook.c:422
 msgid "\t--informat\t<format>\tformat for input file"
 msgstr "\t--informat\t<·Á¼°>\tÊÑ´¹¸µ¥Õ¥¡¥¤¥ë¤Î·Á¼°"
 
-#: abook.c:421
+#: abook.c:423
 msgid "\t\t\t\t\t(default: abook)"
 msgstr "\t\t\t\t\t(´ûÄêÃÍ: abook)"
 
-#: abook.c:422
+#: abook.c:424
 msgid "\t--infile\t<file>\t\tsource file"
 msgstr "\t--infile\t<¥Õ¥¡¥¤¥ë>\t\tÊÑ´¹¸µ¥Õ¥¡¥¤¥ë"
 
-#: abook.c:423
+#: abook.c:425
 msgid "\t\t\t\t\t(default: stdin)"
 msgstr "\t\t\t\t\t(´ûÄêÃÍ: É¸½àÆþÎÏ)"
 
-#: abook.c:424
+#: abook.c:426
 msgid "\t--outformat\t<format>\tformat for output file"
 msgstr "\t--outformat\t<·Á¼°>\t½ÐÎÏÀè¥Õ¥¡¥¤¥ë¤Î·Á¼°"
 
-#: abook.c:425
+#: abook.c:427
 msgid "\t\t\t\t\t(default: text)"
 msgstr "\t\t\t\t\t(´ûÄêÃÍ: text)"
 
-#: abook.c:426
+#: abook.c:428
 msgid "\t--outfile\t<file>\t\tdestination file"
 msgstr "\t--outfile\t<¥Õ¥¡¥¤¥ë>\t\t½ÐÎÏÀè¥Õ¥¡¥¤¥ë"
 
-#: abook.c:427
+#: abook.c:429
 msgid "\t\t\t\t\t(default: stdout)"
 msgstr "\t\t\t\t\t(´ûÄêÃÍ: É¸½à½ÐÎÏ)"
 
-#: abook.c:428
+#: abook.c:430
 msgid "\t--formats\t\t\tlist available formats"
 msgstr "\t--formats\t\t\tÍøÍѲÄǽ¤Ê·Á¼°°ìÍ÷¤òɽ¼¨¤¹¤ë"
 
-#: abook.c:499
+#: abook.c:501
 #, c-format
 msgid "Cannot open database\n"
 msgstr "¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬³«¤±¤Þ¤»¤ó\n"
 
-#: abook.c:625
+#: abook.c:627
 #, c-format
 msgid "too few arguments to make conversion\n"
 msgstr "ÊÑ´¹¤ËɬÍפʥª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
 
-#: abook.c:626
+#: abook.c:628
 #, c-format
 msgid "try --help\n"
 msgstr "--help ¤ò¤´Í÷¤¯¤À¤µ¤¤\n"
 
-#: abook.c:631
+#: abook.c:633
 #, c-format
 msgid ""
 "input and output formats are the same\n"
 "ÆþÎϤȽÐÎϤηÁ¼°¤¬Æ±¤¸¤Ç¤¹\n"
 "½ªÎ»¤·¤Þ¤¹\n"
 
-#: abook.c:645
+#: abook.c:647
 #, c-format
 msgid "input format %s not supported\n"
 msgstr "ÆþÎÏ·Á¼°¤È¤·¤Æ %s ¤Ï¤´ÍøÍѤ¤¤¿¤À¤±¤Þ¤»¤ó\n"
 
-#: abook.c:649
+#: abook.c:651
 #, c-format
 msgid "cannot read file %s\n"
 msgstr "¥Õ¥¡¥¤¥ë %s ¤¬ÆÉ¤ß½Ð¤»¤Þ¤»¤ó\n"
 
-#: abook.c:658
+#: abook.c:660
 #, c-format
 msgid "output format %s not supported\n"
 msgstr "½ÐÎÏ·Á¼°¤È¤·¤Æ %s ¤Ï¤´ÍøÍѤ¤¤¿¤À¤±¤Þ¤»¤ó\n"
 
-#: abook.c:664
+#: abook.c:666
 #, c-format
 msgid "cannot write file %s\n"
 msgstr "¥Õ¥¡¥¤¥ë %s ¤Ë½ñ¤¹þ¤á¤Þ¤»¤ó\n"
 
-#: abook.c:685
+#: abook.c:687
 #, c-format
 msgid "cannot open %s\n"
 msgstr "%s ¤¬³«¤±¤Þ¤»¤ó\n"
 
-#: abook.c:688
+#: abook.c:690
 #, c-format
 msgid "%d item(s) added to %s\n"
 msgstr "%d ¸Ä¤Î¹àÌܤò %s ¤ËÄɲä·¤Þ¤·¤¿\n"
 
-#: abook.c:690
+#: abook.c:692
 msgid "Valid sender address not found"
 msgstr "ǧ¼±²Äǽ¤Êº¹½Ð¿Í¥¢¥É¥ì¥¹¤¬¤¢¤ê¤Þ¤»¤ó¤Ç¤·¤¿"
 
-#: abook.c:730
+#: abook.c:732
 #, c-format
 msgid "Address %s already in addressbook\n"
 msgstr "¥¢¥É¥ì¥¹ %s ¤Ï´û¤Ë¥¢¥É¥ì¥¹Ä¢¤ËÆþ¤Ã¤Æ¤¤¤Þ¤¹\n"
 
-#: abook.c:740
+#: abook.c:742
 #, c-format
 msgid ""
 "cannot open /dev/tty\n"
 "/dev/tty ¤¬³«¤±¤Þ¤»¤ó\n"
 "--add-email-quiet ¤ò¤´ÍøÍѤˤʤä¿Êý¤¬Îɤ¤¤«¤â¤·¤ì¤Þ¤»¤ó\n"
 
-#: abook.c:746
+#: abook.c:748
 #, c-format
 msgid "Add \"%s <%s>\" to %s? (%c/%c)\n"
 msgstr "\"%s <%s>\" ¤ò %s ¤ËÄɲä·¤Þ¤¹¤«? (%c/%c)\n"
 
-#: abook.c:750 abook.c:757 ui.c:343 ui.c:605
+#: abook.c:752 abook.c:759 ui.c:343 ui.c:609
 msgid "keybinding for yes|y"
 msgstr "y"
 
-#: abook.c:751 abook.c:753 ui.c:341
+#: abook.c:753 abook.c:755 ui.c:341
 msgid "keybinding for no|n"
 msgstr "n"
 
-#: abook.c:778
+#: abook.c:780
 #, c-format
 msgid "stdin is a directory or cannot stat stdin\n"
 msgstr "ɸ½àÆþÎϤ¬¥Ç¥£¥ì¥¯¥È¥ê¤«¡¢stat ÉÔ²Äǽ¤Ç¤¹\n"
 msgid "Anniversary day"
 msgstr ""
 
-#: database.c:164
+#: database.c:166
 msgid "field already defined"
 msgstr ""
 
-#: database.c:168
+#: database.c:170
 msgid "standard field does not need to be declared"
 msgstr ""
 
-#: database.c:183
+#: database.c:185
 #, fuzzy
 msgid "unknown type"
 msgstr "ÉÔÌÀ¤Ê¥ª¥×¥·¥ç¥ó¤Ç¤¹"
 
-#: database.c:583
+#: database.c:585
 msgid "Invalid field value defined in configuration"
 msgstr "ÉÔÀµ¤Ê¹àÌÜ̾¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
 
-#: database.c:586
+#: database.c:588
 #, fuzzy
 msgid "Invalid field value for sorting"
 msgstr "ÉÔÀµ¤Ê¹àÌÜ̾¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
 
-#: edit.c:53
+#: edit.c:51
 msgid "Tab name too wide for screen"
 msgstr "¥¿¥Ö̾¤¬²èÌ̤«¤é¤Ï¤ß½Ð¤Þ¤¹"
 
-#: edit.c:355
+#: edit.c:353
 msgid "keybindings_new_123456789|n123456789"
 msgstr ""
 
-#: edit.c:357
+#: edit.c:355
 #, c-format
 msgid "Choose %s to modify (<1>%s%c%s%s."
 msgstr ""
 
-#: edit.c:358
+#: edit.c:356
 #, fuzzy
 msgid "email"
 msgstr "¥¢¥É¥ì¥¹"
 
-#: edit.c:358
+#: edit.c:356
 msgid "item"
 msgstr ""
 
-#: edit.c:363
+#: edit.c:361
 msgid " or <n>ew"
 msgstr ""
 
-#: edit.c:381
+#: edit.c:379
 #, fuzzy
 msgid "E-mail: "
 msgstr "¥¢¥É¥ì¥¹"
 
-#: edit.c:381
+#: edit.c:379
 msgid "Item: "
 msgstr ""
 
-#: edit.c:478
+#: edit.c:465
 msgid "Day: "
 msgstr ""
 
-#: edit.c:478
+#: edit.c:465
 msgid "Month: "
 msgstr ""
 
-#: edit.c:478
+#: edit.c:465
 msgid "Year (optional): "
 msgstr ""
 
-#: edit.c:511
+#: edit.c:498
 #, fuzzy
 msgid "Invalid date"
 msgstr "ÉÔÀµ¤ÊÃͤǤ¹"
 
-#: edit.c:666
+#: edit.c:653
 #, fuzzy
 msgid "Name: "
 msgstr "»á̾"
 
-#: edit.h:13
+#: edit.h:14
 msgid "?:help q:quit editor"
 msgstr ""
 
-#: filter.c:70 filter.c:81
+#: filter.c:71 filter.c:82
 msgid "abook native format"
 msgstr "abook ÆÈ¼«·Á¼°"
 
-#: filter.c:71
+#: filter.c:72
 msgid "ldif / Netscape addressbook"
 msgstr "ldif / Netscape ¥¢¥É¥ì¥¹Ä¢"
 
-#: filter.c:72 filter.c:83
+#: filter.c:73 filter.c:84
 msgid "mutt alias"
 msgstr "mutt alias"
 
-#: filter.c:73 filter.c:85
+#: filter.c:74 filter.c:86
 msgid "pine addressbook"
 msgstr "pine ¥¢¥É¥ì¥¹Ä¢"
 
-#: filter.c:74 filter.c:87
+#: filter.c:75 filter.c:88
 msgid "comma separated values"
 msgstr "¥³¥ó¥Þ¶èÀÚ¤ê¥Æ¥¥¹¥È"
 
-#: filter.c:75 filter.c:88
+#: filter.c:76 filter.c:89
 msgid "comma separated values (all fields)"
 msgstr "¥³¥ó¥Þ¶èÀÚ¤ê¥Æ¥¥¹¥È (Á´¹àÌÜ)"
 
-#: filter.c:76 filter.c:89
+#: filter.c:77 filter.c:90
 msgid "Palm comma separated values"
 msgstr "Palm ÍÑ¥³¥ó¥Þ¶èÀÚ¤ê¥Æ¥¥¹¥È"
 
-#: filter.c:82
+#: filter.c:83
 msgid "ldif / Netscape addressbook (.4ld)"
 msgstr "ldif / Netscape ¥¢¥É¥ì¥¹Ä¢ (.4ld)"
 
-#: filter.c:84
+#: filter.c:85
 msgid "html document"
 msgstr "HTML Ê¸½ñ"
 
-#: filter.c:86
+#: filter.c:87
 msgid "GnomeCard (VCard) addressbook"
 msgstr "GnomeCard (vCard) ¥¢¥É¥ì¥¹Ä¢"
 
-#: filter.c:90
+#: filter.c:91
 msgid "elm alias"
 msgstr "elm alias"
 
-#: filter.c:91
+#: filter.c:92
 msgid "plain text"
 msgstr "¥×¥ì¡¼¥ó¥Æ¥¥¹¥È"
 
-#: filter.c:92
+#: filter.c:93
 msgid "Wanderlust address book"
 msgstr "Wanderlust ¥¢¥É¥ì¥¹Ä¢"
 
-#: filter.c:93
+#: filter.c:94
 msgid "Spruce address book"
 msgstr "Spruce ¥¢¥É¥ì¥¹Ä¢"
 
-#: filter.c:106
+#: filter.c:95
+msgid "BSD calendar"
+msgstr ""
+
+#: filter.c:108
 msgid "input:"
 msgstr "ÆþÎÏ:"
 
-#: filter.c:113
+#: filter.c:115
 msgid "output:"
 msgstr "½ÐÎÏ:"
 
-#: filter.c:178
+#: filter.c:180
 msgid "import database"
 msgstr "¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¼è¤ê¹þ¤ß"
 
-#: filter.c:180 filter.c:297
+#: filter.c:182 filter.c:299
 msgid "please select a filter"
 msgstr "·Á¼°¤òÁª¤ó¤Ç¤¯¤À¤µ¤¤"
 
-#: filter.c:188 filter.c:305
+#: filter.c:190 filter.c:307
 msgid "x -\tcancel"
 msgstr "x -\tÃæ»ß"
 
-#: filter.c:209 filter.c:343
+#: filter.c:211 filter.c:345
 msgid "Filename: "
 msgstr "¥Õ¥¡¥¤¥ë̾: "
 
-#: filter.c:216
+#: filter.c:218
 msgid "Error occured while opening the file"
 msgstr "¥Õ¥¡¥¤¥ë¤ò³«¤¯ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿"
 
-#: filter.c:218
+#: filter.c:220
 msgid "File does not seem to be a valid addressbook"
 msgstr "¥Õ¥¡¥¤¥ë¤¬Àµ¤·¤¤¥¢¥É¥ì¥¹Ä¢¤Ç¤Ï¤Ê¤¤¤è¤¦¤Ç¤¹"
 
-#: filter.c:295
+#: filter.c:297
 msgid "export database"
 msgstr "¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î½ÐÎÏ"
 
-#: filter.c:328
+#: filter.c:330
 msgid "Export <a>ll, export <s>elected, or <c>ancel?"
 msgstr "½ÐÎÏÂоݠ a:¤¹¤Ù¤Æ  s:ÁªÂòÉôʬ¤Î¤ß  c:Ãæ»ß?"
 
-#: filter.c:329 ui.c:628
+#: filter.c:331 ui.c:632
 msgid "keybindings:all/selected/cancel|asc"
 msgstr "asc"
 
-#: filter.c:350
+#: filter.c:352
 msgid "Error occured while exporting"
 msgstr "½ÐÎÏÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿"
 
+#: filter.c:1896
+#, c-format
+msgid "%02d/%02d\tAnniversary of %s\n"
+msgstr ""
+
 #: help.h:11
 msgid "\t?\t\thelp\n"
 msgstr "\t?\t\t¥Ø¥ë¥×\n"
 msgstr "\tm\t\tMutt ¤Ç¥á¡¼¥ë¤òÁ÷¤ë\n"
 
 #: help.h:47
-msgid "\tu\t\tview URL with web browser\n"
-msgstr "\tu\t\tURL ¤ò¥Ö¥é¥¦¥¶¤Ç±ÜÍ÷¤¹¤ë\n"
+msgid "\tv\t\tview URL with web browser\n"
+msgstr "\tv\t\tURL ¤ò¥Ö¥é¥¦¥¶¤Ç±ÜÍ÷¤¹¤ë\n"
 
 #: help.h:55
 #, fuzzy
 msgid "\tv\t\t\tview url with web browser\n"
 msgstr "\tv\t\t\tURL ¤ò¥Ö¥é¥¦¥¶¤Ç±ÜÍ÷\n"
 
-#: options.c:254
+#: options.c:250
 msgid "quote mismatch"
 msgstr ""
 
-#: options.c:260
+#: options.c:256
 msgid "no assignment character found"
 msgstr ""
 
-#: options.c:263
+#: options.c:259
 #, fuzzy
 msgid "error in comma separated list"
 msgstr "¥³¥ó¥Þ¶èÀÚ¤ê¥Æ¥¥¹¥È"
 
-#: options.c:292 options.c:311
+#: options.c:289 options.c:308
 msgid "invalid value"
 msgstr "ÉÔÀµ¤ÊÃͤǤ¹"
 
 msgid "Clear WHOLE database"
 msgstr "¥Ç¡¼¥¿¥Ù¡¼¥¹Á´ÂΤò¾Ãµî¤·¤Þ¤¹¤«"
 
-#: ui.c:578
+#: ui.c:582
 msgid "Search hit bottom, continuing at top"
 msgstr "ºÇ¸å¤Þ¤Ç¸¡º÷¤·¤Þ¤·¤¿¡£ºÇ½é¤«¤é¤â¸¡º÷¤·¤Æ¤¤¤Þ¤¹"
 
-#: ui.c:603
+#: ui.c:607
 #, c-format
 msgid "Your current data will be lost - Press '%c' to continue"
 msgstr "¸½ºß¤Î¥Ç¡¼¥¿¤Ï¾Ã¤¨¤Æ¤·¤Þ¤¤¤Þ¤¹¡£¤è¤í¤·¤±¤ì¤Ð '%c' ¤Ç³¤±¤Æ¤¯¤À¤µ¤¤"
 
-#: ui.c:628
+#: ui.c:632
 msgid "Print <a>ll, print <s>elected, or <c>ancel?"
 msgstr "°õºþÂоݠ a:¤¹¤Ù¤Æ  s:ÁªÂò¹àÌܤΤߠ c:Ãæ»ß?"
 
-#: ui.c:634
+#: ui.c:638
 msgid "No selected items"
 msgstr "²¿¤âÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
 
-#: ui.c:660
+#: ui.c:664
 msgid "File to open: "
 msgstr "³«¤¯¥Õ¥¡¥¤¥ë: "
 
-#: ui.c:670
+#: ui.c:674
 msgid "Save current database"
 msgstr "¸½ºß¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÊݸ¤·¤Þ¤¹¤«"
 
-#: ui.c:678
+#: ui.c:682
 msgid "Sorry, the specified file appears not to be a valid abook addressbook"
 msgstr ""
 "¿½¤·Ìõ¤¢¤ê¤Þ¤»¤ó¤¬¡¢¤´»ØÄê¤Î¥Õ¥¡¥¤¥ë¤ÏÀµµ¬¤Î abook ¥¢¥É¥ì¥¹Ä¢¤Ç¤Ï¤Ê¤¤¤è¤¦¤Ç¤¹"
 
 msgstr ""
 "Project-Id-Version: abook 0.5.4\n"
 "Report-Msgid-Bugs-To: <abook-devel@lists.sourceforge.net>\n"
-"POT-Creation-Date: 2006-08-29 22:30+0300\n"
+"POT-Creation-Date: 2006-09-06 17:14+0300\n"
 "PO-Revision-Date: 2006-08-05 14:20+0200\n"
 "Last-Translator: Susanna Björverud <susanna.bjorverud@telia.com>\n"
 "Language-Team: none\n"
 msgid "Press enter to continue...\n"
 msgstr "Tryck enter för att fortsätta...\n"
 
-#: abook.c:141
+#: abook.c:143
 #, c-format
 msgid "File %s is not writeable"
 msgstr "Filen %s kan inte skrivas"
 
-#: abook.c:146
+#: abook.c:148
 msgid "If you continue all changes will be lost. Do you want to continue?"
 msgstr ""
 "Om du fortsätter så kommer alla ändringar att gå förlorade. Vill du fortsätta"
 
-#: abook.c:165
+#: abook.c:167
 msgid "Save database"
 msgstr "Spara databasen"
 
-#: abook.c:167
+#: abook.c:169
 msgid "Quit without saving"
 msgstr "Avsluta utan att spara"
 
-#: abook.c:223
+#: abook.c:225
 #, c-format
 msgid "%s is not a valid HOME directory\n"
 msgstr "%s är inte en giltig hemmamapp\n"
 
-#: abook.c:254
+#: abook.c:256
 #, c-format
 msgid ""
 "Cannot combine options --mutt-query, --convert, --add-email or --add-email-"
 "Det går inte att kombinera flaggorna --mutt-query, --convert, --add-email "
 "eller --add-email-quiet\n"
 
-#: abook.c:285
+#: abook.c:287
 #, c-format
 msgid "please use option --%s after --convert option\n"
 msgstr "var god och använd flaggan --%s efter flaggan --convert\n"
 
-#: abook.c:384
+#: abook.c:386
 #, c-format
 msgid "%s: unrecognized arguments on command line\n"
 msgstr "%s: okända parametrar på kommandoraden\n"
 
-#: abook.c:406
+#: abook.c:408
 msgid "     -h\t--help\t\t\t\tshow usage"
 msgstr "    -h\t--help\t\t\t\tvisa användning"
 
-#: abook.c:407
+#: abook.c:409
 msgid "     -C\t--config\t<file>\t\tuse an alternative configuration file"
 msgstr "     -C\t--config\t<fil>\t\tanvänd en alternative konfigurationsfil"
 
-#: abook.c:408
+#: abook.c:410
 msgid "\t--datafile\t<file>\t\tuse an alternative addressbook file"
 msgstr "\t--datafile\t<fil>\t\tanvänd en alternative adressboksfil"
 
-#: abook.c:409
+#: abook.c:411
 msgid "\t--mutt-query\t<string>\tmake a query for mutt"
 msgstr "\t--mutt-query\t<sträng>\tgör en förfrågan till mutt"
 
-#: abook.c:410
+#: abook.c:412
 msgid ""
 "\t--add-email\t\t\tread an e-mail message from stdin and\n"
 "\t\t\t\t\tadd the sender to the addressbook"
 "\t--add-email\t\t\tläs ett ebrev från stdin och\n"
 "\t\t\t\t\tlägg till avsändaren i adressboken"
 
-#: abook.c:414
+#: abook.c:416
 msgid ""
 "\t--add-email-quiet\t\tsame as --add-email but doesn't\n"
 "\t\t\t\t\trequire to confirm adding"
 "\t--add-email-quiet\t\tsamma som --add-email men utan\n"
 "\t\t\t\t\tanvändarbekräftelse"
 
-#: abook.c:418
+#: abook.c:420
 msgid "\t--convert\t\t\tconvert address book files"
 msgstr "\t--convert\t\t\tkonvertera adressbokfiler"
 
-#: abook.c:419
+#: abook.c:421
 msgid "\toptions to use with --convert:"
 msgstr "\tflaggor som kan användas med --convert:"
 
-#: abook.c:420
+#: abook.c:422
 msgid "\t--informat\t<format>\tformat for input file"
 msgstr "\t--informat\t<format>\tinputfilens format"
 
-#: abook.c:421
+#: abook.c:423
 msgid "\t\t\t\t\t(default: abook)"
 msgstr "\t\t\t\t\t(förvalt: abook)"
 
-#: abook.c:422
+#: abook.c:424
 msgid "\t--infile\t<file>\t\tsource file"
 msgstr "\t--infile\t<fil>\t\tkällfil"
 
-#: abook.c:423
+#: abook.c:425
 msgid "\t\t\t\t\t(default: stdin)"
 msgstr "\t\t\t\t\t(förvalt: stdin)"
 
-#: abook.c:424
+#: abook.c:426
 msgid "\t--outformat\t<format>\tformat for output file"
 msgstr "\t--outformat\t<format>\toutputfilens format"
 
-#: abook.c:425
+#: abook.c:427
 msgid "\t\t\t\t\t(default: text)"
 msgstr "\t\t\t\t\t(förvalt: text)"
 
-#: abook.c:426
+#: abook.c:428
 msgid "\t--outfile\t<file>\t\tdestination file"
 msgstr "\t--outfile\t<fil>\t\tmålfil"
 
-#: abook.c:427
+#: abook.c:429
 msgid "\t\t\t\t\t(default: stdout)"
 msgstr "\t\t\t\t\t(förvalt: stdout)"
 
-#: abook.c:428
+#: abook.c:430
 msgid "\t--formats\t\t\tlist available formats"
 msgstr "\t--formats\t\t\tlista tillgängliga format"
 
-#: abook.c:499
+#: abook.c:501
 #, c-format
 msgid "Cannot open database\n"
 msgstr "Kan inte öppna databasen\n"
 
-#: abook.c:625
+#: abook.c:627
 #, c-format
 msgid "too few arguments to make conversion\n"
 msgstr "alltför få parametrar för att kunna konvertera\n"
 
-#: abook.c:626
+#: abook.c:628
 #, c-format
 msgid "try --help\n"
 msgstr "prova --help\n"
 
-#: abook.c:631
+#: abook.c:633
 #, c-format
 msgid ""
 "input and output formats are the same\n"
 "input- och outputformat är identiska\n"
 "avslutar...\n"
 
-#: abook.c:645
+#: abook.c:647
 #, c-format
 msgid "input format %s not supported\n"
 msgstr "inputformater %s stöds ej\n"
 
-#: abook.c:649
+#: abook.c:651
 #, c-format
 msgid "cannot read file %s\n"
 msgstr "kan inte läsa filen %s\n"
 
-#: abook.c:658
+#: abook.c:660
 #, c-format
 msgid "output format %s not supported\n"
 msgstr "outputformatet %s stöds ej\n"
 
-#: abook.c:664
+#: abook.c:666
 #, c-format
 msgid "cannot write file %s\n"
 msgstr "kan inte skriva till filen %s\n"
 
-#: abook.c:685
+#: abook.c:687
 #, c-format
 msgid "cannot open %s\n"
 msgstr "kan inte öppna %s\n"
 
-#: abook.c:688
+#: abook.c:690
 #, c-format
 msgid "%d item(s) added to %s\n"
 msgstr "%d post(er) har lagts till i %s\n"
 
-#: abook.c:690
+#: abook.c:692
 msgid "Valid sender address not found"
 msgstr "Kunde inte hitta en giltig avsändaradress"
 
-#: abook.c:730
+#: abook.c:732
 #, c-format
 msgid "Address %s already in addressbook\n"
 msgstr "Addressen %s finns redan i adressboken\n"
 
-#: abook.c:740
+#: abook.c:742
 #, c-format
 msgid ""
 "cannot open /dev/tty\n"
 "kan inte öppna /dev/tty\n"
 "du bör kanske använda --add-email-quiet\n"
 
-#: abook.c:746
+#: abook.c:748
 #, fuzzy, c-format
 msgid "Add \"%s <%s>\" to %s? (%c/%c)\n"
 msgstr "Lägg till \"%s <%s>\" i %s? (j/n)\n"
 
-#: abook.c:750 abook.c:757 ui.c:343 ui.c:605
+#: abook.c:752 abook.c:759 ui.c:343 ui.c:609
 msgid "keybinding for yes|y"
 msgstr "j"
 
-#: abook.c:751 abook.c:753 ui.c:341
+#: abook.c:753 abook.c:755 ui.c:341
 msgid "keybinding for no|n"
 msgstr "n"
 
-#: abook.c:778
+#: abook.c:780
 #, c-format
 msgid "stdin is a directory or cannot stat stdin\n"
 msgstr ""
 msgid "Anniversary day"
 msgstr ""
 
-#: database.c:164
+#: database.c:166
 msgid "field already defined"
 msgstr ""
 
-#: database.c:168
+#: database.c:170
 msgid "standard field does not need to be declared"
 msgstr ""
 
-#: database.c:183
+#: database.c:185
 #, fuzzy
 msgid "unknown type"
 msgstr "okänd flagga"
 
-#: database.c:583
+#: database.c:585
 msgid "Invalid field value defined in configuration"
 msgstr "Ogiltigt fältvärde i konfigurationen"
 
-#: database.c:586
+#: database.c:588
 #, fuzzy
 msgid "Invalid field value for sorting"
 msgstr "Ogiltigt fältvärde i konfigurationen"
 
-#: edit.c:53
+#: edit.c:51
 msgid "Tab name too wide for screen"
 msgstr "Flikrubrik för bred för skärmen"
 
-#: edit.c:355
+#: edit.c:353
 msgid "keybindings_new_123456789|n123456789"
 msgstr ""
 
-#: edit.c:357
+#: edit.c:355
 #, c-format
 msgid "Choose %s to modify (<1>%s%c%s%s."
 msgstr ""
 
-#: edit.c:358
+#: edit.c:356
 #, fuzzy
 msgid "email"
 msgstr "Ebrev"
 
-#: edit.c:358
+#: edit.c:356
 msgid "item"
 msgstr ""
 
-#: edit.c:363
+#: edit.c:361
 msgid " or <n>ew"
 msgstr ""
 
-#: edit.c:381
+#: edit.c:379
 #, fuzzy
 msgid "E-mail: "
 msgstr "Ebrev"
 
-#: edit.c:381
+#: edit.c:379
 msgid "Item: "
 msgstr ""
 
-#: edit.c:478
+#: edit.c:465
 msgid "Day: "
 msgstr ""
 
-#: edit.c:478
+#: edit.c:465
 msgid "Month: "
 msgstr ""
 
-#: edit.c:478
+#: edit.c:465
 msgid "Year (optional): "
 msgstr ""
 
-#: edit.c:511
+#: edit.c:498
 #, fuzzy
 msgid "Invalid date"
 msgstr "ogiltigt värde"
 
-#: edit.c:666
+#: edit.c:653
 msgid "Name: "
 msgstr "Namn: "
 
-#: edit.h:13
+#: edit.h:14
 msgid "?:help q:quit editor"
 msgstr ""
 
-#: filter.c:70 filter.c:81
+#: filter.c:71 filter.c:82
 msgid "abook native format"
 msgstr "abooks eget format"
 
-#: filter.c:71
+#: filter.c:72
 msgid "ldif / Netscape addressbook"
 msgstr "ldif / adressbok fr Netscape"
 
-#: filter.c:72 filter.c:83
+#: filter.c:73 filter.c:84
 msgid "mutt alias"
 msgstr "mutt-alias"
 
-#: filter.c:73 filter.c:85
+#: filter.c:74 filter.c:86
 msgid "pine addressbook"
 msgstr "pine-adressbok"
 
-#: filter.c:74 filter.c:87
+#: filter.c:75 filter.c:88
 msgid "comma separated values"
 msgstr "kommaseparerade värden"
 
-#: filter.c:75 filter.c:88
+#: filter.c:76 filter.c:89
 msgid "comma separated values (all fields)"
 msgstr "kommaseparerade värden (alla fält)"
 
-#: filter.c:76 filter.c:89
+#: filter.c:77 filter.c:90
 msgid "Palm comma separated values"
 msgstr "kommaseparerade värden från Palm"
 
-#: filter.c:82
+#: filter.c:83
 msgid "ldif / Netscape addressbook (.4ld)"
 msgstr "ldif / adressbok fr Netscape (.4ld)"
 
-#: filter.c:84
+#: filter.c:85
 msgid "html document"
 msgstr "html-dokument"
 
-#: filter.c:86
+#: filter.c:87
 msgid "GnomeCard (VCard) addressbook"
 msgstr "GnomeCard-adressbok (VCard)"
 
-#: filter.c:90
+#: filter.c:91
 msgid "elm alias"
 msgstr "elm-alias"
 
-#: filter.c:91
+#: filter.c:92
 msgid "plain text"
 msgstr "ren text"
 
-#: filter.c:92
+#: filter.c:93
 #, fuzzy
 msgid "Wanderlust address book"
 msgstr "pine-adressbok"
 
-#: filter.c:93
+#: filter.c:94
 msgid "Spruce address book"
 msgstr "Spruce-adressbok"
 
-#: filter.c:106
+#: filter.c:95
+msgid "BSD calendar"
+msgstr ""
+
+#: filter.c:108
 msgid "input:"
 msgstr "input:"
 
-#: filter.c:113
+#: filter.c:115
 msgid "output:"
 msgstr "output:"
 
-#: filter.c:178
+#: filter.c:180
 msgid "import database"
 msgstr "importera databaser"
 
-#: filter.c:180 filter.c:297
+#: filter.c:182 filter.c:299
 msgid "please select a filter"
 msgstr "var god och välj filter"
 
-#: filter.c:188 filter.c:305
+#: filter.c:190 filter.c:307
 msgid "x -\tcancel"
 msgstr "x -\tavbryt"
 
-#: filter.c:209 filter.c:343
+#: filter.c:211 filter.c:345
 msgid "Filename: "
 msgstr "Filnamn:"
 
-#: filter.c:216
+#: filter.c:218
 msgid "Error occured while opening the file"
 msgstr "Fel vid öppnandet av filen"
 
-#: filter.c:218
+#: filter.c:220
 msgid "File does not seem to be a valid addressbook"
 msgstr "Den angivna filen verkar inte vara en giltig adressbok"
 
-#: filter.c:295
+#: filter.c:297
 msgid "export database"
 msgstr "exportera databasen"
 
-#: filter.c:328
+#: filter.c:330
 msgid "Export <a>ll, export <s>elected, or <c>ancel?"
 msgstr ""
 
-#: filter.c:329 ui.c:628
+#: filter.c:331 ui.c:632
 msgid "keybindings:all/selected/cancel|asc"
 msgstr ""
 
-#: filter.c:350
+#: filter.c:352
 msgid "Error occured while exporting"
 msgstr "Fel vid export"
 
+#: filter.c:1896
+#, c-format
+msgid "%02d/%02d\tAnniversary of %s\n"
+msgstr ""
+
 #: help.h:11
 msgid "\t?\t\thelp\n"
 msgstr "\t?\t\thjälp\n"
 msgstr "\tm\t\tskicka post med mutt\n"
 
 #: help.h:47
-msgid "\tu\t\tview URL with web browser\n"
-msgstr "\tu\t\tvisa URL i webbläsare\n"
+msgid "\tv\t\tview URL with web browser\n"
+msgstr "\tv\t\tvisa URL i webbläsare\n"
 
 #: help.h:55
 #, fuzzy
 msgid "\tv\t\t\tview url with web browser\n"
 msgstr "\tv\t\t\tvisa url i webbläsare\n"
 
-#: options.c:254
+#: options.c:250
 msgid "quote mismatch"
 msgstr ""
 
-#: options.c:260
+#: options.c:256
 msgid "no assignment character found"
 msgstr ""
 
-#: options.c:263
+#: options.c:259
 #, fuzzy
 msgid "error in comma separated list"
 msgstr "kommaseparerade värden"
 
-#: options.c:292 options.c:311
+#: options.c:289 options.c:308
 msgid "invalid value"
 msgstr "ogiltigt värde"
 
 msgid "Clear WHOLE database"
 msgstr "Nollställ HELA databasen"
 
-#: ui.c:578
+#: ui.c:582
 msgid "Search hit bottom, continuing at top"
 msgstr "Sök nådde slutet, fortsätter från början"
 
-#: ui.c:603
+#: ui.c:607
 #, fuzzy, c-format
 msgid "Your current data will be lost - Press '%c' to continue"
 msgstr "Nuvarande data kommer att förloras - Tryck på 'y' för att fortsätta"
 
-#: ui.c:628
+#: ui.c:632
 msgid "Print <a>ll, print <s>elected, or <c>ancel?"
 msgstr ""
 
-#: ui.c:634
+#: ui.c:638
 msgid "No selected items"
 msgstr "Inga poster valda"
 
-#: ui.c:660
+#: ui.c:664
 msgid "File to open: "
 msgstr "Öppna fil: "
 
-#: ui.c:670
+#: ui.c:674
 msgid "Save current database"
 msgstr "Spara denna databas"
 
-#: ui.c:678
+#: ui.c:682
 msgid "Sorry, the specified file appears not to be a valid abook addressbook"
 msgstr ""
 "Förlåt, men den angivna filen verkar inte vara en giltig abook-adressbok"
 
 # Show all email addresses in list
 set show_all_emails=true
 
-# Screen column for email field to start
-set emailpos=25
-
-# Field to be used in the extra column
-set extra_column=phone
-# frequently used values:
-#      -1              disabled
-#      phone           Home Phone
-#      workphone       Work Phone
-#      fax             Fax
-#      mobile          Mobile Phone
-#      nick            Nick / Alias
-#      url             URL
-
-# Specify an alternative field to be displayed in the extra
-# column if there is no data for the field specified in
-# extra_column for a particular item.  
-set extra_alternative=-1
-
-# Screen column for the extra field to start
-set extrapos=65
+# Format of an entry's line in the main abook screen
+#
+# The below example displays:
+#  * the content of the 'name' field (with a maximum of 22 characters)
+#  * the first of the 'phone', 'workphone' or 'mobile' fields
+#    happening not to be empty (right aligned within 12 characters)
+#  * the 'anniversary' field, with no length limit
+set index_format=" {name:25} {phone:-12|workphone|mobile} {anniversary}"
 
 # Command used to start mutt
 set mutt_command=mutt
 
 
 /*
- * $Id: ui.c,v 1.57 2006/04/10 08:15:46 jheinonen Exp $
+ * $Id: ui.c,v 1.58 2006/09/06 02:24:33 cduval Exp $
  *
  * by JH <jheinonen@users.sourceforge.net>
  *
        } else {
                char *s;
                s = ui_readline("/", findstr, MAX_FIELD_LEN - 1, 0);
-               strncpy(findstr, s, MAX_FIELD_LEN);
-               free(s);
                refresh_screen();
+               if(s == NULL) {
+                       return; /* user cancelled (ctrl-G) */
+               } else {
+                       strncpy(findstr, s, MAX_FIELD_LEN);
+                       free(s);
+               }
        }
 
        if( (item = find_item(findstr, list_get_curitem() + !!next,