xref: /csrg-svn/usr.bin/gprof/printlist.c (revision 7175)
1*7175Speter #ifndef lint
2*7175Speter     static	char *sccsid = "@(#)printlist.c	1.1 (Berkeley) 06/14/82";
3*7175Speter #endif lint
4*7175Speter 
5*7175Speter #include "gprof.h"
6*7175Speter 
7*7175Speter struct stringlist {
8*7175Speter     struct stringlist	*next;
9*7175Speter     char		*string;
10*7175Speter };
11*7175Speter 
12*7175Speter struct stringlist	fflaglist = { 0 , 0 };
13*7175Speter 
14*7175Speter addflist( funcname )
15*7175Speter     char	*funcname;
16*7175Speter {
17*7175Speter     struct stringlist	*slp;
18*7175Speter 
19*7175Speter     slp = (struct stringlist *) malloc( sizeof(struct stringlist));
20*7175Speter     if ( slp == (struct stringlist *) 0 ) {
21*7175Speter 	fprintf( stderr, "gprof: ran out room for printlist\n" );
22*7175Speter 	done();
23*7175Speter     }
24*7175Speter     slp -> next = fflaglist.next;
25*7175Speter     slp -> string = funcname;
26*7175Speter     fflaglist.next = slp;
27*7175Speter }
28*7175Speter 
29*7175Speter bool
30*7175Speter onflist( funcname )
31*7175Speter     char	*funcname;
32*7175Speter {
33*7175Speter     struct stringlist	*slp;
34*7175Speter 
35*7175Speter     for ( slp = fflaglist.next ; slp ; slp = slp -> next ) {
36*7175Speter 	if ( ! strcmp( slp -> string , funcname ) ) {
37*7175Speter 	    return TRUE;
38*7175Speter 	}
39*7175Speter 	if ( funcname[0] == '_' && ! strcmp( slp -> string , &funcname[1] ) ) {
40*7175Speter 	    return TRUE;
41*7175Speter 	}
42*7175Speter     }
43*7175Speter     return FALSE;
44*7175Speter }
45*7175Speter 
46*7175Speter struct stringlist	eflaglist = { 0 , 0 };
47*7175Speter 
48*7175Speter addelist( funcname )
49*7175Speter     char	*funcname;
50*7175Speter {
51*7175Speter     struct stringlist	*slp;
52*7175Speter 
53*7175Speter     slp = (struct stringlist *) malloc( sizeof(struct stringlist));
54*7175Speter     if ( slp == (struct stringlist *) 0 ) {
55*7175Speter 	fprintf( stderr, "gprof: ran out room for printlist\n" );
56*7175Speter 	done();
57*7175Speter     }
58*7175Speter     slp -> next = eflaglist.next;
59*7175Speter     slp -> string = funcname;
60*7175Speter     eflaglist.next = slp;
61*7175Speter }
62*7175Speter 
63*7175Speter bool
64*7175Speter onelist( funcname )
65*7175Speter     char	*funcname;
66*7175Speter {
67*7175Speter     struct stringlist	*slp;
68*7175Speter 
69*7175Speter     for ( slp = eflaglist.next ; slp ; slp = slp -> next ) {
70*7175Speter 	if ( ! strcmp( slp -> string , funcname ) ) {
71*7175Speter 	    return TRUE;
72*7175Speter 	}
73*7175Speter 	if ( funcname[0] == '_' && ! strcmp( slp -> string , &funcname[1] ) ) {
74*7175Speter 	    return TRUE;
75*7175Speter 	}
76*7175Speter     }
77*7175Speter     return FALSE;
78*7175Speter }
79