]> git.saurik.com Git - wxWidgets.git/blob - src/stc/scintilla/lexlib/CharacterSet.cxx
wxRTC: extracted XML utilities into a separate class for potential reuse.
[wxWidgets.git] / src / stc / scintilla / lexlib / CharacterSet.cxx
1 // Scintilla source code edit control
2 /** @file CharacterSet.cxx
3 ** Simple case functions for ASCII.
4 ** Lexer infrastructure.
5 **/
6 // Copyright 1998-2010 by Neil Hodgson <neilh@scintilla.org>
7 // The License.txt file describes the conditions under which this software may be distributed.
8
9 #include <stdlib.h>
10 #include <string.h>
11 #include <ctype.h>
12 #include <stdio.h>
13 #include <assert.h>
14
15 #include "CharacterSet.h"
16
17 #ifdef SCI_NAMESPACE
18 using namespace Scintilla;
19 #endif
20
21 #ifdef SCI_NAMESPACE
22 namespace Scintilla {
23 #endif
24
25 int CompareCaseInsensitive(const char *a, const char *b) {
26 while (*a && *b) {
27 if (*a != *b) {
28 char upperA = MakeUpperCase(*a);
29 char upperB = MakeUpperCase(*b);
30 if (upperA != upperB)
31 return upperA - upperB;
32 }
33 a++;
34 b++;
35 }
36 // Either *a or *b is nul
37 return *a - *b;
38 }
39
40 int CompareNCaseInsensitive(const char *a, const char *b, size_t len) {
41 while (*a && *b && len) {
42 if (*a != *b) {
43 char upperA = MakeUpperCase(*a);
44 char upperB = MakeUpperCase(*b);
45 if (upperA != upperB)
46 return upperA - upperB;
47 }
48 a++;
49 b++;
50 len--;
51 }
52 if (len == 0)
53 return 0;
54 else
55 // Either *a or *b is nul
56 return *a - *b;
57 }
58
59 #ifdef SCI_NAMESPACE
60 }
61 #endif