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) |