diff options
author | Markus Heidelberg <markus.heidelberg@web.de> | 2015-01-13 10:58:30 +1100 |
---|---|---|
committer | Markus Heidelberg <markus.heidelberg@web.de> | 2015-01-13 10:58:30 +1100 |
commit | 02927e5c3be78e98fa3e2beb965248f688fb8e6c (patch) | |
tree | 8f9b3c1e01706108a1774ce330ad0be07cfba8cf | |
parent | 26d30bc6e730a3be9757b174da30ba756496521b (diff) | |
download | scintilla-mirror-02927e5c3be78e98fa3e2beb965248f688fb8e6c.tar.gz |
LexHex: use SCE_HEX_RECTYPE_UNKNOWN also for Srec and IHex
-rw-r--r-- | lexers/LexHex.cxx | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/lexers/LexHex.cxx b/lexers/LexHex.cxx index f3a31d5a2..cc254c541 100644 --- a/lexers/LexHex.cxx +++ b/lexers/LexHex.cxx @@ -18,7 +18,7 @@ * +----------+ * | start | 1 ('S') SCE_HEX_RECSTART * +----------+ - * | type | 1 SCE_HEX_RECTYPE + * | type | 1 SCE_HEX_RECTYPE, (SCE_HEX_RECTYPE_UNKNOWN) * +----------+ * | count | 2 SCE_HEX_BYTECOUNT, SCE_HEX_BYTECOUNT_WRONG * +----------+ @@ -44,7 +44,7 @@ * +----------+ * | address | 4 SCE_HEX_NOADDRESS, SCE_HEX_DATAADDRESS, (SCE_HEX_ADDRESSFIELD_UNKNOWN) * +----------+ - * | type | 2 SCE_HEX_RECTYPE + * | type | 2 SCE_HEX_RECTYPE, (SCE_HEX_RECTYPE_UNKNOWN) * +----------+ * | data | 0..510 SCE_HEX_DATA_ODD, SCE_HEX_DATA_EVEN, SCE_HEX_DATA_EMPTY, SCE_HEX_EXTENDEDADDRESS, SCE_HEX_STARTADDRESS, (SCE_HEX_DATA_UNKNOWN) * +----------+ @@ -619,11 +619,20 @@ static void ColouriseSrecDoc(unsigned int startPos, int length, int initStyle, W break; case SCE_HEX_RECSTART: - sc.SetState(SCE_HEX_RECTYPE); + recStartPos = sc.currentPos - 1; + addrFieldType = GetSrecAddressFieldType(recStartPos, styler); + + if (addrFieldType == SCE_HEX_ADDRESSFIELD_UNKNOWN) { + sc.SetState(SCE_HEX_RECTYPE_UNKNOWN); + } else { + sc.SetState(SCE_HEX_RECTYPE); + } + ForwardWithinLine(sc); break; case SCE_HEX_RECTYPE: + case SCE_HEX_RECTYPE_UNKNOWN: recStartPos = sc.currentPos - 2; byteCount = GetSrecByteCount(recStartPos, styler); @@ -754,11 +763,20 @@ static void ColouriseIHexDoc(unsigned int startPos, int length, int initStyle, W case SCE_HEX_NOADDRESS: case SCE_HEX_DATAADDRESS: case SCE_HEX_ADDRESSFIELD_UNKNOWN: - sc.SetState(SCE_HEX_RECTYPE); + recStartPos = sc.currentPos - 7; + addrFieldType = GetIHexAddressFieldType(recStartPos, styler); + + if (addrFieldType == SCE_HEX_ADDRESSFIELD_UNKNOWN) { + sc.SetState(SCE_HEX_RECTYPE_UNKNOWN); + } else { + sc.SetState(SCE_HEX_RECTYPE); + } + ForwardWithinLine(sc, 2); break; case SCE_HEX_RECTYPE: + case SCE_HEX_RECTYPE_UNKNOWN: recStartPos = sc.currentPos - 9; dataFieldType = GetIHexDataFieldType(recStartPos, styler); |