#include "portab.h"
-static char UNUSED id[] = "$Id: match.c,v 1.2 2002/12/12 12:24:18 alex Exp $";
+static char UNUSED id[] = "$Id: match.c,v 1.5 2006/10/06 21:23:47 fw Exp $";
#include "imp.h"
#include <assert.h>
*/
-LOCAL INT Matche PARAMS(( REGISTER CHAR *p, REGISTER CHAR *t ));
-LOCAL INT Matche_After_Star PARAMS(( REGISTER CHAR *p, REGISTER CHAR *t ));
+static int Matche PARAMS(( const char *p, const char *t ));
+static int Matche_After_Star PARAMS(( const char *p, const char *t ));
#define MATCH_PATTERN 6 /* bad pattern */
#define MATCH_VALID 1 /* valid match */
-GLOBAL BOOLEAN
-Match( CHAR *Pattern, CHAR *String )
+GLOBAL bool
+Match( const char *Pattern, const char *String )
{
/* Pattern mit String vergleichen */
- if( Matche( Pattern, String ) == MATCH_VALID ) return TRUE;
- else return FALSE;
+ if( Matche( Pattern, String ) == MATCH_VALID ) return true;
+ else return false;
} /* Match */
-LOCAL INT
-Matche( REGISTER CHAR *p, REGISTER CHAR *t )
+static int
+Matche( const char *p, const char *t )
{
- REGISTER CHAR range_start, range_end;
- BOOLEAN invert;
- BOOLEAN member_match;
- BOOLEAN loop;
+ register char range_start, range_end;
+ bool invert;
+ bool member_match;
+ bool loop;
for( ; *p; p++, t++ )
{
p++;
/* check if this is a member match or exclusion match */
- invert = FALSE;
+ invert = false;
if( *p == '!' || *p == '^' )
{
- invert = TRUE;
+ invert = true;
p++;
}
/* if closing bracket here or at range start then we have a malformed pattern */
if ( *p == ']' ) return MATCH_PATTERN;
- member_match = FALSE;
- loop = TRUE;
+ member_match = false;
+ loop = true;
while( loop )
{
/* if end of construct then loop is done */
if( *p == ']' )
{
- loop = FALSE;
+ loop = false;
continue;
}
{
if( *t >= range_start && *t <= range_end )
{
- member_match = TRUE;
- loop = FALSE;
+ member_match = true;
+ loop = false;
}
}
else
{
if( *t >= range_end && *t <= range_start )
{
- member_match = TRUE;
- loop = FALSE;
+ member_match = true;
+ loop = false;
}
}
}
} /* Matche */
-LOCAL INT
-Matche_After_Star( REGISTER CHAR *p, REGISTER CHAR *t )
+static int
+Matche_After_Star( const char *p, const char *t )
{
- REGISTER INT nextp, match = 0;
+ register int nextp, match = 0;
/* pass over existing ? and * in pattern */
while( *p == '?' || *p == '*' )