xref: /csrg-svn/usr.bin/gprof/printlist.c (revision 7222)
17175Speter #ifndef lint
2*7222Speter     static	char *sccsid = "@(#)printlist.c	1.2 (Berkeley) 06/18/82";
37175Speter #endif lint
47175Speter 
57175Speter #include "gprof.h"
67175Speter 
7*7222Speter     /*
8*7222Speter      *	these are the lists of names:
9*7222Speter      *	there is the list head and then the listname
10*7222Speter      *	is a pointer to the list head
11*7222Speter      *	(for ease of passing to stringlist functions).
12*7222Speter      */
13*7222Speter struct stringlist	fhead = { 0 , 0 };
14*7222Speter struct stringlist	*flist = &fhead;
15*7222Speter struct stringlist	Fhead = { 0 , 0 };
16*7222Speter struct stringlist	*Flist = &Fhead;
17*7222Speter struct stringlist	ehead = { 0 , 0 };
18*7222Speter struct stringlist	*elist = &ehead;
19*7222Speter struct stringlist	Ehead = { 0 , 0 };
20*7222Speter struct stringlist	*Elist = &Ehead;
217175Speter 
22*7222Speter addlist( listp , funcname )
23*7222Speter     struct stringlist	*listp;
24*7222Speter     char		*funcname;
257175Speter {
267175Speter     struct stringlist	*slp;
277175Speter 
287175Speter     slp = (struct stringlist *) malloc( sizeof(struct stringlist));
297175Speter     if ( slp == (struct stringlist *) 0 ) {
307175Speter 	fprintf( stderr, "gprof: ran out room for printlist\n" );
317175Speter 	done();
327175Speter     }
33*7222Speter     slp -> next = listp -> next;
347175Speter     slp -> string = funcname;
35*7222Speter     listp -> next = slp;
367175Speter }
377175Speter 
387175Speter bool
39*7222Speter onlist( listp , funcname )
40*7222Speter     struct stringlist	*listp;
41*7222Speter     char		*funcname;
427175Speter {
437175Speter     struct stringlist	*slp;
447175Speter 
45*7222Speter     for ( slp = listp -> next ; slp ; slp = slp -> next ) {
467175Speter 	if ( ! strcmp( slp -> string , funcname ) ) {
477175Speter 	    return TRUE;
487175Speter 	}
497175Speter 	if ( funcname[0] == '_' && ! strcmp( slp -> string , &funcname[1] ) ) {
507175Speter 	    return TRUE;
517175Speter 	}
527175Speter     }
537175Speter     return FALSE;
547175Speter }
55