diff options
Diffstat (limited to 'lexlib/CharacterSet.cxx')
| -rw-r--r-- | lexlib/CharacterSet.cxx | 61 | 
1 files changed, 61 insertions, 0 deletions
| diff --git a/lexlib/CharacterSet.cxx b/lexlib/CharacterSet.cxx new file mode 100644 index 000000000..35669dff8 --- /dev/null +++ b/lexlib/CharacterSet.cxx @@ -0,0 +1,61 @@ +// Scintilla source code edit control +/** @file CharacterSet.cxx + ** Simple case functions for ASCII. + ** Lexer infrastructure. + **/ +// Copyright 1998-2010 by Neil Hodgson <neilh@scintilla.org> +// The License.txt file describes the conditions under which this software may be distributed. + +#include <stdlib.h> +#include <string.h> +#include <ctype.h> +#include <stdio.h> +#include <assert.h> + +#include "CharacterSet.h" + +#ifdef SCI_NAMESPACE +using namespace Scintilla; +#endif + +#ifdef SCI_NAMESPACE +namespace Scintilla { +#endif + +int CompareCaseInsensitive(const char *a, const char *b) { +	while (*a && *b) { +		if (*a != *b) { +			char upperA = MakeUpperCase(*a); +			char upperB = MakeUpperCase(*b); +			if (upperA != upperB) +				return upperA - upperB; +		} +		a++; +		b++; +	} +	// Either *a or *b is nul +	return *a - *b; +} + +int CompareNCaseInsensitive(const char *a, const char *b, size_t len) { +	while (*a && *b && len) { +		if (*a != *b) { +			char upperA = MakeUpperCase(*a); +			char upperB = MakeUpperCase(*b); +			if (upperA != upperB) +				return upperA - upperB; +		} +		a++; +		b++; +		len--; +	} +	if (len == 0) +		return 0; +	else +		// Either *a or *b is nul +		return *a - *b; +} + +#ifdef SCI_NAMESPACE +} +#endif | 
