Recognize .exp (Expect) files as Tcl
[geany-mirror.git] / scintilla / lexlib / StyleContext.cxx
blob5bcacb0187d47cb854945c8caed51cbc968b757e
1 // Scintilla source code edit control
2 /** @file StyleContext.cxx
3 ** Lexer infrastructure.
4 **/
5 // Copyright 1998-2004 by Neil Hodgson <neilh@scintilla.org>
6 // This file is in the public domain.
8 #include <stdlib.h>
9 #include <string.h>
10 #include <stdio.h>
11 #include <assert.h>
12 #include <ctype.h>
14 #include "ILexer.h"
16 #include "LexAccessor.h"
17 #include "Accessor.h"
18 #include "StyleContext.h"
20 #ifdef SCI_NAMESPACE
21 using namespace Scintilla;
22 #endif
24 static void getRange(Sci_PositionU start,
25 Sci_PositionU end,
26 LexAccessor &styler,
27 char *s,
28 Sci_PositionU len) {
29 Sci_PositionU i = 0;
30 while ((i < end - start + 1) && (i < len-1)) {
31 s[i] = styler[start + i];
32 i++;
34 s[i] = '\0';
37 void StyleContext::GetCurrent(char *s, Sci_PositionU len) {
38 getRange(styler.GetStartSegment(), currentPos - 1, styler, s, len);
41 static void getRangeLowered(Sci_PositionU start,
42 Sci_PositionU end,
43 LexAccessor &styler,
44 char *s,
45 Sci_PositionU len) {
46 Sci_PositionU i = 0;
47 while ((i < end - start + 1) && (i < len-1)) {
48 s[i] = static_cast<char>(tolower(styler[start + i]));
49 i++;
51 s[i] = '\0';
54 void StyleContext::GetCurrentLowered(char *s, Sci_PositionU len) {
55 getRangeLowered(styler.GetStartSegment(), currentPos - 1, styler, s, len);