1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
struct r
{
int d1, d2;
};
struct km
{
int d;
};
struct f1
{
char *fn;
char *fd;
char *fs;
char *ic;
void (*ff) ();
};
int g ();
int y;
struct r *bs;
int bv;
void b ();
char *w ();
struct km **q;
char **mns;
int nm;
struct f1 **z;
f (char *km, char *h)
{
struct f1 *t;
int map = midn(km, strlen(km));
int V;
int c;
struct r r;
struct f1 *cm;
if (!g(&V, &cm, h, strlen(h)))
{
c = (cm - z[V]);
goto L;
}
for (c = 0; c < nm; c++)
if (!strcmp (h, mns[c]))
{
V = -1;
goto L;
}
for (c = 0; c < y; c++)
{
if (!memcmp (&bs[c], &r, 8))
goto L;
}
h = w (&r);
if (!bv)
{
bs = g (8);
t = (struct f1 *)g (20);
}
else
{
bs = g (bs, y * 8);
z[bv] = cr (z[bv], (1 + y) * 20);
t = &z[bv][y - 1];
}
bs[y - 1] = r;
t->fs[0] = sp (y - 1);
t->fs[1] = 0;
t->ic = 0;
t->fd = 0;
t->fn = cs (h);
t->ff = b;
L:
g (q[map], V, c);
}
|