chiark / gitweb /
much fixes for new arrangements
[ypp-sc-tools.db-test.git] / pctb / convert.c
1
2 #include "convert.h"
3
4
5 void debug_flush(void) {
6   eassert(!fflush(debug));
7   eassert(!ferror(debug));
8 }
9
10
11 const char *get_vardir(void) { return "."; }
12
13
14 static enum { mode_all=03, mode_screenshot=01, mode_analyse=02 }
15     o_mode= mode_all;
16 static char *o_screenshots_fn;
17 static int o_single_page;
18
19 FILE *screenshots_file;
20
21 int main(int argc, char **argv) {
22   const char *arg;
23   int r;
24
25   while ((arg=*++argv)) {
26     if (!strcmp(arg,"--screenshots-only"))
27       o_mode= mode_screenshot;
28     else if (!strcmp(arg,"--analyse-only"))
29       o_mode= mode_analyse;
30     else if (!strcmp(arg,"--single-page"))
31       o_single_page= 1;
32     else if (!strcmp(arg,"--screenshots-file"))
33       eassert( o_screenshots_fn= *++argv );
34 #define DF(f)                                   \
35     else if (!strcmp(arg,"-D" #f))              \
36       debug_flags |= dbg_##f;
37     DEBUG_FLAG_LIST
38 #undef DF
39     else if (!strcmp(arg,"--window-id")) {
40       char *ep;
41       eassert((arg=*++argv));
42       unsigned long windowid= strtoul(arg,&ep,0);
43       eassert(!*ep);
44       set_yppclient_window(windowid);
45     } else
46       eassert(!"bad option");
47   }
48   
49   if (!o_screenshots_fn) {
50     r= asprintf(&o_screenshots_fn,"%s/#pages#.ppm",get_vardir());
51     eassert(r>=0);  eassert(o_screenshots_fn);
52   }
53
54   if (o_mode & mode_screenshot) {
55     screenshot_startup();
56     find_yppclient_window();
57     screenshots_file= fopen(o_screenshots_fn, "w"); eassert(screenshots_file);
58     if (o_single_page)
59       take_one_screenshot();
60     else
61       take_screenshots();
62   } else {
63     screenshots_file= fopen(o_screenshots_fn, "r"); eassert(screenshots_file);
64     read_screenshots();
65   }
66   if (o_mode & mode_analyse) {
67     analyse();
68     //output_tsv();
69   }
70   return 0;
71 }