*** empty log message ***
[m17n/m17n-docs.git] / utils / imdoc.c
1 #include <stdio.h>
2 #include <string.h>
3 #include <locale.h>
4 #include <m17n.h>
5
6 int
7 main (int argc, char **argv)
8 {
9   char *file;
10   MPlist *plist;
11   MSymbol language, name;
12   MText *mt;
13
14   setlocale (LC_ALL, "");
15   M17N_INIT ();
16
17   if (argc < 3)
18     {
19       fprintf (stderr, "Usage: imdoc FILE (input-method LANG NAME [EXTRA])\n");
20       exit (1);
21     }
22   file = argv[1];
23   mt = mtext_from_data (argv[2], strlen (argv[2]), MTEXT_FORMAT_US_ASCII);
24   plist = mplist_deserialize (mt);
25   m17n_object_unref (mt);
26   plist = mplist_value (plist);
27   plist = mplist_next (plist);
28   language = mplist_value (plist);
29   plist = mplist_next (plist);
30   name = mplist_value (plist);
31   plist = mplist_next (plist);
32   if (mplist_key (plist) != Mnil)
33     language = mplist_value (plist), name = Mnil;
34   m17n_object_unref (plist);
35   mt = minput_get_description (language, name);
36   if (! mt)
37     {
38       fprintf (stderr, "Invalid IM name: %s %s\n", argv[1] ,argv[2]);
39       exit (1);
40     }
41 #if 0
42   if (argc < 5)
43     {
44       if (language == Mt)
45         printf ("<li> %s (language:generic name:%s)\n", file, argv[3]);
46       else
47         printf ("<li> %s (language:%s name:%s)\n", file, argv[2], argv[3]);
48     }
49   else
50     printf ("<li> %s (extra-name:%s, only for inclusion)\n", file, argv[4]);
51 #endif
52   printf ("@verbatim\n");
53   mconv_encode_stream (msymbol ("utf-8"), mt, stdout);
54   printf ("\n@endverbatim\n");
55
56   M17N_FINI ();
57   exit (0);
58 }