Browse Source

* util.c : "init" mode

master
Alex 'AdUser' Z 10 years ago
parent
commit
1bb88111ee
  1. 18
      src/util.c

18
src/util.c

@ -31,6 +31,7 @@ void usage(int exitcode) {
" -t <float> Maximum difference percent (0.0 - 1.0, default: 0.1)\n" " -t <float> Maximum difference percent (0.0 - 1.0, default: 0.1)\n"
); );
printf("\n" printf("\n"
" -I Create database (init)\n"
" -B <num> Show bitmap for this sample\n" " -B <num> Show bitmap for this sample\n"
" -C <a>,<b> Show difference percent for this samples\n" " -C <a>,<b> Show difference percent for this samples\n"
" -D <a>,<b> Show difference bitmap for this samples\n" " -D <a>,<b> Show difference bitmap for this samples\n"
@ -184,7 +185,7 @@ int rec_diff(imdb_t *db, unsigned long a, unsigned long b, unsigned short int sh
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
enum { undef, search, bitmap, usage_map, diff } mode = undef; enum { undef, init, search, bitmap, usage_map, diff } mode = undef;
const char *db_path = NULL; const char *db_path = NULL;
float tresh = 0.10; float tresh = 0.10;
unsigned short int cols = 64, map = 0; unsigned short int cols = 64, map = 0;
@ -200,7 +201,7 @@ int main(int argc, char **argv)
if (argc < 3) if (argc < 3)
usage(EXIT_FAILURE); usage(EXIT_FAILURE);
while ((opt = getopt(argc, argv, "b:t:B:C:D:S:U:")) != -1) { while ((opt = getopt(argc, argv, "b:t:IB:C:D:S:U:")) != -1) {
switch (opt) { switch (opt) {
case 'b' : case 'b' :
db_path = optarg; db_path = optarg;
@ -209,6 +210,9 @@ int main(int argc, char **argv)
tresh = atof(optarg); tresh = atof(optarg);
tresh = (tresh > 0.0 && tresh < 1.0) ? tresh : 0.10; tresh = (tresh > 0.0 && tresh < 1.0) ? tresh : 0.10;
break; break;
case 'I' :
mode = init;
break;
case 'B' : case 'B' :
mode = bitmap; mode = bitmap;
sample.num = atoll(optarg); sample.num = atoll(optarg);
@ -244,8 +248,16 @@ int main(int argc, char **argv)
if (mode == diff && (a <= 0 || b <= 0)) if (mode == diff && (a <= 0 || b <= 0))
usage(EXIT_FAILURE); usage(EXIT_FAILURE);
if (mode == init) {
if (imdb_init(&db, db_path) == -1) {
printf("database init: %s\n", db.errstr);
exit(EXIT_FAILURE);
}
exit(EXIT_SUCCESS);
}
if (imdb_open(&db, db_path) == -1) { if (imdb_open(&db, db_path) == -1) {
printf("%s\n", db.errstr); printf("database open: %s\n", db.errstr);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }

Loading…
Cancel
Save