home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / prog / c / bmake15.lzh / lists.c < prev    next >
C/C++ Source or Header  |  1991-11-03  |  498b  |  33 lines

  1. /*    lists.c
  2.  *    (c) Copyright 1991 by Ben Eng, All Rights Reserved
  3.  *
  4.  */
  5.  
  6. #include <clib/exec_protos.h>
  7.  
  8. #include "make.h"
  9.  
  10.  
  11. void *
  12. for_list( struct List *list, long (*node_fn)(void *))
  13. {
  14.     struct Node *ln, *succ;
  15.  
  16.     for( ln = list->lh_Head; ln->ln_Succ; ln = succ ) {
  17.         succ = ln->ln_Succ;
  18.         if( (*node_fn)( ln ))
  19.             return( ln );
  20.     }
  21.     return( NULL );
  22. }
  23.  
  24. void
  25. attach_list( struct List *newlist, struct List *oldlist )
  26. {
  27.     struct Node *ln;
  28.  
  29.     while( ln = RemHead( oldlist ))
  30.         AddTail( newlist, ln );
  31. }
  32.  
  33.