#include "utf8-locale.h"
#define BOGUS_FILE_NAME "Makefile.am"
+int total_conv_fails = 0;
void show_help ()
{
printf(" -3 Run the test parse 3 times instead of once\n");
printf(" -b Parse a bogus file before parsing the main file\n");
printf(" -q No output to standard output\n");
+ printf(" -o <outfile> File to generate output to (def. testgedcom.out)\n");
}
Gedcom_ctxt header_start(Gedcom_rec rec, int level, Gedcom_val xref, char *tag,
converted = convert_utf8_to_locale(raw_value, &conv_fails);
output(0, "== %d %s (%d) %s (ctxt is %d, conversion failures: %d)\n",
level, tag, tag_value, converted, (int)ctxt, conv_fails);
+ total_conv_fails += conv_fails;
}
void subscribe_callbacks()
int run_times = 1;
int bogus = 0;
int result = 0;
+ char* outfilename = NULL;
char* file_name = NULL;
if (argc > 1) {
else if (!strncmp(argv[i], "-q", 3)) {
output_set_quiet(1);
}
+ else if (!strncmp(argv[i], "-o", 3)) {
+ i++;
+ if (i < argc) {
+ outfilename = argv[i];
+ }
+ else {
+ printf ("Missing output file name\n");
+ show_help();
+ exit(1);
+ }
+ }
else if (strncmp(argv[i], "-", 1)) {
file_name = argv[i];
break;
gedcom_set_default_callback(default_cb);
subscribe_callbacks();
- output_open();
+ output_open(outfilename);
if (bogus) {
output(0, "\n=== Parsing bogus file %s\n", BOGUS_FILE_NAME);
gedcom_parse_file(BOGUS_FILE_NAME);
while (run_times-- > 0) {
output(0, "\n=== Parsing file %s\n", file_name);
result |= gedcom_parse_file(file_name);
+ output(0, "\n=== Total conversion failures: %d\n", total_conv_fails);
}
if (result == 0) {
output(1, "Parse succeeded\n");