// 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;
{ 0, 0, 0, 0 }
};
- c = getopt_long(argc, argv, "hC:",
+ c = getopt_long(argc, argv, "hC:f:",
long_options, &option_index);
if(c == -1)
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"),
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"
return 0;
}
+/*
+ * end of BSD calendar export filter
+ */
+
+/*
+ * custom export filter
+ */
+
static int
find_field_enum(char *s) {
int i = -1;
cannotparse:
fprintf(stderr, _("%s: invalid format, index %ld\n"), __FUNCTION__, (start - s));
- free(fmt_string);
free(ft);
exit(EXIT_FAILURE);
}
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
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
*/
-