aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMarkus Heidelberg <markus.heidelberg@web.de>2015-01-13 10:58:30 +1100
committerMarkus Heidelberg <markus.heidelberg@web.de>2015-01-13 10:58:30 +1100
commit02927e5c3be78e98fa3e2beb965248f688fb8e6c (patch)
tree8f9b3c1e01706108a1774ce330ad0be07cfba8cf
parent26d30bc6e730a3be9757b174da30ba756496521b (diff)
downloadscintilla-mirror-02927e5c3be78e98fa3e2beb965248f688fb8e6c.tar.gz
LexHex: use SCE_HEX_RECTYPE_UNKNOWN also for Srec and IHex
-rw-r--r--lexers/LexHex.cxx26
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);