RPRIVATE
RBOOL
    _isStringInList
    (
        rList searchStrings,
        RPWCHAR str
    )
{
    RBOOL found = FALSE;
    RPWCHAR strVal;

    if( NULL != searchStrings && NULL != str )
    {
        rList_resetIterator( searchStrings );
        while( rList_getSTRINGW( searchStrings, RP_TAGS_STRING, &strVal ) )
        {
            if( rpal_string_matchW( strVal, str, TRUE ) )
            {
                found = TRUE;
                break;
            }
        }
    }

    return found;
}
static
RBOOL
    _isPatternMatch
    (
        rpcm_elem_record* elemToCheck,
        rpcm_elem_record* elemRef
    )
{
    RBOOL isMatch = FALSE;

    if( NULL != elemToCheck &&
        NULL != elemRef &&
        ( 0 == elemToCheck->tag ||
          0 == elemRef->tag ||
          elemToCheck->tag == elemRef->tag ) )
    {
        if( RPCM_STRINGA == elemToCheck->type &&
            RPCM_STRINGA == elemRef->type )
        {
            isMatch = rpal_string_matchA( elemRef->value, elemToCheck->value, FALSE );
        }
        else if( RPCM_STRINGW == elemToCheck->type &&
                 RPCM_STRINGW == elemRef->type )
        {
            isMatch = rpal_string_matchW( elemRef->value, elemToCheck->value, FALSE );
        }
    }

    return isMatch;
}