blob: 70b2cb8f90cab3999b78cd8e8fbc5226eae8d24a [file] [log] [blame]
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);
}