xref: /csrg-svn/usr.bin/gprof/printlist.c (revision 21964)
1*21964Sdist /*
2*21964Sdist  * Copyright (c) 1983 Regents of the University of California.
3*21964Sdist  * All rights reserved.  The Berkeley software License Agreement
4*21964Sdist  * specifies the terms and conditions for redistribution.
5*21964Sdist  */
6*21964Sdist 
77175Speter #ifndef lint
8*21964Sdist static char sccsid[] = "@(#)printlist.c	5.1 (Berkeley) 06/04/85";
9*21964Sdist #endif not lint
107175Speter 
117175Speter #include "gprof.h"
127175Speter 
137222Speter     /*
147222Speter      *	these are the lists of names:
157222Speter      *	there is the list head and then the listname
167222Speter      *	is a pointer to the list head
177222Speter      *	(for ease of passing to stringlist functions).
187222Speter      */
197222Speter struct stringlist	fhead = { 0 , 0 };
207222Speter struct stringlist	*flist = &fhead;
217222Speter struct stringlist	Fhead = { 0 , 0 };
227222Speter struct stringlist	*Flist = &Fhead;
237222Speter struct stringlist	ehead = { 0 , 0 };
247222Speter struct stringlist	*elist = &ehead;
257222Speter struct stringlist	Ehead = { 0 , 0 };
267222Speter struct stringlist	*Elist = &Ehead;
277175Speter 
287222Speter addlist( listp , funcname )
297222Speter     struct stringlist	*listp;
307222Speter     char		*funcname;
317175Speter {
327175Speter     struct stringlist	*slp;
337175Speter 
347175Speter     slp = (struct stringlist *) malloc( sizeof(struct stringlist));
357175Speter     if ( slp == (struct stringlist *) 0 ) {
367175Speter 	fprintf( stderr, "gprof: ran out room for printlist\n" );
377175Speter 	done();
387175Speter     }
397222Speter     slp -> next = listp -> next;
407175Speter     slp -> string = funcname;
417222Speter     listp -> next = slp;
427175Speter }
437175Speter 
447175Speter bool
457222Speter onlist( listp , funcname )
467222Speter     struct stringlist	*listp;
477222Speter     char		*funcname;
487175Speter {
497175Speter     struct stringlist	*slp;
507175Speter 
517222Speter     for ( slp = listp -> next ; slp ; slp = slp -> next ) {
527175Speter 	if ( ! strcmp( slp -> string , funcname ) ) {
537175Speter 	    return TRUE;
547175Speter 	}
557175Speter 	if ( funcname[0] == '_' && ! strcmp( slp -> string , &funcname[1] ) ) {
567175Speter 	    return TRUE;
577175Speter 	}
587175Speter     }
597175Speter     return FALSE;
607175Speter }
61