]> git.deb.at Git - pkg/abook.git/commitdiff
Applied patch from Guillem Jover to add support for bsd calendar export.
authorCedric Duval <cedricduval@free.fr>
Wed, 6 Sep 2006 02:46:44 +0000 (02:46 +0000)
committerCedric Duval <cedricduval@free.fr>
Wed, 6 Sep 2006 02:46:44 +0000 (02:46 +0000)
(Debian bug #386217)

abook.1
edit.c
edit.h
filter.c

diff --git a/abook.1 b/abook.1
index 452f0a6c68eb9b43166f2764c4f9567b2cdf75fd..bb7ed4e831e4e93b158a9d8c2b12823be58d58aa 100644 (file)
--- a/abook.1
+++ b/abook.1
@@ -1,4 +1,4 @@
-.TH ABOOK 1 "June 6, 2003"
+.TH ABOOK 1 2006-09-06
 .nh
 .SH NAME
 abook \- text-based address book program
@@ -79,6 +79,8 @@ The following \fIoutputformats\fR are supported:
 - \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.
diff --git a/edit.c b/edit.c
index 5605a0f73abd6fe56b455970cf0d6e6746d3c80c..28d508748480d3747048f83a1291cba203860fc8 100644 (file)
--- a/edit.c
+++ b/edit.c
@@ -33,8 +33,6 @@ extern int views_count;
 
 WINDOW *editw;
 
-static int parse_date_string(char *s, int *day, int *month, int *year);
-
 
 static void
 editor_tab(const int tab)
@@ -421,7 +419,7 @@ static int is_valid_date(const int day, const int month, const int year)
        return valid;
 }
 
-static int
+int
 parse_date_string(char *s, int *day, int *month, int *year)
 {
        int i = 0;
diff --git a/edit.h b/edit.h
index aa521411823a0b652ba910ae25fe5223a3a6c600..8f1ada501b76df84a3c1ef78693265357ec1d515 100644 (file)
--- a/edit.h
+++ b/edit.h
@@ -4,6 +4,7 @@
 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)
index 70ec2d4e8aa5e054b2227311399b8f8ee13c6976..04b9a3b5343f46f778bbd4044ec494214cc7521d 100644 (file)
--- a/filter.c
+++ b/filter.c
@@ -61,6 +61,7 @@ static int    elm_alias_export(FILE *out, struct db_enumerator e);
 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
@@ -91,6 +92,7 @@ struct abook_output_filter e_filters[] = {
        { "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 }
 };
 
@@ -1876,3 +1878,33 @@ wl_export_database(FILE *out, struct db_enumerator e)
  * 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
+ */
+