53ec6551ecae43fc6d14e4dfb6578ea6a6e69047
[m17n/m17n-test.git] / finddb.c
1 #include <stdio.h>
2 #include <m17n.h>
3 #include <m17n-misc.h>
4
5 int
6 main (int argc, char **argv)
7 {
8   MSymbol tags[4];
9   int i;
10   MDatabase *mdb;
11   MPlist *plist;
12
13   M17N_INIT ();
14   for (i = 0; i < argc - 1; i++)
15     tags[i] = msymbol (argv[i + 1]);
16   for (; i < 4; i++)
17     tags[i] = Mnil;
18   mdb = mdatabase_find (tags[0], tags[1], tags[2], tags[3]);
19   if (! mdb)
20     {
21       MPlist *p;
22
23       plist = mdatabase_list (tags[0], tags[1], tags[2], tags[3]);
24
25       if (! plist)
26         {
27           printf ("No such database!\n");
28           exit (1);
29         }
30       printf ("These databases matched.\n");
31       for (p = plist; mplist_key (p) != Mnil; p = mplist_next (p))
32         {
33           MSymbol *s = mdatabase_tag (mplist_value (p));
34
35           printf ("(");
36           for (i = 0; i < 4; i++)
37             {
38               if (i > 0) putchar (' ');
39               printf ("%s", msymbol_name (s[i]));
40             }
41           printf (")\n");
42         }
43       exit (1);
44     }
45   plist = mdatabase_load (mdb);
46   if (! plist)
47     {
48       printf ("Load fail!\n");
49       exit (1);
50     }
51   mdebug_dump_plist (plist, 0);
52   m17n_object_unref (plist);
53   M17N_FINI ();
54   exit (0);
55 }