home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / libraries / rtlibrary.lha / rtlibrary / src / rt / rt_remdata.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-01-06  |  696 b   |  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.