X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.db-live.git;a=blobdiff_plain;f=pctb%2Fconvert.c;h=dd7f5d1b426dc32d5315ab37cb11793535f7c526;hp=ac3ceb3e44e2bf6910cdc6aa76fbacef24f3369d;hb=f364c130b3b7d2e46e6cb57e4ff39a59fb54b226;hpb=8b296a5f4da05a4dcf356f71e1ce4e63d8d282cf diff --git a/pctb/convert.c b/pctb/convert.c index ac3ceb3..dd7f5d1 100644 --- a/pctb/convert.c +++ b/pctb/convert.c @@ -47,11 +47,12 @@ static enum { mode_all= 0111, } o_mode= mode_all; -static char *o_screenshots_fn; +static char *o_screenshot_fn; static int o_single_page, o_quiet; static const char *o_outputmode= "upload"; -FILE *screenshots_file; +const char *o_resolver; +FILE *screenshot_file; static void vbadusage(const char *fmt, va_list) FMT(1,0) NORET; @@ -63,11 +64,11 @@ static void vbadusage(const char *fmt, va_list al) { } DEFINE_VWRAPPERF(static, badusage, NORET); -static void open_screenshots_file(const char *mode) { - screenshots_file= fopen(o_screenshots_fn, mode); - if (!screenshots_file) +static void open_screenshot_file(const char *mode) { + screenshot_file= fopen(o_screenshot_fn, mode); + if (!screenshot_file) fatal("could not open screenshots file `%s': %s", - o_screenshots_fn, strerror(errno)); + o_screenshot_fn, strerror(errno)); } static void run_analysis(void) { @@ -77,6 +78,10 @@ static void run_analysis(void) { progress("running recognition..."); analyse(tf); + if (o_single_page && !strcmp(o_outputmode,"upload")) + fatal("Recognition successful, but refusing to upload partial data\n" + " (--single-page specified). Specify an output mode?"); + sysassert( fseek(tf,0,SEEK_SET) == 0); progress_log("processing results (--%s)...", o_outputmode); @@ -110,10 +115,14 @@ int main(int argc, char **argv) { else if (!strcmp(arg,"--analyse-only") || !strcmp(arg,"--same")) o_mode= mode_analyse; + else if (!strcmp(arg,"--everything")) + o_mode= mode_all; else if (!strcmp(arg,"--single-page")) o_single_page= 1; else if (!strcmp(arg,"--quiet")) o_quiet= 1; + else if (!strcmp(arg,"--edit-charset")) + o_resolver= "./yppsc-ocr-resolver"; else if (!strcmp(arg,"--raw-tsv")) o_outputmode= 0; else if (!strcmp(arg,"--upload") || @@ -121,8 +130,8 @@ int main(int argc, char **argv) { !strcmp(arg,"--tsv") || !strcmp(arg,"--best-prices")) o_outputmode= arg+2; - else if (!strcmp(arg,"--screenshots-file")) - o_screenshots_fn= ARGVAL; + else if (!strcmp(arg,"--screenshot-file")) + o_screenshot_fn= ARGVAL; #define DF(f) \ else if (!strcmp(arg,"-D" #f)) \ debug_flags |= dbg_##f; @@ -137,8 +146,8 @@ int main(int argc, char **argv) { badusage("unknown option `%s'",arg); } - if (!o_screenshots_fn) { - r= asprintf(&o_screenshots_fn,"%s/#pages#.ppm",get_vardir()); + if (!o_screenshot_fn) { + r= asprintf(&o_screenshot_fn,"%s/#pages#.ppm",get_vardir()); sysassert(r>=0); } @@ -147,16 +156,17 @@ int main(int argc, char **argv) { find_yppclient_window(); } if (o_mode & mf_screenshot) { - open_screenshots_file("w"); + open_screenshot_file("w"); if (o_single_page) take_one_screenshot(); else take_screenshots(); } if (o_mode & mf_readscreenshot) { - open_screenshots_file("r"); + open_screenshot_file("r"); if (o_single_page) read_one_screenshot(); else read_screenshots(); } if (o_mode & mf_analyse) { + find_islandname(); if (o_outputmode) run_analysis(); else @@ -249,19 +259,6 @@ void sysassert_fail(const char *file, int line, const char *what) { _exit(16); } -void *mmalloc(size_t sz) { - void *r; - if (!sz) return 0; - sysassert( r= malloc(sz) ); - return r; -} -void *mrealloc(void *p, size_t sz) { - assert(sz); - void *r; - sysassert( r= realloc(p,sz) ); - return r; -} - void waitpid_check_exitstatus(pid_t pid, const char *what) { pid_t got; int st;