You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.2 KiB
62 lines
1.2 KiB
14 years ago
|
// 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
|