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

  1. /*
  2.  * $Id: rt_remitem.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 00:18:50 1994 too
  10.  * Last modified: Sun Dec 25 01:01:42 1994 too
  11.  *
  12.  * HISTORY 
  13.  * $Log: $
  14.  */
  15.  
  16. #include "rt_priv.h"
  17.  
  18. BOOL rt_RemData(struct RT * rt, void * data)
  19. {
  20.   struct RTNode * node = rt->node;
  21.   size_t * i;
  22.  
  23.   while (node->func) {
  24.     if (data == node->data) {
  25.       size_t * j = (size_t *)(rt->node + 1);
  26.   
  27.       ((f_void)node->func)(node->data);
  28.  
  29.       for (i = (size_t *)node; i < j; i++)
  30.     i[0] = i[sizeof (struct RTNode) / sizeof (size_t)];
  31.  
  32.       rt->node--;
  33.       return TRUE;
  34.     }
  35.     node--;
  36.   }
  37.   return FALSE;
  38. }
  39.