/*
This software may only be used by you under license from AT&T Corp.
("AT&T"). A copy of AT&T's Source Code Agreement is available at
AT&T's Internet website having the URL:
<http://www.research.att.com/sw/tools/graphviz/license/source.html>
If you received this software without first entering into a license
with AT&T, you have an infringing copy of this software and cannot use
it without violating AT&T's intellectual property rights.
*/
#include "dthdr.h"
#ifdef DMALLOC
#include "dmalloc.h"
#endif
/* Walk a dictionary and all dictionaries viewed through it.
** userf: user function
**
** Written by Kiem-Phong Vo (5/25/96)
*/
#if __STD_C
int dtwalk(reg Dt_t* dt, int (*userf)(Dt_t*, Void_t*, Void_t*), Void_t* data)
#else
int dtwalk(dt,userf,data)
reg Dt_t* dt;
int(* userf)();
Void_t* data;
#endif
{
reg Void_t *obj, *next;
reg Dt_t* walk;
reg int rv;
for(obj = dtfirst(dt); obj; )
{ if(!(walk = dt->walk) )
walk = dt;
next = dtnext(dt,obj);
if((rv = (*userf)(walk, obj, data )) < 0)
return rv;
obj = next;
}
return 0;
}
|