/* ******************************************************************************* * Copyright (c) 1996 Martin Poole * ******************************************************************************* ** ** WARNING !! WARNING !! WARNING !! WARNING !! WARNING !! WARNING !! ** ** Any changes to be made to this file should first be checked with ** mplib1 source control for library integrity. ** ** mplib1 source control can be reached at mplib1@quatermass.co.uk ** * * $Source: /home/cvs/cvsroot/onelan/onelan/src/mplib1/libsrc/dl_l_021.c,v $ * $Author: mpoole $ * $Date: 2002/10/07 09:37:39 $ * $Revision: 1.2 $ * Purpose : Double-linked list handling * ******************************************************************************* * * Change History * * $Log: dl_l_021.c,v $ * Revision 1.2 2002/10/07 09:37:39 mpoole * Initial checkin of mplib1-3.1.0 * * Revision 1.1 2002/10/07 09:36:56 mpoole * Initial checkin of mplib1-3.1.0 * * ******************************************************************************* */ #ident "$Header: /home/cvs/cvsroot/onelan/onelan/src/mplib1/libsrc/dl_l_021.c,v 1.2 2002/10/07 09:37:39 mpoole Exp $" /* ------------------------------------------------------------------ Include files ------------------------------------------------------------------ */ #include #include #include #include #include /* ------------------------------------------------------------------ defines ------------------------------------------------------------------ */ /* ------------------------------------------------------------------ Code starts here ------------------------------------------------------------------ */ void dl_Free_Node( dl_Node_t *nptr, int flags ) { if ( (flags & DL_FREE_NODES ) || (flags & DL_REMOVE_NODES) ) dl_Remove_Node( nptr ); if ( (flags & DL_FREE_NAMES) && nptr->ln_Name ) { free( (void *)nptr->ln_Name ); nptr->ln_Name = NULL; } if ( (flags & DL_FREE_ITEMS) && nptr->ln_Item ) { void *vp; /* just in case the node is in the item */ vp = nptr->ln_Item; nptr->ln_Item = NULL; free( vp ); } if ( flags & DL_FREE_NODES ) { free( nptr ); } return; } void dl_Free_List( dl_List_t *fl_ptr, int flags ) { dl_Walk_List( fl_ptr, (dl_Walk_List_t)dl_Free_Node, (void *)flags ); return; } /* -- End of File -- */