NumberHighlighFix.diff

Zbigniew Rebacz, 02/25/2015 05:10 PM

Download (1.32 KB)

View differences:

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)