dtwalk.c 436 B

1234567891011121314151617181920212223
  1. #include <cdt/dthdr.h>
  2. /* Walk a dictionary and all dictionaries viewed through it.
  3. ** userf: user function
  4. **
  5. ** Written by Kiem-Phong Vo (5/25/96)
  6. */
  7. int dtwalk(Dt_t *dt, int (*userf)(void*, void*), void *data) {
  8. void *obj, *next;
  9. Dt_t* walk;
  10. int rv;
  11. for(obj = dtfirst(dt); obj; )
  12. { if(!(walk = dt->walk) )
  13. walk = dt;
  14. next = dtnext(dt,obj);
  15. if ((rv = userf(obj, data)) < 0)
  16. return rv;
  17. obj = next;
  18. }
  19. return 0;
  20. }