Fixed bug in inetd code. The server listened on tcp:@:9999 even
[yaz-moved-to-github.git] / retrieval / d1_prtree.c
1 /*
2  * Copyright (c) 1995-1997, Index Data.
3  * See the file LICENSE for details.
4  * Sebastian Hammer, Adam Dickmeiss
5  *
6  * $Log: d1_prtree.c,v $
7  * Revision 1.2  1997-11-06 11:36:44  adam
8  * Implemented variant match on simple elements -data1 tree and Espec-1.
9  *
10  * Revision 1.1  1997/10/27 14:04:07  adam
11  * New debug utility, data1_pr_tree, that dumps a data1 tree.
12  *
13  */
14
15 #include <log.h>
16 #include <data1.h>
17
18 static void pr_tree (data1_handle dh, data1_node *n, FILE *out, int level)
19 {
20      fprintf (out, "%*s", level, "");
21      switch (n->which)
22      {
23      case DATA1N_root:
24          fprintf (out, "root abstract syntax=%s\n", n->u.root.type);
25          break;
26      case DATA1N_tag:
27          fprintf (out, "tag type=%s\n", n->u.tag.tag);
28          break;
29      case DATA1N_data:
30          fprintf (out, "data type=");
31          switch (n->u.data.what)
32          {
33          case DATA1I_inctxt:
34              fprintf (out, "inctxt\n");
35              break;
36          case DATA1I_incbin:
37              fprintf (out, "incbin\n");
38              break;
39          case DATA1I_text:
40              fprintf (out, "text '%.*s'\n", n->u.data.len, n->u.data.data);
41              break;
42          case DATA1I_num:
43              fprintf (out, "num\n");
44              break;
45          case DATA1I_oid:
46              fprintf (out, "oid\n");
47              break;
48          default:
49              fprintf (out, "unknown(%d)\n", n->u.data.what);
50              break;
51          }
52          break;
53      case DATA1N_variant:
54          fprintf (out, "variant\n");
55 #if 0
56          if (n->u.variant.type->name)
57              fprintf (out, " class=%s type=%d value=%s\n",
58                       n->u.variant.type->name, n->u.variant.type->type,
59                       n->u.variant.value);
60 #endif
61          break;
62      default:
63          fprintf (out, "unknown(%d)\n", n->which);
64      }
65      if (n->child)
66          pr_tree (dh, n->child, out, level+4);
67      if (n->next)
68          pr_tree (dh, n->next, out, level);
69 }
70
71
72 void data1_pr_tree (data1_handle dh, data1_node *n, FILE *out)
73 {
74      pr_tree (dh, n, out, 0);
75 }