/* ******************************************************************************* * 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/bpo_l_011.c,v $ * $Author: mpoole $ * $Date: 2002/10/07 09:37:36 $ * $Revision: 1.2 $ * ******************************************************************************* * * Change History * * $Log: bpo_l_011.c,v $ * Revision 1.2 2002/10/07 09:37:36 mpoole * Initial checkin of mplib1-3.1.0 * * Revision 1.1 2002/10/07 09:36:53 mpoole * Initial checkin of mplib1-3.1.0 * * ******************************************************************************* */ #ident "$Header: /home/cvs/cvsroot/onelan/onelan/src/mplib1/libsrc/bpo_l_011.c,v 1.2 2002/10/07 09:37:36 mpoole Exp $" /* ------------------------------------------------------------------ Include files ------------------------------------------------------------------ */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* ------------------------------------------------------------------ defines ------------------------------------------------------------------ */ /* ------------------------------------------------------------------ Code starts here ------------------------------------------------------------------ */ void * bpo_Find_Next_Item_By_Name( bpo_Node_t *node, const char *name ) { void *item=NULL; int ic; void *seg_base; bpo_List_t *list; seg_base = Get_SODB_Base( node ); if (seg_base==NULL) return(NULL); list = GRPTR( node, node->lno_List ); bpo_pid_Lock( &list->lno_Pid_Lock ); ic = (list->lno_Flags & LN_IGNORECASE); node = GNNODE( node, node->lno_Succ); /* walk the list until we find the matching entry */ while (node && node->lno_Succ && item == NULL) { if ( (ic && stricmp(name,GRPTR( node, node->lno_Name))==0) || (!ic && strcmp(name,GRPTR( node, node->lno_Name))==0) ) { bpo_pid_Unlock( &list->lno_Pid_Lock ); return( GRPTR( node, node->lno_Item ) ); } node = GNNODE( node, node->lno_Succ); }; bpo_pid_Unlock( &list->lno_Pid_Lock ); return(item); } /* -- End of File -- */