diff --git a/scintilla/cppcheck.suppress b/scintilla/cppcheck.suppress
index 08fea2b24..0ca565719 100644
--- a/scintilla/cppcheck.suppress
+++ b/scintilla/cppcheck.suppress
@@ -32,16 +32,17 @@ passedByValue
// Suppress most lexer warnings since the lexers are maintained by others
redundantCondition:scintilla/lexers/LexA68k.cxx
shadowVar:scintilla/lexers/LexAU3.cxx
+unreadVariable:scintilla/lexers/LexBaan.cxx
uninitMemberVar:scintilla/lexers/LexBash.cxx
variableScope:scintilla/lexers/LexBash.cxx
variableScope:scintilla/lexers/LexBatch.cxx
variableScope:scintilla/lexers/LexCmake.cxx
variableScope:scintilla/lexers/LexCSS.cxx
-unreadVariable:scintilla/lexers/LexDMAP.cxx
variableScope:scintilla/lexers/LexErlang.cxx
variableScope:scintilla/lexers/LexGui4Cli.cxx
variableScope:scintilla/lexers/LexInno.cxx
variableScope:scintilla/lexers/LexLaTeX.cxx
+unreadVariable:scintilla/lexers/LexMatlab.cxx
variableScope:scintilla/lexers/LexMetapost.cxx
variableScope:scintilla/lexers/LexModula.cxx
variableScope:scintilla/lexers/LexMSSQL.cxx
@@ -55,13 +56,17 @@ redundantAssignment:scintilla/lexers/LexRegistry.cxx
variableScope:scintilla/lexers/LexRuby.cxx
uninitMemberVar:scintilla/lexers/LexRuby.cxx
variableScope:scintilla/lexers/LexSpecman.cxx
+unreadVariable:scintilla/lexers/LexSpice.cxx
clarifyCalculation:scintilla/lexers/LexTADS3.cxx
invalidscanf:scintilla/lexers/LexTCMD.cxx
knownConditionTrueFalse:scintilla/lexers/LexTCMD.cxx
variableScope:scintilla/lexers/LexTeX.cxx
knownConditionTrueFalse:scintilla/lexers/LexVerilog.cxx
+constArgument:scintilla/lexers/LexVerilog.cxx
shadowVar:scintilla/lexers/LexVHDL.cxx
+unreadVariable:scintilla/lexers/LexVHDL.cxx
variableScope:scintilla/lexers/LexVHDL.cxx
+unreadVariable:scintilla/lexers/LexVisualProlog.cxx
// Suppress everything in catch.hpp as won't be changing
*:scintilla/test/unit/catch.hpp
diff --git a/scintilla/doc/ScintillaHistory.html b/scintilla/doc/ScintillaHistory.html
index 2ee03447d..f02c79503 100644
--- a/scintilla/doc/ScintillaHistory.html
+++ b/scintilla/doc/ScintillaHistory.html
@@ -572,6 +572,10 @@
Feature #1624.
+ Lexer added for .NET's Common Intermediate Language CIL.
+ Feature #1265.
+
+
The C++ lexer, with styling.within.preprocessor on, now interprets "(" in preprocessor "#if("
as an operator instead of part of the directive. This improves folding as well which could become
unbalanced.
@@ -608,6 +612,10 @@
Platform layer font cache removed on Win32 as there is a platform-independent cache.
+
+ SciTE for GTK+ easier to build on macOS.
+ Bug #2084.
+
Release 4.1.3
diff --git a/scintilla/include/SciLexer.h b/scintilla/include/SciLexer.h
index 7a71679a7..0230f8a2f 100644
--- a/scintilla/include/SciLexer.h
+++ b/scintilla/include/SciLexer.h
@@ -139,6 +139,7 @@
#define SCLEX_STATA 124
#define SCLEX_SAS 125
#define SCLEX_NIM 126
+#define SCLEX_CIL 127
#define SCLEX_AUTOMATIC 1000
#define SCE_P_DEFAULT 0
#define SCE_P_COMMENTLINE 1
@@ -1873,6 +1874,17 @@
#define SCE_NIM_NUMERROR 14
#define SCE_NIM_OPERATOR 15
#define SCE_NIM_IDENTIFIER 16
+#define SCE_CIL_DEFAULT 0
+#define SCE_CIL_COMMENT 1
+#define SCE_CIL_COMMENTLINE 2
+#define SCE_CIL_WORD 3
+#define SCE_CIL_WORD2 4
+#define SCE_CIL_WORD3 5
+#define SCE_CIL_STRING 6
+#define SCE_CIL_LABEL 7
+#define SCE_CIL_OPERATOR 8
+#define SCE_CIL_IDENTIFIER 9
+#define SCE_CIL_STRINGEOL 10
/* --Autogenerated -- end of section automatically generated from Scintilla.iface */
#endif
diff --git a/scintilla/include/Scintilla.iface b/scintilla/include/Scintilla.iface
index 9b8803451..e19f3cfb2 100644
--- a/scintilla/include/Scintilla.iface
+++ b/scintilla/include/Scintilla.iface
@@ -2966,6 +2966,7 @@ val SCLEX_MAXIMA=123
val SCLEX_STATA=124
val SCLEX_SAS=125
val SCLEX_NIM=126
+val SCLEX_CIL=127
# When a lexer specifies its language as SCLEX_AUTOMATIC it receives a
# value assigned in sequence from SCLEX_AUTOMATIC+1.
@@ -4938,6 +4939,19 @@ val SCE_NIM_STRINGEOL=13
val SCE_NIM_NUMERROR=14
val SCE_NIM_OPERATOR=15
val SCE_NIM_IDENTIFIER=16
+# Lexical states for SCLEX_CIL
+lex CIL=SCLEX_CIL SCE_CIL_
+val SCE_CIL_DEFAULT=0
+val SCE_CIL_COMMENT=1
+val SCE_CIL_COMMENTLINE=2
+val SCE_CIL_WORD=3
+val SCE_CIL_WORD2=4
+val SCE_CIL_WORD3=5
+val SCE_CIL_STRING=6
+val SCE_CIL_LABEL=7
+val SCE_CIL_OPERATOR=8
+val SCE_CIL_IDENTIFIER=9
+val SCE_CIL_STRINGEOL=10
# Events
diff --git a/scintilla/lexers/LexCIL.cxx b/scintilla/lexers/LexCIL.cxx
new file mode 100644
index 000000000..6d5307666
--- /dev/null
+++ b/scintilla/lexers/LexCIL.cxx
@@ -0,0 +1,404 @@
+// Scintilla source code edit control
+/** @file LexCIL.cxx
+ ** Lexer for Common Intermediate Language
+ ** Written by Jad Altahan (github.com/xv)
+ ** CIL manual: https://www.ecma-international.org/publications/standards/Ecma-335.htm
+ **/
+// Copyright 1998-2001 by Neil Hodgson
+// The License.txt file describes the conditions under which this software may be distributed.
+
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include
+#include