NumberHighlighFix.diff
CodeEditor/CHighlight.cpp (kopia robocza) | ||
---|---|---|
55 | 55 |
{ |
56 | 56 |
int c = octal ? HighlightSetup::INK_CONST_OCT : HighlightSetup::INK_CONST_INT; |
57 | 57 |
const wchar *t = p; |
58 |
bool isDot, isFloat = false; |
|
58 |
bool isDot = false; |
|
59 |
bool isFloat = false; |
|
60 |
int eCounter = 0; |
|
61 |
int signCounter = 0; |
|
59 | 62 |
while(IsDigit(*p)) p++; |
60 | 63 |
int fixdigits = int(p - t); |
61 | 64 |
if(*p == '.' || (*p == 'e' || *p == 'E') && !css) { |
62 | 65 |
if(*p == '.') |
63 | 66 |
isDot = true; |
67 |
else |
|
68 |
if(*p == 'e' || *p == 'E') |
|
69 |
eCounter++; |
|
64 | 70 |
c = HighlightSetup::INK_CONST_FLOAT; |
65 | 71 |
p++; |
66 |
if(*p == '-') |
|
72 |
if(*p == '-' || *p == '+') { |
|
73 |
signCounter++; |
|
67 | 74 |
p++; |
75 |
} |
|
68 | 76 |
} |
69 |
while((IsDigit(*p) || *p == 'e' || *p == '-' || (isDot && *p == 'f')) && (isFloat == false)) { |
|
70 |
if(*p == 'f') |
|
77 |
while((IsDigit(*p) || *p == 'e' || *p == 'E' || *p == '-' || *p == '+' || (isDot && (*p == 'f' || *p == 'F'))) |
|
78 |
&& !isFloat) { |
|
79 |
if(*p == 'f' || *p == 'F') |
|
71 | 80 |
isFloat = true; |
81 |
else |
|
82 |
if(*p == 'e' || *p == 'E') |
|
83 |
eCounter++; |
|
84 |
else |
|
85 |
if(*p == '-' || *p == '+') |
|
86 |
signCounter++; |
|
87 |
|
|
88 |
if(eCounter > 1 || signCounter > 1) |
|
89 |
break; |
|
90 |
|
|
72 | 91 |
p++; |
73 | 92 |
} |
74 | 93 |
if(c == HighlightSetup::INK_CONST_OCT && p - t == 1) |