Commit | Line | Data |
---|---|---|
0fc6e47b KB |
1 | /*- |
2 | * %sccs.include.proprietary.c% | |
3 | */ | |
4 | ||
d03accc5 | 5 | #ifndef lint |
0fc6e47b KB |
6 | static char sccsid[] = "@(#)1.finish.c 4.2 (Berkeley) %G%"; |
7 | #endif /* not lint */ | |
d03accc5 RH |
8 | |
9 | #include <stdio.h> | |
10 | #include "def.h" | |
11 | #include "1.incl.h" | |
12 | ||
13 | fingraph() | |
14 | { | |
15 | /* if any entry statements, add a DUMVX with arcs to all entry statements */ | |
16 | if (ENTLST) | |
17 | { | |
18 | ARC(START,0) = addum(ARC(START,0),ENTLST); | |
19 | freelst(ENTLST); | |
20 | } | |
21 | /* if any FMTVX, add a DUMVX with arcs to all FMTVX's */ | |
22 | if (FMTLST) | |
23 | { | |
24 | ARC(START,0) = addum(ARC(START,0),FMTLST); | |
25 | freelst(FMTLST); | |
26 | } | |
27 | } | |
28 | ||
29 | addum(v,lst) | |
30 | VERT v; | |
31 | struct list *lst; | |
32 | { | |
33 | VERT new; | |
34 | int count,i; | |
35 | struct list *ls; | |
36 | count = lslen(lst); /* length of lst */ | |
37 | new = create(DUMVX,1+count); | |
38 | ARC(new,0) = v; | |
39 | for (i = count, ls = lst; i >= 1; --i, ls = ls->nxtlist) | |
40 | { | |
41 | ASSERT(ls,addum); | |
42 | ARC(new,i) = ls->elt; | |
43 | } | |
44 | ASSERT(!ls, addum); | |
45 | return(new); | |
46 | } |