home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #6 / amigamamagazinepolishissue1998.iso / coders / biblioteki / c_library / rtlibrary / source / rt / rt_remsome.c < prev    next >
C/C++ Source or Header  |  1977-12-31  |  707b  |  37 lines

  1. /*
  2.  * $Id: rt_remsome.c $
  3.  *
  4.  * Author: Tomi Ollila <Tomi.Ollila@hut.fi>
  5.  *
  6.  *     Copyright (c) 1994 Tomi Ollila
  7.  *         All rights reserved
  8.  *
  9.  * Created: Sun Dec 25 01:01:58 1994 too
  10.  * Last modified: Wed Feb  1 01:40:16 1995 too
  11.  *
  12.  * HISTORY 
  13.  * $Log: $
  14.  */
  15.  
  16. #include "rt_priv.h"
  17.  
  18. void rt_RemSome(struct RT * rt, void * ptr, ULONG flags)
  19. {
  20.   struct RTNode * node = rt->node;
  21.   int dataflag = flags & RTRF_DATA;
  22.  
  23.   while (node->func) {
  24.     if (ptr == ((dataflag)? node->data: node)) {
  25.       if (flags & RTRF_REMTO) {
  26.     ((f_void)node->func)(node->data);
  27.     node--;
  28.       }
  29.       rt->node = node; /* - 1 */;
  30.       return;
  31.     }
  32.     ((f_void)node->func)(node->data);
  33.     node--;
  34.   }
  35.   rt->node = &rt->endnode;
  36. }
  37.