1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- // 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 <stdio.h>
- #include <assert.h>
- #include <ctype.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 = static_cast<char>(MakeUpperCase(*a));
- char upperB = static_cast<char>(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 = static_cast<char>(MakeUpperCase(*a));
- char upperB = static_cast<char>(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
|