]> git.deb.at Git - pkg/abook.git/commitdiff
Imported Upstream version 0.6.1 upstream upstream/0.6.1
authorDenis Briand <debian@denis-briand.fr>
Sun, 27 Dec 2015 23:33:30 +0000 (00:33 +0100)
committerDenis Briand <debian@denis-briand.fr>
Sun, 27 Dec 2015 23:33:30 +0000 (00:33 +0100)
.gitignore [deleted file]
abook.c
filter.c
filter.h

diff --git a/.gitignore b/.gitignore
deleted file mode 100644 (file)
index feca589..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-.deps
-autom4te.cache
-Makefile
-abook.spec
-config.h
-config.log
-config.status
-config.cache
-intl/Makefile
-po/Makefile
-po/Makefile.in
-po/POTFILES
-po/*.gmo
-po/stamp-po
-stamp-h1
-*.o
-*~
-abook
diff --git a/abook.c b/abook.c
index 7410f6b50747f53b074f819c3be3a87168192764..502aae228ed1b11f293ccd3c06e0b7225a97d63e 100644 (file)
--- a/abook.c
+++ b/abook.c
@@ -52,8 +52,6 @@ static char *rcfile = NULL;
 
 // custom formatting
 char custom_format[FORMAT_STRING_LEN] = "{nick} ({name}): {mobile}";
-char *parsed_custom_format = NULL;
-enum field_types *custom_format_fields = 0;
 struct abook_output_item_filter selected_item_filter;
 
 bool alternative_datafile = FALSE;
@@ -342,7 +340,7 @@ parse_command_line(int argc, char **argv)
                        { 0, 0, 0, 0 }
                };
 
-               c = getopt_long(argc, argv, "hC:",
+               c = getopt_long(argc, argv, "hC:f:",
                                long_options, &option_index);
 
                if(c == -1)
@@ -420,9 +418,6 @@ parse_command_line(int argc, char **argv)
                        fprintf(stderr, _("Invalid custom format string\n"));
                        exit(EXIT_FAILURE);
                }
-               parsed_custom_format = (char *)malloc(FORMAT_STRING_LEN);
-               custom_format_fields = (enum field_types *)malloc(FORMAT_STRING_MAX_FIELDS * sizeof(enum field_types));
-               parse_custom_format(custom_format, parsed_custom_format, custom_format_fields);
        }
        if(optind < argc) {
                fprintf(stderr, _("%s: unrecognized arguments on command line\n"),
@@ -446,10 +441,10 @@ parse_command_line(int argc, char **argv)
 static void
 show_usage()
 {
-       puts    (PACKAGE " v " VERSION "\n");
+       puts    (PACKAGE " v" VERSION "\n");
        puts    (_("     -h     --help                          show usage"));
        puts    (_("     -C     --config        <file>          use an alternative configuration file"));
-       puts    (_("    --datafile      <file>          use an alternative addressbook file"));
+       puts    (_("     -f     --datafile      <file>          use an alternative addressbook file"));
        puts    (_("    --mutt-query    <string>        make a query for mutt"));
        puts    (_("    --add-email                     "
                        "read an e-mail message from stdin and\n"
index 2ea5a2dd77bfa3acafa196f5f324a7b47cee2ed6..2cb145ce9e9e0965d1d624bdeace1171b296c6f5 100644 (file)
--- a/filter.c
+++ b/filter.c
@@ -2562,6 +2562,14 @@ bsdcal_export_database(FILE *out, struct db_enumerator e)
        return 0;
 }
 
+/*
+ * end of BSD calendar export filter
+ */
+
+/*
+ * custom export filter
+ */
+
 static int
 find_field_enum(char *s) {
        int i = -1;
@@ -2646,7 +2654,6 @@ parse_custom_format(char *s, char *fmt_string, enum field_types *ft)
 
  cannotparse:
        fprintf(stderr, _("%s: invalid format, index %ld\n"), __FUNCTION__, (start - s));
-       free(fmt_string);
        free(ft);
        exit(EXIT_FAILURE);
 }
@@ -2655,10 +2662,12 @@ static int
 custom_export_item(FILE *out, int item, char *s, enum field_types *ft);
 
 
-// used to store the format string from --outformatstr when "custom" format is used
-// default value overriden in export_file()
-extern char *parsed_custom_format;
-extern enum field_types *custom_format_fields;
+// stores the format string generated from --outformatstr {custom_format}
+// (when "custom" output format is requested)
+// overrides default value of custom_format set by from abook.c
+extern char custom_format[FORMAT_STRING_LEN];
+char parsed_custom_format[FORMAT_STRING_LEN];
+enum field_types *custom_format_fields = 0;
 
 /* wrapper for custom_export_item:
    1) avoid messing with extern pointer
@@ -2716,28 +2725,20 @@ custom_export_item(FILE *out, int item, char *fmt, enum field_types *ft)
   return 0;
 }
 
-// used to store the format string from --outformatstr when "custom" format is used
-// default value overriden from abook.c
-extern char custom_format[FORMAT_STRING_LEN];
-
 static int
 custom_export_database(FILE *out, struct db_enumerator e)
 {
-       char *format_string = (char *)malloc(FORMAT_STRING_LEN);
-
        enum field_types *ft =
          (enum field_types *)malloc(FORMAT_STRING_MAX_FIELDS * sizeof(enum field_types));
 
-       parse_custom_format(custom_format, format_string, ft);
-
+       parse_custom_format(custom_format, (char*)&parsed_custom_format, ft);
        db_enumerate_items(e) {
-         if(custom_export_item(out, e.item, format_string, ft) == 0)
+         if(custom_export_item(out, e.item, (char*)&parsed_custom_format, ft) == 0)
            fprintf(out, "\n");
        }
        return 0;
 }
 
 /*
- * end of BSD calendar export filter
+ * end of custom export filter
  */
-
index 548bf7ae87b08bfb08cff637e2ceb78cc5634483..8b5513d4f9e2744983b5e1064a7631e83113df01 100644 (file)
--- a/filter.h
+++ b/filter.h
@@ -4,7 +4,7 @@
 #include "database.h"
 
 #define                FILTNAME_LEN    8
-#define                FORMAT_STRING_LEN       128
+#define                FORMAT_STRING_LEN       512
 #define                FORMAT_STRING_MAX_FIELDS        16