From 2f09a95c73e9bb1fb63daf6dc554eef8fa5a4f1d Mon Sep 17 00:00:00 2001 From: cxl Date: Sat, 28 Feb 2015 19:31:36 +0000 Subject: [PATCH] CodeEditor: FP number highlighting improved git-svn-id: svn://ultimatepp.org/upp/trunk@8223 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/CodeEditor/CHighlight.cpp | 19 ++++++++++--------- uppsrc/CodeEditor/init | 2 +- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/uppsrc/CodeEditor/CHighlight.cpp b/uppsrc/CodeEditor/CHighlight.cpp index 1be1d68bf..0a631a3bf 100644 --- a/uppsrc/CodeEditor/CHighlight.cpp +++ b/uppsrc/CodeEditor/CHighlight.cpp @@ -55,22 +55,23 @@ const wchar *HighlightNumber(HighlightOutput& hls, const wchar *p, bool ts, bool { int c = octal ? HighlightSetup::INK_CONST_OCT : HighlightSetup::INK_CONST_INT; const wchar *t = p; - bool isDot, isFloat = false; while(IsDigit(*p)) p++; int fixdigits = int(p - t); - if(*p == '.' || (*p == 'e' || *p == 'E') && !css) { - if(*p == '.') - isDot = true; + if(*p == '.') { c = HighlightSetup::INK_CONST_FLOAT; p++; - if(*p == '-') - p++; } - while((IsDigit(*p) || *p == 'e' || *p == '-' || (isDot && *p == 'f')) && (isFloat == false)) { - if(*p == 'f') - isFloat = true; + while(IsDigit(*p)) p++; + if(*p == 'e' || *p == 'E') { + c = HighlightSetup::INK_CONST_FLOAT; p++; } + if(c == HighlightSetup::INK_CONST_FLOAT) { + p += *p == '-' || *p == '+'; + while(IsDigit(*p)) p++; + if(*p == 'f') + p++; + } if(c == HighlightSetup::INK_CONST_OCT && p - t == 1) c = HighlightSetup::INK_CONST_INT; int n = int(p - t); diff --git a/uppsrc/CodeEditor/init b/uppsrc/CodeEditor/init index 994f32643..f7c2812e8 100644 --- a/uppsrc/CodeEditor/init +++ b/uppsrc/CodeEditor/init @@ -2,7 +2,7 @@ #define _CodeEditor_icpp_init_stub #include "CtrlLib/init" #include "plugin/pcre/init" -#define BLITZ_INDEX__ F9714522c143037334ef92752f80fbeaa +#define BLITZ_INDEX__ F97a09d04ab17001c0c60ffb6219ac958 #include "CRegister.icpp" #undef BLITZ_INDEX__ #endif