]> git.saurik.com Git - wxWidgets.git/commitdiff
Updated to Scintilla 1.62
authorRobin Dunn <robin@alldunn.com>
Fri, 11 Feb 2005 22:53:19 +0000 (22:53 +0000)
committerRobin Dunn <robin@alldunn.com>
Fri, 11 Feb 2005 22:53:19 +0000 (22:53 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31938 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

78 files changed:
contrib/build/stc/makefile.bcc
contrib/build/stc/makefile.gcc
contrib/build/stc/makefile.vc
contrib/build/stc/makefile.wat
contrib/build/stc/stc.bkl
contrib/build/stc/stc.dsp
contrib/include/wx/stc/stc.h
contrib/src/stc/Makefile.in
contrib/src/stc/ScintillaWX.cpp
contrib/src/stc/gen_iface.py
contrib/src/stc/scintilla/README.txt
contrib/src/stc/scintilla/include/Platform.h
contrib/src/stc/scintilla/include/PropSet.h
contrib/src/stc/scintilla/include/SciLexer.h
contrib/src/stc/scintilla/include/Scintilla.h
contrib/src/stc/scintilla/include/Scintilla.iface
contrib/src/stc/scintilla/src/CallTip.cxx
contrib/src/stc/scintilla/src/CallTip.h
contrib/src/stc/scintilla/src/CellBuffer.cxx
contrib/src/stc/scintilla/src/CellBuffer.h
contrib/src/stc/scintilla/src/Document.cxx
contrib/src/stc/scintilla/src/Document.h
contrib/src/stc/scintilla/src/Editor.cxx
contrib/src/stc/scintilla/src/Editor.h
contrib/src/stc/scintilla/src/KeyWords.cxx
contrib/src/stc/scintilla/src/LexAPDL.cxx
contrib/src/stc/scintilla/src/LexAU3.cxx
contrib/src/stc/scintilla/src/LexAda.cxx
contrib/src/stc/scintilla/src/LexAsn1.cxx [new file with mode: 0644]
contrib/src/stc/scintilla/src/LexCPP.cxx
contrib/src/stc/scintilla/src/LexCSS.cxx
contrib/src/stc/scintilla/src/LexHTML.cxx
contrib/src/stc/scintilla/src/LexLisp.cxx
contrib/src/stc/scintilla/src/LexLua.cxx
contrib/src/stc/scintilla/src/LexOthers.cxx
contrib/src/stc/scintilla/src/LexPB.cxx
contrib/src/stc/scintilla/src/LexPython.cxx
contrib/src/stc/scintilla/src/LexVHDL.cxx [new file with mode: 0644]
contrib/src/stc/scintilla/src/PropSet.cxx
contrib/src/stc/scintilla/src/ScintillaBase.cxx
contrib/src/stc/scintilla/src/UniConversion.cxx
contrib/src/stc/stc.cpp
include/wx/stc/stc.h
src/stc/Makefile.in
src/stc/ScintillaWX.cpp
src/stc/gen_iface.py
src/stc/scintilla/README.txt
src/stc/scintilla/include/Platform.h
src/stc/scintilla/include/PropSet.h
src/stc/scintilla/include/SciLexer.h
src/stc/scintilla/include/Scintilla.h
src/stc/scintilla/include/Scintilla.iface
src/stc/scintilla/src/CallTip.cxx
src/stc/scintilla/src/CallTip.h
src/stc/scintilla/src/CellBuffer.cxx
src/stc/scintilla/src/CellBuffer.h
src/stc/scintilla/src/Document.cxx
src/stc/scintilla/src/Document.h
src/stc/scintilla/src/Editor.cxx
src/stc/scintilla/src/Editor.h
src/stc/scintilla/src/KeyWords.cxx
src/stc/scintilla/src/LexAPDL.cxx
src/stc/scintilla/src/LexAU3.cxx
src/stc/scintilla/src/LexAda.cxx
src/stc/scintilla/src/LexAsn1.cxx [new file with mode: 0644]
src/stc/scintilla/src/LexCPP.cxx
src/stc/scintilla/src/LexCSS.cxx
src/stc/scintilla/src/LexHTML.cxx
src/stc/scintilla/src/LexLisp.cxx
src/stc/scintilla/src/LexLua.cxx
src/stc/scintilla/src/LexOthers.cxx
src/stc/scintilla/src/LexPB.cxx
src/stc/scintilla/src/LexPython.cxx
src/stc/scintilla/src/LexVHDL.cxx [new file with mode: 0644]
src/stc/scintilla/src/PropSet.cxx
src/stc/scintilla/src/ScintillaBase.cxx
src/stc/scintilla/src/UniConversion.cxx
src/stc/stc.cpp

index f67cbace166a1319c3adbc2e6fdf3e7627bdfde8..a42a13701ff969a255b063044da6dbd1ec31bb9e 100644 (file)
@@ -1,6 +1,6 @@
 # =========================================================================
 #     This makefile was generated by
 # =========================================================================
 #     This makefile was generated by
-#     Bakefile 0.1.4 (http://bakefile.sourceforge.net)
+#     Bakefile 0.1.6 (http://bakefile.sourceforge.net)
 #     Do not modify, all changes will be overwritten!
 # =========================================================================
 
 #     Do not modify, all changes will be overwritten!
 # =========================================================================
 
@@ -22,9 +22,10 @@ BCCDIR = $(MAKEDIR)\..
 ### Variables: ###
 
 WX_RELEASE_NODOT = 25
 ### Variables: ###
 
 WX_RELEASE_NODOT = 25
-WX_VERSION_NODOT = $(WX_RELEASE_NODOT)3
+WX_VERSION_NODOT = $(WX_RELEASE_NODOT)4
 OBJS = \
        bcc_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WXDLLFLAG)$(CFG)
 OBJS = \
        bcc_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WXDLLFLAG)$(CFG)
+LIBDIRNAME = ..\..\src\stc\..\..\..\lib\bcc_$(LIBTYPE_SUFFIX)$(CFG)
 SETUPHDIR = \
        $(LIBDIRNAME)\$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)
 STCDLL_CXXFLAGS = $(__RUNTIME_LIBS) -I$(BCCDIR)\include $(__DEBUGINFO) \
 SETUPHDIR = \
        $(LIBDIRNAME)\$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)
 STCDLL_CXXFLAGS = $(__RUNTIME_LIBS) -I$(BCCDIR)\include $(__DEBUGINFO) \
@@ -41,8 +42,8 @@ STCDLL_OBJECTS =  \
        $(OBJS)\stcdll_CallTip.obj \
        $(OBJS)\stcdll_CellBuffer.obj \
        $(OBJS)\stcdll_ContractionState.obj \
        $(OBJS)\stcdll_CallTip.obj \
        $(OBJS)\stcdll_CellBuffer.obj \
        $(OBJS)\stcdll_ContractionState.obj \
-       $(OBJS)\stcdll_DocumentAccessor.obj \
        $(OBJS)\stcdll_Document.obj \
        $(OBJS)\stcdll_Document.obj \
+       $(OBJS)\stcdll_DocumentAccessor.obj \
        $(OBJS)\stcdll_Editor.obj \
        $(OBJS)\stcdll_ExternalLexer.obj \
        $(OBJS)\stcdll_Indicator.obj \
        $(OBJS)\stcdll_Editor.obj \
        $(OBJS)\stcdll_ExternalLexer.obj \
        $(OBJS)\stcdll_Indicator.obj \
@@ -53,6 +54,7 @@ STCDLL_OBJECTS =  \
        $(OBJS)\stcdll_LexAVE.obj \
        $(OBJS)\stcdll_LexAda.obj \
        $(OBJS)\stcdll_LexAsm.obj \
        $(OBJS)\stcdll_LexAVE.obj \
        $(OBJS)\stcdll_LexAda.obj \
        $(OBJS)\stcdll_LexAsm.obj \
+       $(OBJS)\stcdll_LexAsn1.obj \
        $(OBJS)\stcdll_LexBaan.obj \
        $(OBJS)\stcdll_LexBash.obj \
        $(OBJS)\stcdll_LexBullant.obj \
        $(OBJS)\stcdll_LexBaan.obj \
        $(OBJS)\stcdll_LexBash.obj \
        $(OBJS)\stcdll_LexBullant.obj \
@@ -91,14 +93,15 @@ STCDLL_OBJECTS =  \
        $(OBJS)\stcdll_LexSpecman.obj \
        $(OBJS)\stcdll_LexTeX.obj \
        $(OBJS)\stcdll_LexVB.obj \
        $(OBJS)\stcdll_LexSpecman.obj \
        $(OBJS)\stcdll_LexTeX.obj \
        $(OBJS)\stcdll_LexVB.obj \
+       $(OBJS)\stcdll_LexVHDL.obj \
        $(OBJS)\stcdll_LexVerilog.obj \
        $(OBJS)\stcdll_LexYAML.obj \
        $(OBJS)\stcdll_LineMarker.obj \
        $(OBJS)\stcdll_PropSet.obj \
        $(OBJS)\stcdll_RESearch.obj \
        $(OBJS)\stcdll_ScintillaBase.obj \
        $(OBJS)\stcdll_LexVerilog.obj \
        $(OBJS)\stcdll_LexYAML.obj \
        $(OBJS)\stcdll_LineMarker.obj \
        $(OBJS)\stcdll_PropSet.obj \
        $(OBJS)\stcdll_RESearch.obj \
        $(OBJS)\stcdll_ScintillaBase.obj \
-       $(OBJS)\stcdll_StyleContext.obj \
        $(OBJS)\stcdll_Style.obj \
        $(OBJS)\stcdll_Style.obj \
+       $(OBJS)\stcdll_StyleContext.obj \
        $(OBJS)\stcdll_UniConversion.obj \
        $(OBJS)\stcdll_ViewStyle.obj \
        $(OBJS)\stcdll_WindowAccessor.obj \
        $(OBJS)\stcdll_UniConversion.obj \
        $(OBJS)\stcdll_ViewStyle.obj \
        $(OBJS)\stcdll_WindowAccessor.obj \
@@ -117,8 +120,8 @@ STCLIB_OBJECTS =  \
        $(OBJS)\stclib_CallTip.obj \
        $(OBJS)\stclib_CellBuffer.obj \
        $(OBJS)\stclib_ContractionState.obj \
        $(OBJS)\stclib_CallTip.obj \
        $(OBJS)\stclib_CellBuffer.obj \
        $(OBJS)\stclib_ContractionState.obj \
-       $(OBJS)\stclib_DocumentAccessor.obj \
        $(OBJS)\stclib_Document.obj \
        $(OBJS)\stclib_Document.obj \
+       $(OBJS)\stclib_DocumentAccessor.obj \
        $(OBJS)\stclib_Editor.obj \
        $(OBJS)\stclib_ExternalLexer.obj \
        $(OBJS)\stclib_Indicator.obj \
        $(OBJS)\stclib_Editor.obj \
        $(OBJS)\stclib_ExternalLexer.obj \
        $(OBJS)\stclib_Indicator.obj \
@@ -129,6 +132,7 @@ STCLIB_OBJECTS =  \
        $(OBJS)\stclib_LexAVE.obj \
        $(OBJS)\stclib_LexAda.obj \
        $(OBJS)\stclib_LexAsm.obj \
        $(OBJS)\stclib_LexAVE.obj \
        $(OBJS)\stclib_LexAda.obj \
        $(OBJS)\stclib_LexAsm.obj \
+       $(OBJS)\stclib_LexAsn1.obj \
        $(OBJS)\stclib_LexBaan.obj \
        $(OBJS)\stclib_LexBash.obj \
        $(OBJS)\stclib_LexBullant.obj \
        $(OBJS)\stclib_LexBaan.obj \
        $(OBJS)\stclib_LexBash.obj \
        $(OBJS)\stclib_LexBullant.obj \
@@ -167,14 +171,15 @@ STCLIB_OBJECTS =  \
        $(OBJS)\stclib_LexSpecman.obj \
        $(OBJS)\stclib_LexTeX.obj \
        $(OBJS)\stclib_LexVB.obj \
        $(OBJS)\stclib_LexSpecman.obj \
        $(OBJS)\stclib_LexTeX.obj \
        $(OBJS)\stclib_LexVB.obj \
+       $(OBJS)\stclib_LexVHDL.obj \
        $(OBJS)\stclib_LexVerilog.obj \
        $(OBJS)\stclib_LexYAML.obj \
        $(OBJS)\stclib_LineMarker.obj \
        $(OBJS)\stclib_PropSet.obj \
        $(OBJS)\stclib_RESearch.obj \
        $(OBJS)\stclib_ScintillaBase.obj \
        $(OBJS)\stclib_LexVerilog.obj \
        $(OBJS)\stclib_LexYAML.obj \
        $(OBJS)\stclib_LineMarker.obj \
        $(OBJS)\stclib_PropSet.obj \
        $(OBJS)\stclib_RESearch.obj \
        $(OBJS)\stclib_ScintillaBase.obj \
-       $(OBJS)\stclib_StyleContext.obj \
        $(OBJS)\stclib_Style.obj \
        $(OBJS)\stclib_Style.obj \
+       $(OBJS)\stclib_StyleContext.obj \
        $(OBJS)\stclib_UniConversion.obj \
        $(OBJS)\stclib_ViewStyle.obj \
        $(OBJS)\stclib_WindowAccessor.obj \
        $(OBJS)\stclib_UniConversion.obj \
        $(OBJS)\stclib_ViewStyle.obj \
        $(OBJS)\stclib_WindowAccessor.obj \
@@ -209,6 +214,12 @@ WXUNIVNAME = univ
 !if "$(SHARED)" == "1"
 WXDLLFLAG = dll
 !endif
 !if "$(SHARED)" == "1"
 WXDLLFLAG = dll
 !endif
+!if "$(SHARED)" == "0"
+LIBTYPE_SUFFIX = lib
+!endif
+!if "$(SHARED)" == "1"
+LIBTYPE_SUFFIX = dll
+!endif
 !if "$(MONOLITHIC)" == "0"
 EXTRALIBS_FOR_BASE = 
 !endif
 !if "$(MONOLITHIC)" == "0"
 EXTRALIBS_FOR_BASE = 
 !endif
@@ -289,12 +300,6 @@ __DEBUG_DEFINE_p = -D__WXDEBUG__
 !if "$(UNICODE)" == "1"
 __UNICODE_DEFINE_p = -D_UNICODE
 !endif
 !if "$(UNICODE)" == "1"
 __UNICODE_DEFINE_p = -D_UNICODE
 !endif
-!if "$(SHARED)" == "0"
-LIBDIRNAME = ..\..\src\stc\..\..\..\lib\bcc_lib$(CFG)
-!endif
-!if "$(SHARED)" == "1"
-LIBDIRNAME = ..\..\src\stc\..\..\..\lib\bcc_dll$(CFG)
-!endif
 
 
 all: $(OBJS)
 
 
 all: $(OBJS)
@@ -308,6 +313,7 @@ all: $(__stcdll___depname) $(__stclib___depname)
 clean: 
        -if exist $(OBJS)\*.obj del $(OBJS)\*.obj
        -if exist $(OBJS)\*.res del $(OBJS)\*.res
 clean: 
        -if exist $(OBJS)\*.obj del $(OBJS)\*.obj
        -if exist $(OBJS)\*.res del $(OBJS)\*.res
+       -if exist $(OBJS)\*.csm del $(OBJS)\*.csm
        -if exist $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_bcc$(VENDORTAG).dll del $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_bcc$(VENDORTAG).dll
        -if exist $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_bcc$(VENDORTAG).tds del $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_bcc$(VENDORTAG).tds
        -if exist $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_bcc$(VENDORTAG).ilc del $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_bcc$(VENDORTAG).ilc
        -if exist $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_bcc$(VENDORTAG).dll del $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_bcc$(VENDORTAG).dll
        -if exist $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_bcc$(VENDORTAG).tds del $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_bcc$(VENDORTAG).tds
        -if exist $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_bcc$(VENDORTAG).ilc del $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_bcc$(VENDORTAG).ilc
@@ -354,10 +360,10 @@ $(OBJS)\stcdll_CellBuffer.obj: ../../src/stc\scintilla\src\CellBuffer.cxx
 $(OBJS)\stcdll_ContractionState.obj: ../../src/stc\scintilla\src\ContractionState.cxx
        $(CXX) -q -c -P -o$@ $(STCDLL_CXXFLAGS) $**
 
 $(OBJS)\stcdll_ContractionState.obj: ../../src/stc\scintilla\src\ContractionState.cxx
        $(CXX) -q -c -P -o$@ $(STCDLL_CXXFLAGS) $**
 
-$(OBJS)\stcdll_DocumentAccessor.obj: ../../src/stc\scintilla\src\DocumentAccessor.cxx
+$(OBJS)\stcdll_Document.obj: ../../src/stc\scintilla\src\Document.cxx
        $(CXX) -q -c -P -o$@ $(STCDLL_CXXFLAGS) $**
 
        $(CXX) -q -c -P -o$@ $(STCDLL_CXXFLAGS) $**
 
-$(OBJS)\stcdll_Document.obj: ../../src/stc\scintilla\src\Document.cxx
+$(OBJS)\stcdll_DocumentAccessor.obj: ../../src/stc\scintilla\src\DocumentAccessor.cxx
        $(CXX) -q -c -P -o$@ $(STCDLL_CXXFLAGS) $**
 
 $(OBJS)\stcdll_Editor.obj: ../../src/stc\scintilla\src\Editor.cxx
        $(CXX) -q -c -P -o$@ $(STCDLL_CXXFLAGS) $**
 
 $(OBJS)\stcdll_Editor.obj: ../../src/stc\scintilla\src\Editor.cxx
@@ -390,6 +396,9 @@ $(OBJS)\stcdll_LexAda.obj: ../../src/stc\scintilla\src\LexAda.cxx
 $(OBJS)\stcdll_LexAsm.obj: ../../src/stc\scintilla\src\LexAsm.cxx
        $(CXX) -q -c -P -o$@ $(STCDLL_CXXFLAGS) $**
 
 $(OBJS)\stcdll_LexAsm.obj: ../../src/stc\scintilla\src\LexAsm.cxx
        $(CXX) -q -c -P -o$@ $(STCDLL_CXXFLAGS) $**
 
+$(OBJS)\stcdll_LexAsn1.obj: ../../src/stc\scintilla\src\LexAsn1.cxx
+       $(CXX) -q -c -P -o$@ $(STCDLL_CXXFLAGS) $**
+
 $(OBJS)\stcdll_LexBaan.obj: ../../src/stc\scintilla\src\LexBaan.cxx
        $(CXX) -q -c -P -o$@ $(STCDLL_CXXFLAGS) $**
 
 $(OBJS)\stcdll_LexBaan.obj: ../../src/stc\scintilla\src\LexBaan.cxx
        $(CXX) -q -c -P -o$@ $(STCDLL_CXXFLAGS) $**
 
@@ -504,6 +513,9 @@ $(OBJS)\stcdll_LexTeX.obj: ../../src/stc\scintilla\src\LexTeX.cxx
 $(OBJS)\stcdll_LexVB.obj: ../../src/stc\scintilla\src\LexVB.cxx
        $(CXX) -q -c -P -o$@ $(STCDLL_CXXFLAGS) $**
 
 $(OBJS)\stcdll_LexVB.obj: ../../src/stc\scintilla\src\LexVB.cxx
        $(CXX) -q -c -P -o$@ $(STCDLL_CXXFLAGS) $**
 
+$(OBJS)\stcdll_LexVHDL.obj: ../../src/stc\scintilla\src\LexVHDL.cxx
+       $(CXX) -q -c -P -o$@ $(STCDLL_CXXFLAGS) $**
+
 $(OBJS)\stcdll_LexVerilog.obj: ../../src/stc\scintilla\src\LexVerilog.cxx
        $(CXX) -q -c -P -o$@ $(STCDLL_CXXFLAGS) $**
 
 $(OBJS)\stcdll_LexVerilog.obj: ../../src/stc\scintilla\src\LexVerilog.cxx
        $(CXX) -q -c -P -o$@ $(STCDLL_CXXFLAGS) $**
 
@@ -522,10 +534,10 @@ $(OBJS)\stcdll_RESearch.obj: ../../src/stc\scintilla\src\RESearch.cxx
 $(OBJS)\stcdll_ScintillaBase.obj: ../../src/stc\scintilla\src\ScintillaBase.cxx
        $(CXX) -q -c -P -o$@ $(STCDLL_CXXFLAGS) $**
 
 $(OBJS)\stcdll_ScintillaBase.obj: ../../src/stc\scintilla\src\ScintillaBase.cxx
        $(CXX) -q -c -P -o$@ $(STCDLL_CXXFLAGS) $**
 
-$(OBJS)\stcdll_StyleContext.obj: ../../src/stc\scintilla\src\StyleContext.cxx
+$(OBJS)\stcdll_Style.obj: ../../src/stc\scintilla\src\Style.cxx
        $(CXX) -q -c -P -o$@ $(STCDLL_CXXFLAGS) $**
 
        $(CXX) -q -c -P -o$@ $(STCDLL_CXXFLAGS) $**
 
-$(OBJS)\stcdll_Style.obj: ../../src/stc\scintilla\src\Style.cxx
+$(OBJS)\stcdll_StyleContext.obj: ../../src/stc\scintilla\src\StyleContext.cxx
        $(CXX) -q -c -P -o$@ $(STCDLL_CXXFLAGS) $**
 
 $(OBJS)\stcdll_UniConversion.obj: ../../src/stc\scintilla\src\UniConversion.cxx
        $(CXX) -q -c -P -o$@ $(STCDLL_CXXFLAGS) $**
 
 $(OBJS)\stcdll_UniConversion.obj: ../../src/stc\scintilla\src\UniConversion.cxx
@@ -561,10 +573,10 @@ $(OBJS)\stclib_CellBuffer.obj: ../../src/stc\scintilla\src\CellBuffer.cxx
 $(OBJS)\stclib_ContractionState.obj: ../../src/stc\scintilla\src\ContractionState.cxx
        $(CXX) -q -c -P -o$@ $(STCLIB_CXXFLAGS) $**
 
 $(OBJS)\stclib_ContractionState.obj: ../../src/stc\scintilla\src\ContractionState.cxx
        $(CXX) -q -c -P -o$@ $(STCLIB_CXXFLAGS) $**
 
-$(OBJS)\stclib_DocumentAccessor.obj: ../../src/stc\scintilla\src\DocumentAccessor.cxx
+$(OBJS)\stclib_Document.obj: ../../src/stc\scintilla\src\Document.cxx
        $(CXX) -q -c -P -o$@ $(STCLIB_CXXFLAGS) $**
 
        $(CXX) -q -c -P -o$@ $(STCLIB_CXXFLAGS) $**
 
-$(OBJS)\stclib_Document.obj: ../../src/stc\scintilla\src\Document.cxx
+$(OBJS)\stclib_DocumentAccessor.obj: ../../src/stc\scintilla\src\DocumentAccessor.cxx
        $(CXX) -q -c -P -o$@ $(STCLIB_CXXFLAGS) $**
 
 $(OBJS)\stclib_Editor.obj: ../../src/stc\scintilla\src\Editor.cxx
        $(CXX) -q -c -P -o$@ $(STCLIB_CXXFLAGS) $**
 
 $(OBJS)\stclib_Editor.obj: ../../src/stc\scintilla\src\Editor.cxx
@@ -597,6 +609,9 @@ $(OBJS)\stclib_LexAda.obj: ../../src/stc\scintilla\src\LexAda.cxx
 $(OBJS)\stclib_LexAsm.obj: ../../src/stc\scintilla\src\LexAsm.cxx
        $(CXX) -q -c -P -o$@ $(STCLIB_CXXFLAGS) $**
 
 $(OBJS)\stclib_LexAsm.obj: ../../src/stc\scintilla\src\LexAsm.cxx
        $(CXX) -q -c -P -o$@ $(STCLIB_CXXFLAGS) $**
 
+$(OBJS)\stclib_LexAsn1.obj: ../../src/stc\scintilla\src\LexAsn1.cxx
+       $(CXX) -q -c -P -o$@ $(STCLIB_CXXFLAGS) $**
+
 $(OBJS)\stclib_LexBaan.obj: ../../src/stc\scintilla\src\LexBaan.cxx
        $(CXX) -q -c -P -o$@ $(STCLIB_CXXFLAGS) $**
 
 $(OBJS)\stclib_LexBaan.obj: ../../src/stc\scintilla\src\LexBaan.cxx
        $(CXX) -q -c -P -o$@ $(STCLIB_CXXFLAGS) $**
 
@@ -711,6 +726,9 @@ $(OBJS)\stclib_LexTeX.obj: ../../src/stc\scintilla\src\LexTeX.cxx
 $(OBJS)\stclib_LexVB.obj: ../../src/stc\scintilla\src\LexVB.cxx
        $(CXX) -q -c -P -o$@ $(STCLIB_CXXFLAGS) $**
 
 $(OBJS)\stclib_LexVB.obj: ../../src/stc\scintilla\src\LexVB.cxx
        $(CXX) -q -c -P -o$@ $(STCLIB_CXXFLAGS) $**
 
+$(OBJS)\stclib_LexVHDL.obj: ../../src/stc\scintilla\src\LexVHDL.cxx
+       $(CXX) -q -c -P -o$@ $(STCLIB_CXXFLAGS) $**
+
 $(OBJS)\stclib_LexVerilog.obj: ../../src/stc\scintilla\src\LexVerilog.cxx
        $(CXX) -q -c -P -o$@ $(STCLIB_CXXFLAGS) $**
 
 $(OBJS)\stclib_LexVerilog.obj: ../../src/stc\scintilla\src\LexVerilog.cxx
        $(CXX) -q -c -P -o$@ $(STCLIB_CXXFLAGS) $**
 
@@ -729,10 +747,10 @@ $(OBJS)\stclib_RESearch.obj: ../../src/stc\scintilla\src\RESearch.cxx
 $(OBJS)\stclib_ScintillaBase.obj: ../../src/stc\scintilla\src\ScintillaBase.cxx
        $(CXX) -q -c -P -o$@ $(STCLIB_CXXFLAGS) $**
 
 $(OBJS)\stclib_ScintillaBase.obj: ../../src/stc\scintilla\src\ScintillaBase.cxx
        $(CXX) -q -c -P -o$@ $(STCLIB_CXXFLAGS) $**
 
-$(OBJS)\stclib_StyleContext.obj: ../../src/stc\scintilla\src\StyleContext.cxx
+$(OBJS)\stclib_Style.obj: ../../src/stc\scintilla\src\Style.cxx
        $(CXX) -q -c -P -o$@ $(STCLIB_CXXFLAGS) $**
 
        $(CXX) -q -c -P -o$@ $(STCLIB_CXXFLAGS) $**
 
-$(OBJS)\stclib_Style.obj: ../../src/stc\scintilla\src\Style.cxx
+$(OBJS)\stclib_StyleContext.obj: ../../src/stc\scintilla\src\StyleContext.cxx
        $(CXX) -q -c -P -o$@ $(STCLIB_CXXFLAGS) $**
 
 $(OBJS)\stclib_UniConversion.obj: ../../src/stc\scintilla\src\UniConversion.cxx
        $(CXX) -q -c -P -o$@ $(STCLIB_CXXFLAGS) $**
 
 $(OBJS)\stclib_UniConversion.obj: ../../src/stc\scintilla\src\UniConversion.cxx
@@ -746,3 +764,4 @@ $(OBJS)\stclib_WindowAccessor.obj: ../../src/stc\scintilla\src\WindowAccessor.cx
 
 $(OBJS)\stclib_XPM.obj: ../../src/stc\scintilla\src\XPM.cxx
        $(CXX) -q -c -P -o$@ $(STCLIB_CXXFLAGS) $**
 
 $(OBJS)\stclib_XPM.obj: ../../src/stc\scintilla\src\XPM.cxx
        $(CXX) -q -c -P -o$@ $(STCLIB_CXXFLAGS) $**
+
index 8e54bac89da0d6183e07d3c7294954c8d6715813..a2cb5d0844d1a753ddb68bafbea730b80a301e35 100644 (file)
@@ -1,6 +1,6 @@
 # =========================================================================
 #     This makefile was generated by
 # =========================================================================
 #     This makefile was generated by
-#     Bakefile 0.1.4 (http://bakefile.sourceforge.net)
+#     Bakefile 0.1.6 (http://bakefile.sourceforge.net)
 #     Do not modify, all changes will be overwritten!
 # =========================================================================
 
 #     Do not modify, all changes will be overwritten!
 # =========================================================================
 
@@ -13,18 +13,19 @@ include ../../../build/msw/config.gcc
 ### Variables: ###
 
 WX_RELEASE_NODOT = 25
 ### Variables: ###
 
 WX_RELEASE_NODOT = 25
-WX_VERSION_NODOT = $(WX_RELEASE_NODOT)3
+WX_VERSION_NODOT = $(WX_RELEASE_NODOT)4
 OBJS = \
        gcc_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WXDLLFLAG)$(CFG)
 OBJS = \
        gcc_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WXDLLFLAG)$(CFG)
+LIBDIRNAME = ..\..\src\stc\..\..\..\lib\gcc_$(LIBTYPE_SUFFIX)$(CFG)
 SETUPHDIR = \
        $(LIBDIRNAME)\$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)
 STCDLL_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(GCCFLAGS) -DHAVE_W32API_H \
        -D__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) $(__UNICODE_DEFINE_p) \
 SETUPHDIR = \
        $(LIBDIRNAME)\$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)
 STCDLL_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(GCCFLAGS) -DHAVE_W32API_H \
        -D__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) $(__UNICODE_DEFINE_p) \
-       -I..\..\src\stc\..\..\..\include -I$(SETUPHDIR) -Wall \
+       -I..\..\src\stc\..\..\..\include -I$(SETUPHDIR) -W -Wall \
        -I..\..\src\stc\..\..\include -I..\..\src\stc\scintilla\include \
        -I..\..\src\stc\scintilla\src -D__WX__ -DSCI_LEXER -DLINK_LEXERS \
        -DWXUSINGDLL -DWXMAKINGDLL_STC $(__EXCEPTIONSFLAG) $(__EXCEPTIONSFLAG_0) \
        -I..\..\src\stc\..\..\include -I..\..\src\stc\scintilla\include \
        -I..\..\src\stc\scintilla\src -D__WX__ -DSCI_LEXER -DLINK_LEXERS \
        -DWXUSINGDLL -DWXMAKINGDLL_STC $(__EXCEPTIONSFLAG) $(__EXCEPTIONSFLAG_0) \
-       $(CPPFLAGS) $(CXXFLAGS)
+       -Wno-ctor-dtor-privacy $(CPPFLAGS) $(CXXFLAGS)
 STCDLL_OBJECTS =  \
        $(OBJS)\stcdll_PlatWX.o \
        $(OBJS)\stcdll_ScintillaWX.o \
 STCDLL_OBJECTS =  \
        $(OBJS)\stcdll_PlatWX.o \
        $(OBJS)\stcdll_ScintillaWX.o \
@@ -33,8 +34,8 @@ STCDLL_OBJECTS =  \
        $(OBJS)\stcdll_CallTip.o \
        $(OBJS)\stcdll_CellBuffer.o \
        $(OBJS)\stcdll_ContractionState.o \
        $(OBJS)\stcdll_CallTip.o \
        $(OBJS)\stcdll_CellBuffer.o \
        $(OBJS)\stcdll_ContractionState.o \
-       $(OBJS)\stcdll_DocumentAccessor.o \
        $(OBJS)\stcdll_Document.o \
        $(OBJS)\stcdll_Document.o \
+       $(OBJS)\stcdll_DocumentAccessor.o \
        $(OBJS)\stcdll_Editor.o \
        $(OBJS)\stcdll_ExternalLexer.o \
        $(OBJS)\stcdll_Indicator.o \
        $(OBJS)\stcdll_Editor.o \
        $(OBJS)\stcdll_ExternalLexer.o \
        $(OBJS)\stcdll_Indicator.o \
@@ -45,6 +46,7 @@ STCDLL_OBJECTS =  \
        $(OBJS)\stcdll_LexAVE.o \
        $(OBJS)\stcdll_LexAda.o \
        $(OBJS)\stcdll_LexAsm.o \
        $(OBJS)\stcdll_LexAVE.o \
        $(OBJS)\stcdll_LexAda.o \
        $(OBJS)\stcdll_LexAsm.o \
+       $(OBJS)\stcdll_LexAsn1.o \
        $(OBJS)\stcdll_LexBaan.o \
        $(OBJS)\stcdll_LexBash.o \
        $(OBJS)\stcdll_LexBullant.o \
        $(OBJS)\stcdll_LexBaan.o \
        $(OBJS)\stcdll_LexBash.o \
        $(OBJS)\stcdll_LexBullant.o \
@@ -83,24 +85,26 @@ STCDLL_OBJECTS =  \
        $(OBJS)\stcdll_LexSpecman.o \
        $(OBJS)\stcdll_LexTeX.o \
        $(OBJS)\stcdll_LexVB.o \
        $(OBJS)\stcdll_LexSpecman.o \
        $(OBJS)\stcdll_LexTeX.o \
        $(OBJS)\stcdll_LexVB.o \
+       $(OBJS)\stcdll_LexVHDL.o \
        $(OBJS)\stcdll_LexVerilog.o \
        $(OBJS)\stcdll_LexYAML.o \
        $(OBJS)\stcdll_LineMarker.o \
        $(OBJS)\stcdll_PropSet.o \
        $(OBJS)\stcdll_RESearch.o \
        $(OBJS)\stcdll_ScintillaBase.o \
        $(OBJS)\stcdll_LexVerilog.o \
        $(OBJS)\stcdll_LexYAML.o \
        $(OBJS)\stcdll_LineMarker.o \
        $(OBJS)\stcdll_PropSet.o \
        $(OBJS)\stcdll_RESearch.o \
        $(OBJS)\stcdll_ScintillaBase.o \
-       $(OBJS)\stcdll_StyleContext.o \
        $(OBJS)\stcdll_Style.o \
        $(OBJS)\stcdll_Style.o \
+       $(OBJS)\stcdll_StyleContext.o \
        $(OBJS)\stcdll_UniConversion.o \
        $(OBJS)\stcdll_ViewStyle.o \
        $(OBJS)\stcdll_WindowAccessor.o \
        $(OBJS)\stcdll_XPM.o
 STCLIB_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(GCCFLAGS) -DHAVE_W32API_H \
        -D__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) $(__UNICODE_DEFINE_p) \
        $(OBJS)\stcdll_UniConversion.o \
        $(OBJS)\stcdll_ViewStyle.o \
        $(OBJS)\stcdll_WindowAccessor.o \
        $(OBJS)\stcdll_XPM.o
 STCLIB_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(GCCFLAGS) -DHAVE_W32API_H \
        -D__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) $(__UNICODE_DEFINE_p) \
-       -I..\..\src\stc\..\..\..\include -I$(SETUPHDIR) -Wall \
+       -I..\..\src\stc\..\..\..\include -I$(SETUPHDIR) -W -Wall \
        -I..\..\src\stc\..\..\include -I..\..\src\stc\scintilla\include \
        -I..\..\src\stc\scintilla\src -D__WX__ -DSCI_LEXER -DLINK_LEXERS \
        -I..\..\src\stc\..\..\include -I..\..\src\stc\scintilla\include \
        -I..\..\src\stc\scintilla\src -D__WX__ -DSCI_LEXER -DLINK_LEXERS \
-       $(__EXCEPTIONSFLAG) $(__EXCEPTIONSFLAG_0) $(CPPFLAGS) $(CXXFLAGS)
+       $(__EXCEPTIONSFLAG) $(__EXCEPTIONSFLAG_0) -Wno-ctor-dtor-privacy \
+       $(CPPFLAGS) $(CXXFLAGS)
 STCLIB_OBJECTS =  \
        $(OBJS)\stclib_PlatWX.o \
        $(OBJS)\stclib_ScintillaWX.o \
 STCLIB_OBJECTS =  \
        $(OBJS)\stclib_PlatWX.o \
        $(OBJS)\stclib_ScintillaWX.o \
@@ -109,8 +113,8 @@ STCLIB_OBJECTS =  \
        $(OBJS)\stclib_CallTip.o \
        $(OBJS)\stclib_CellBuffer.o \
        $(OBJS)\stclib_ContractionState.o \
        $(OBJS)\stclib_CallTip.o \
        $(OBJS)\stclib_CellBuffer.o \
        $(OBJS)\stclib_ContractionState.o \
-       $(OBJS)\stclib_DocumentAccessor.o \
        $(OBJS)\stclib_Document.o \
        $(OBJS)\stclib_Document.o \
+       $(OBJS)\stclib_DocumentAccessor.o \
        $(OBJS)\stclib_Editor.o \
        $(OBJS)\stclib_ExternalLexer.o \
        $(OBJS)\stclib_Indicator.o \
        $(OBJS)\stclib_Editor.o \
        $(OBJS)\stclib_ExternalLexer.o \
        $(OBJS)\stclib_Indicator.o \
@@ -121,6 +125,7 @@ STCLIB_OBJECTS =  \
        $(OBJS)\stclib_LexAVE.o \
        $(OBJS)\stclib_LexAda.o \
        $(OBJS)\stclib_LexAsm.o \
        $(OBJS)\stclib_LexAVE.o \
        $(OBJS)\stclib_LexAda.o \
        $(OBJS)\stclib_LexAsm.o \
+       $(OBJS)\stclib_LexAsn1.o \
        $(OBJS)\stclib_LexBaan.o \
        $(OBJS)\stclib_LexBash.o \
        $(OBJS)\stclib_LexBullant.o \
        $(OBJS)\stclib_LexBaan.o \
        $(OBJS)\stclib_LexBash.o \
        $(OBJS)\stclib_LexBullant.o \
@@ -159,14 +164,15 @@ STCLIB_OBJECTS =  \
        $(OBJS)\stclib_LexSpecman.o \
        $(OBJS)\stclib_LexTeX.o \
        $(OBJS)\stclib_LexVB.o \
        $(OBJS)\stclib_LexSpecman.o \
        $(OBJS)\stclib_LexTeX.o \
        $(OBJS)\stclib_LexVB.o \
+       $(OBJS)\stclib_LexVHDL.o \
        $(OBJS)\stclib_LexVerilog.o \
        $(OBJS)\stclib_LexYAML.o \
        $(OBJS)\stclib_LineMarker.o \
        $(OBJS)\stclib_PropSet.o \
        $(OBJS)\stclib_RESearch.o \
        $(OBJS)\stclib_ScintillaBase.o \
        $(OBJS)\stclib_LexVerilog.o \
        $(OBJS)\stclib_LexYAML.o \
        $(OBJS)\stclib_LineMarker.o \
        $(OBJS)\stclib_PropSet.o \
        $(OBJS)\stclib_RESearch.o \
        $(OBJS)\stclib_ScintillaBase.o \
-       $(OBJS)\stclib_StyleContext.o \
        $(OBJS)\stclib_Style.o \
        $(OBJS)\stclib_Style.o \
+       $(OBJS)\stclib_StyleContext.o \
        $(OBJS)\stclib_UniConversion.o \
        $(OBJS)\stclib_ViewStyle.o \
        $(OBJS)\stclib_WindowAccessor.o \
        $(OBJS)\stclib_UniConversion.o \
        $(OBJS)\stclib_ViewStyle.o \
        $(OBJS)\stclib_WindowAccessor.o \
@@ -206,6 +212,12 @@ endif
 ifeq ($(SHARED),1)
 WXDLLFLAG = dll
 endif
 ifeq ($(SHARED),1)
 WXDLLFLAG = dll
 endif
+ifeq ($(SHARED),0)
+LIBTYPE_SUFFIX = lib
+endif
+ifeq ($(SHARED),1)
+LIBTYPE_SUFFIX = dll
+endif
 ifeq ($(MONOLITHIC),0)
 EXTRALIBS_FOR_BASE = 
 endif
 ifeq ($(MONOLITHIC),0)
 EXTRALIBS_FOR_BASE = 
 endif
@@ -292,12 +304,6 @@ endif
 ifeq ($(UNICODE),1)
 __UNICODE_DEFINE_p = -D_UNICODE
 endif
 ifeq ($(UNICODE),1)
 __UNICODE_DEFINE_p = -D_UNICODE
 endif
-ifeq ($(SHARED),0)
-LIBDIRNAME = ..\..\src\stc\..\..\..\lib\gcc_lib$(CFG)
-endif
-ifeq ($(SHARED),1)
-LIBDIRNAME = ..\..\src\stc\..\..\..\lib\gcc_dll$(CFG)
-endif
 
 
 all: $(OBJS)
 
 
 all: $(OBJS)
@@ -316,7 +322,7 @@ clean:
 
 ifeq ($(SHARED),1)
 $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_gcc$(VENDORTAG).dll: $(STCDLL_OBJECTS)
 
 ifeq ($(SHARED),1)
 $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_gcc$(VENDORTAG).dll: $(STCDLL_OBJECTS)
-       $(CXX) -shared -o $@ $(STCDLL_OBJECTS) $(LDFLAGS) $(__DEBUGINFO) -mthreads -L$(LIBDIRNAME) -Wl,--out-implib,$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc.a  $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG)  -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32 -lodbc32  $(__WXLIB_CORE_p)  $(__WXLIB_BASE_p)
+       $(CXX) -shared -fPIC -o $@ $(STCDLL_OBJECTS) $(LDFLAGS) $(__DEBUGINFO) -mthreads -L$(LIBDIRNAME) -Wl,--out-implib,$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc.a  $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG)  -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32 -lodbc32  $(__WXLIB_CORE_p)  $(__WXLIB_BASE_p)
 endif
 
 ifeq ($(SHARED),0)
 endif
 
 ifeq ($(SHARED),0)
@@ -347,10 +353,10 @@ $(OBJS)\stcdll_CellBuffer.o: ../../src/stc/scintilla/src/CellBuffer.cxx
 $(OBJS)\stcdll_ContractionState.o: ../../src/stc/scintilla/src/ContractionState.cxx
        $(CXX) -c -o $@ $(STCDLL_CXXFLAGS) $<
 
 $(OBJS)\stcdll_ContractionState.o: ../../src/stc/scintilla/src/ContractionState.cxx
        $(CXX) -c -o $@ $(STCDLL_CXXFLAGS) $<
 
-$(OBJS)\stcdll_DocumentAccessor.o: ../../src/stc/scintilla/src/DocumentAccessor.cxx
+$(OBJS)\stcdll_Document.o: ../../src/stc/scintilla/src/Document.cxx
        $(CXX) -c -o $@ $(STCDLL_CXXFLAGS) $<
 
        $(CXX) -c -o $@ $(STCDLL_CXXFLAGS) $<
 
-$(OBJS)\stcdll_Document.o: ../../src/stc/scintilla/src/Document.cxx
+$(OBJS)\stcdll_DocumentAccessor.o: ../../src/stc/scintilla/src/DocumentAccessor.cxx
        $(CXX) -c -o $@ $(STCDLL_CXXFLAGS) $<
 
 $(OBJS)\stcdll_Editor.o: ../../src/stc/scintilla/src/Editor.cxx
        $(CXX) -c -o $@ $(STCDLL_CXXFLAGS) $<
 
 $(OBJS)\stcdll_Editor.o: ../../src/stc/scintilla/src/Editor.cxx
@@ -383,6 +389,9 @@ $(OBJS)\stcdll_LexAda.o: ../../src/stc/scintilla/src/LexAda.cxx
 $(OBJS)\stcdll_LexAsm.o: ../../src/stc/scintilla/src/LexAsm.cxx
        $(CXX) -c -o $@ $(STCDLL_CXXFLAGS) $<
 
 $(OBJS)\stcdll_LexAsm.o: ../../src/stc/scintilla/src/LexAsm.cxx
        $(CXX) -c -o $@ $(STCDLL_CXXFLAGS) $<
 
+$(OBJS)\stcdll_LexAsn1.o: ../../src/stc/scintilla/src/LexAsn1.cxx
+       $(CXX) -c -o $@ $(STCDLL_CXXFLAGS) $<
+
 $(OBJS)\stcdll_LexBaan.o: ../../src/stc/scintilla/src/LexBaan.cxx
        $(CXX) -c -o $@ $(STCDLL_CXXFLAGS) $<
 
 $(OBJS)\stcdll_LexBaan.o: ../../src/stc/scintilla/src/LexBaan.cxx
        $(CXX) -c -o $@ $(STCDLL_CXXFLAGS) $<
 
@@ -497,6 +506,9 @@ $(OBJS)\stcdll_LexTeX.o: ../../src/stc/scintilla/src/LexTeX.cxx
 $(OBJS)\stcdll_LexVB.o: ../../src/stc/scintilla/src/LexVB.cxx
        $(CXX) -c -o $@ $(STCDLL_CXXFLAGS) $<
 
 $(OBJS)\stcdll_LexVB.o: ../../src/stc/scintilla/src/LexVB.cxx
        $(CXX) -c -o $@ $(STCDLL_CXXFLAGS) $<
 
+$(OBJS)\stcdll_LexVHDL.o: ../../src/stc/scintilla/src/LexVHDL.cxx
+       $(CXX) -c -o $@ $(STCDLL_CXXFLAGS) $<
+
 $(OBJS)\stcdll_LexVerilog.o: ../../src/stc/scintilla/src/LexVerilog.cxx
        $(CXX) -c -o $@ $(STCDLL_CXXFLAGS) $<
 
 $(OBJS)\stcdll_LexVerilog.o: ../../src/stc/scintilla/src/LexVerilog.cxx
        $(CXX) -c -o $@ $(STCDLL_CXXFLAGS) $<
 
@@ -515,10 +527,10 @@ $(OBJS)\stcdll_RESearch.o: ../../src/stc/scintilla/src/RESearch.cxx
 $(OBJS)\stcdll_ScintillaBase.o: ../../src/stc/scintilla/src/ScintillaBase.cxx
        $(CXX) -c -o $@ $(STCDLL_CXXFLAGS) $<
 
 $(OBJS)\stcdll_ScintillaBase.o: ../../src/stc/scintilla/src/ScintillaBase.cxx
        $(CXX) -c -o $@ $(STCDLL_CXXFLAGS) $<
 
-$(OBJS)\stcdll_StyleContext.o: ../../src/stc/scintilla/src/StyleContext.cxx
+$(OBJS)\stcdll_Style.o: ../../src/stc/scintilla/src/Style.cxx
        $(CXX) -c -o $@ $(STCDLL_CXXFLAGS) $<
 
        $(CXX) -c -o $@ $(STCDLL_CXXFLAGS) $<
 
-$(OBJS)\stcdll_Style.o: ../../src/stc/scintilla/src/Style.cxx
+$(OBJS)\stcdll_StyleContext.o: ../../src/stc/scintilla/src/StyleContext.cxx
        $(CXX) -c -o $@ $(STCDLL_CXXFLAGS) $<
 
 $(OBJS)\stcdll_UniConversion.o: ../../src/stc/scintilla/src/UniConversion.cxx
        $(CXX) -c -o $@ $(STCDLL_CXXFLAGS) $<
 
 $(OBJS)\stcdll_UniConversion.o: ../../src/stc/scintilla/src/UniConversion.cxx
@@ -554,10 +566,10 @@ $(OBJS)\stclib_CellBuffer.o: ../../src/stc/scintilla/src/CellBuffer.cxx
 $(OBJS)\stclib_ContractionState.o: ../../src/stc/scintilla/src/ContractionState.cxx
        $(CXX) -c -o $@ $(STCLIB_CXXFLAGS) $<
 
 $(OBJS)\stclib_ContractionState.o: ../../src/stc/scintilla/src/ContractionState.cxx
        $(CXX) -c -o $@ $(STCLIB_CXXFLAGS) $<
 
-$(OBJS)\stclib_DocumentAccessor.o: ../../src/stc/scintilla/src/DocumentAccessor.cxx
+$(OBJS)\stclib_Document.o: ../../src/stc/scintilla/src/Document.cxx
        $(CXX) -c -o $@ $(STCLIB_CXXFLAGS) $<
 
        $(CXX) -c -o $@ $(STCLIB_CXXFLAGS) $<
 
-$(OBJS)\stclib_Document.o: ../../src/stc/scintilla/src/Document.cxx
+$(OBJS)\stclib_DocumentAccessor.o: ../../src/stc/scintilla/src/DocumentAccessor.cxx
        $(CXX) -c -o $@ $(STCLIB_CXXFLAGS) $<
 
 $(OBJS)\stclib_Editor.o: ../../src/stc/scintilla/src/Editor.cxx
        $(CXX) -c -o $@ $(STCLIB_CXXFLAGS) $<
 
 $(OBJS)\stclib_Editor.o: ../../src/stc/scintilla/src/Editor.cxx
@@ -590,6 +602,9 @@ $(OBJS)\stclib_LexAda.o: ../../src/stc/scintilla/src/LexAda.cxx
 $(OBJS)\stclib_LexAsm.o: ../../src/stc/scintilla/src/LexAsm.cxx
        $(CXX) -c -o $@ $(STCLIB_CXXFLAGS) $<
 
 $(OBJS)\stclib_LexAsm.o: ../../src/stc/scintilla/src/LexAsm.cxx
        $(CXX) -c -o $@ $(STCLIB_CXXFLAGS) $<
 
+$(OBJS)\stclib_LexAsn1.o: ../../src/stc/scintilla/src/LexAsn1.cxx
+       $(CXX) -c -o $@ $(STCLIB_CXXFLAGS) $<
+
 $(OBJS)\stclib_LexBaan.o: ../../src/stc/scintilla/src/LexBaan.cxx
        $(CXX) -c -o $@ $(STCLIB_CXXFLAGS) $<
 
 $(OBJS)\stclib_LexBaan.o: ../../src/stc/scintilla/src/LexBaan.cxx
        $(CXX) -c -o $@ $(STCLIB_CXXFLAGS) $<
 
@@ -704,6 +719,9 @@ $(OBJS)\stclib_LexTeX.o: ../../src/stc/scintilla/src/LexTeX.cxx
 $(OBJS)\stclib_LexVB.o: ../../src/stc/scintilla/src/LexVB.cxx
        $(CXX) -c -o $@ $(STCLIB_CXXFLAGS) $<
 
 $(OBJS)\stclib_LexVB.o: ../../src/stc/scintilla/src/LexVB.cxx
        $(CXX) -c -o $@ $(STCLIB_CXXFLAGS) $<
 
+$(OBJS)\stclib_LexVHDL.o: ../../src/stc/scintilla/src/LexVHDL.cxx
+       $(CXX) -c -o $@ $(STCLIB_CXXFLAGS) $<
+
 $(OBJS)\stclib_LexVerilog.o: ../../src/stc/scintilla/src/LexVerilog.cxx
        $(CXX) -c -o $@ $(STCLIB_CXXFLAGS) $<
 
 $(OBJS)\stclib_LexVerilog.o: ../../src/stc/scintilla/src/LexVerilog.cxx
        $(CXX) -c -o $@ $(STCLIB_CXXFLAGS) $<
 
@@ -722,10 +740,10 @@ $(OBJS)\stclib_RESearch.o: ../../src/stc/scintilla/src/RESearch.cxx
 $(OBJS)\stclib_ScintillaBase.o: ../../src/stc/scintilla/src/ScintillaBase.cxx
        $(CXX) -c -o $@ $(STCLIB_CXXFLAGS) $<
 
 $(OBJS)\stclib_ScintillaBase.o: ../../src/stc/scintilla/src/ScintillaBase.cxx
        $(CXX) -c -o $@ $(STCLIB_CXXFLAGS) $<
 
-$(OBJS)\stclib_StyleContext.o: ../../src/stc/scintilla/src/StyleContext.cxx
+$(OBJS)\stclib_Style.o: ../../src/stc/scintilla/src/Style.cxx
        $(CXX) -c -o $@ $(STCLIB_CXXFLAGS) $<
 
        $(CXX) -c -o $@ $(STCLIB_CXXFLAGS) $<
 
-$(OBJS)\stclib_Style.o: ../../src/stc/scintilla/src/Style.cxx
+$(OBJS)\stclib_StyleContext.o: ../../src/stc/scintilla/src/StyleContext.cxx
        $(CXX) -c -o $@ $(STCLIB_CXXFLAGS) $<
 
 $(OBJS)\stclib_UniConversion.o: ../../src/stc/scintilla/src/UniConversion.cxx
        $(CXX) -c -o $@ $(STCLIB_CXXFLAGS) $<
 
 $(OBJS)\stclib_UniConversion.o: ../../src/stc/scintilla/src/UniConversion.cxx
@@ -741,3 +759,4 @@ $(OBJS)\stclib_XPM.o: ../../src/stc/scintilla/src/XPM.cxx
        $(CXX) -c -o $@ $(STCLIB_CXXFLAGS) $<
 
 .PHONY: all clean
        $(CXX) -c -o $@ $(STCLIB_CXXFLAGS) $<
 
 .PHONY: all clean
+
index b0b80ec39cd19b496b2a462e1eed41a9fa6ce194..7a9413e271dd6048a9c7a07b584dbd7a50a861f3 100644 (file)
@@ -1,6 +1,6 @@
 # =========================================================================
 #     This makefile was generated by
 # =========================================================================
 #     This makefile was generated by
-#     Bakefile 0.1.4 (http://bakefile.sourceforge.net)
+#     Bakefile 0.1.6 (http://bakefile.sourceforge.net)
 #     Do not modify, all changes will be overwritten!
 # =========================================================================
 
 #     Do not modify, all changes will be overwritten!
 # =========================================================================
 
 ### Variables: ###
 
 WX_RELEASE_NODOT = 25
 ### Variables: ###
 
 WX_RELEASE_NODOT = 25
-WX_VERSION_NODOT = $(WX_RELEASE_NODOT)3
+WX_VERSION_NODOT = $(WX_RELEASE_NODOT)4
 OBJS = \
        vc_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WXDLLFLAG)$(CFG)
 OBJS = \
        vc_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WXDLLFLAG)$(CFG)
+LIBDIRNAME = ..\..\src\stc\..\..\..\lib\vc_$(LIBTYPE_SUFFIX)$(CFG)
 SETUPHDIR = \
        $(LIBDIRNAME)\$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)
 STCDLL_CXXFLAGS = /M$(__RUNTIME_LIBS)$(__DEBUGRUNTIME_4) /DWIN32 \
 SETUPHDIR = \
        $(LIBDIRNAME)\$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)
 STCDLL_CXXFLAGS = /M$(__RUNTIME_LIBS)$(__DEBUGRUNTIME_4) /DWIN32 \
@@ -36,8 +37,8 @@ STCDLL_OBJECTS =  \
        $(OBJS)\stcdll_CallTip.obj \
        $(OBJS)\stcdll_CellBuffer.obj \
        $(OBJS)\stcdll_ContractionState.obj \
        $(OBJS)\stcdll_CallTip.obj \
        $(OBJS)\stcdll_CellBuffer.obj \
        $(OBJS)\stcdll_ContractionState.obj \
-       $(OBJS)\stcdll_DocumentAccessor.obj \
        $(OBJS)\stcdll_Document.obj \
        $(OBJS)\stcdll_Document.obj \
+       $(OBJS)\stcdll_DocumentAccessor.obj \
        $(OBJS)\stcdll_Editor.obj \
        $(OBJS)\stcdll_ExternalLexer.obj \
        $(OBJS)\stcdll_Indicator.obj \
        $(OBJS)\stcdll_Editor.obj \
        $(OBJS)\stcdll_ExternalLexer.obj \
        $(OBJS)\stcdll_Indicator.obj \
@@ -48,6 +49,7 @@ STCDLL_OBJECTS =  \
        $(OBJS)\stcdll_LexAVE.obj \
        $(OBJS)\stcdll_LexAda.obj \
        $(OBJS)\stcdll_LexAsm.obj \
        $(OBJS)\stcdll_LexAVE.obj \
        $(OBJS)\stcdll_LexAda.obj \
        $(OBJS)\stcdll_LexAsm.obj \
+       $(OBJS)\stcdll_LexAsn1.obj \
        $(OBJS)\stcdll_LexBaan.obj \
        $(OBJS)\stcdll_LexBash.obj \
        $(OBJS)\stcdll_LexBullant.obj \
        $(OBJS)\stcdll_LexBaan.obj \
        $(OBJS)\stcdll_LexBash.obj \
        $(OBJS)\stcdll_LexBullant.obj \
@@ -86,14 +88,15 @@ STCDLL_OBJECTS =  \
        $(OBJS)\stcdll_LexSpecman.obj \
        $(OBJS)\stcdll_LexTeX.obj \
        $(OBJS)\stcdll_LexVB.obj \
        $(OBJS)\stcdll_LexSpecman.obj \
        $(OBJS)\stcdll_LexTeX.obj \
        $(OBJS)\stcdll_LexVB.obj \
+       $(OBJS)\stcdll_LexVHDL.obj \
        $(OBJS)\stcdll_LexVerilog.obj \
        $(OBJS)\stcdll_LexYAML.obj \
        $(OBJS)\stcdll_LineMarker.obj \
        $(OBJS)\stcdll_PropSet.obj \
        $(OBJS)\stcdll_RESearch.obj \
        $(OBJS)\stcdll_ScintillaBase.obj \
        $(OBJS)\stcdll_LexVerilog.obj \
        $(OBJS)\stcdll_LexYAML.obj \
        $(OBJS)\stcdll_LineMarker.obj \
        $(OBJS)\stcdll_PropSet.obj \
        $(OBJS)\stcdll_RESearch.obj \
        $(OBJS)\stcdll_ScintillaBase.obj \
-       $(OBJS)\stcdll_StyleContext.obj \
        $(OBJS)\stcdll_Style.obj \
        $(OBJS)\stcdll_Style.obj \
+       $(OBJS)\stcdll_StyleContext.obj \
        $(OBJS)\stcdll_UniConversion.obj \
        $(OBJS)\stcdll_ViewStyle.obj \
        $(OBJS)\stcdll_WindowAccessor.obj \
        $(OBJS)\stcdll_UniConversion.obj \
        $(OBJS)\stcdll_ViewStyle.obj \
        $(OBJS)\stcdll_WindowAccessor.obj \
@@ -115,8 +118,8 @@ STCLIB_OBJECTS =  \
        $(OBJS)\stclib_CallTip.obj \
        $(OBJS)\stclib_CellBuffer.obj \
        $(OBJS)\stclib_ContractionState.obj \
        $(OBJS)\stclib_CallTip.obj \
        $(OBJS)\stclib_CellBuffer.obj \
        $(OBJS)\stclib_ContractionState.obj \
-       $(OBJS)\stclib_DocumentAccessor.obj \
        $(OBJS)\stclib_Document.obj \
        $(OBJS)\stclib_Document.obj \
+       $(OBJS)\stclib_DocumentAccessor.obj \
        $(OBJS)\stclib_Editor.obj \
        $(OBJS)\stclib_ExternalLexer.obj \
        $(OBJS)\stclib_Indicator.obj \
        $(OBJS)\stclib_Editor.obj \
        $(OBJS)\stclib_ExternalLexer.obj \
        $(OBJS)\stclib_Indicator.obj \
@@ -127,6 +130,7 @@ STCLIB_OBJECTS =  \
        $(OBJS)\stclib_LexAVE.obj \
        $(OBJS)\stclib_LexAda.obj \
        $(OBJS)\stclib_LexAsm.obj \
        $(OBJS)\stclib_LexAVE.obj \
        $(OBJS)\stclib_LexAda.obj \
        $(OBJS)\stclib_LexAsm.obj \
+       $(OBJS)\stclib_LexAsn1.obj \
        $(OBJS)\stclib_LexBaan.obj \
        $(OBJS)\stclib_LexBash.obj \
        $(OBJS)\stclib_LexBullant.obj \
        $(OBJS)\stclib_LexBaan.obj \
        $(OBJS)\stclib_LexBash.obj \
        $(OBJS)\stclib_LexBullant.obj \
@@ -165,14 +169,15 @@ STCLIB_OBJECTS =  \
        $(OBJS)\stclib_LexSpecman.obj \
        $(OBJS)\stclib_LexTeX.obj \
        $(OBJS)\stclib_LexVB.obj \
        $(OBJS)\stclib_LexSpecman.obj \
        $(OBJS)\stclib_LexTeX.obj \
        $(OBJS)\stclib_LexVB.obj \
+       $(OBJS)\stclib_LexVHDL.obj \
        $(OBJS)\stclib_LexVerilog.obj \
        $(OBJS)\stclib_LexYAML.obj \
        $(OBJS)\stclib_LineMarker.obj \
        $(OBJS)\stclib_PropSet.obj \
        $(OBJS)\stclib_RESearch.obj \
        $(OBJS)\stclib_ScintillaBase.obj \
        $(OBJS)\stclib_LexVerilog.obj \
        $(OBJS)\stclib_LexYAML.obj \
        $(OBJS)\stclib_LineMarker.obj \
        $(OBJS)\stclib_PropSet.obj \
        $(OBJS)\stclib_RESearch.obj \
        $(OBJS)\stclib_ScintillaBase.obj \
-       $(OBJS)\stclib_StyleContext.obj \
        $(OBJS)\stclib_Style.obj \
        $(OBJS)\stclib_Style.obj \
+       $(OBJS)\stclib_StyleContext.obj \
        $(OBJS)\stclib_UniConversion.obj \
        $(OBJS)\stclib_ViewStyle.obj \
        $(OBJS)\stclib_WindowAccessor.obj \
        $(OBJS)\stclib_UniConversion.obj \
        $(OBJS)\stclib_ViewStyle.obj \
        $(OBJS)\stclib_WindowAccessor.obj \
@@ -207,6 +212,12 @@ WXUNIVNAME = univ
 !if "$(SHARED)" == "1"
 WXDLLFLAG = dll
 !endif
 !if "$(SHARED)" == "1"
 WXDLLFLAG = dll
 !endif
+!if "$(SHARED)" == "0"
+LIBTYPE_SUFFIX = lib
+!endif
+!if "$(SHARED)" == "1"
+LIBTYPE_SUFFIX = dll
+!endif
 !if "$(MONOLITHIC)" == "0"
 EXTRALIBS_FOR_BASE = 
 !endif
 !if "$(MONOLITHIC)" == "0"
 EXTRALIBS_FOR_BASE = 
 !endif
@@ -371,12 +382,6 @@ __DEBUG_DEFINE_p = /D__WXDEBUG__
 !if "$(UNICODE)" == "1"
 __UNICODE_DEFINE_p = /D_UNICODE
 !endif
 !if "$(UNICODE)" == "1"
 __UNICODE_DEFINE_p = /D_UNICODE
 !endif
-!if "$(SHARED)" == "0"
-LIBDIRNAME = ..\..\src\stc\..\..\..\lib\vc_lib$(CFG)
-!endif
-!if "$(SHARED)" == "1"
-LIBDIRNAME = ..\..\src\stc\..\..\..\lib\vc_dll$(CFG)
-!endif
 
 
 all: $(OBJS)
 
 
 all: $(OBJS)
@@ -390,6 +395,7 @@ all: $(__stcdll___depname) $(__stclib___depname)
 clean: 
        -if exist $(OBJS)\*.obj del $(OBJS)\*.obj
        -if exist $(OBJS)\*.res del $(OBJS)\*.res
 clean: 
        -if exist $(OBJS)\*.obj del $(OBJS)\*.obj
        -if exist $(OBJS)\*.res del $(OBJS)\*.res
+       -if exist $(OBJS)\*.pch del $(OBJS)\*.pch
        -if exist $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_vc$(VENDORTAG).dll del $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_vc$(VENDORTAG).dll
        -if exist $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_vc$(VENDORTAG).ilk del $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_vc$(VENDORTAG).ilk
        -if exist $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_vc$(VENDORTAG).pdb del $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_vc$(VENDORTAG).pdb
        -if exist $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_vc$(VENDORTAG).dll del $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_vc$(VENDORTAG).dll
        -if exist $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_vc$(VENDORTAG).ilk del $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_vc$(VENDORTAG).ilk
        -if exist $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_vc$(VENDORTAG).pdb del $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_vc$(VENDORTAG).pdb
@@ -432,10 +438,10 @@ $(OBJS)\stcdll_CellBuffer.obj: ../../src/stc\scintilla\src\CellBuffer.cxx
 $(OBJS)\stcdll_ContractionState.obj: ../../src/stc\scintilla\src\ContractionState.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCDLL_CXXFLAGS) $**
 
 $(OBJS)\stcdll_ContractionState.obj: ../../src/stc\scintilla\src\ContractionState.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCDLL_CXXFLAGS) $**
 
-$(OBJS)\stcdll_DocumentAccessor.obj: ../../src/stc\scintilla\src\DocumentAccessor.cxx
+$(OBJS)\stcdll_Document.obj: ../../src/stc\scintilla\src\Document.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCDLL_CXXFLAGS) $**
 
        $(CXX) /c /nologo /TP /Fo$@ $(STCDLL_CXXFLAGS) $**
 
-$(OBJS)\stcdll_Document.obj: ../../src/stc\scintilla\src\Document.cxx
+$(OBJS)\stcdll_DocumentAccessor.obj: ../../src/stc\scintilla\src\DocumentAccessor.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCDLL_CXXFLAGS) $**
 
 $(OBJS)\stcdll_Editor.obj: ../../src/stc\scintilla\src\Editor.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCDLL_CXXFLAGS) $**
 
 $(OBJS)\stcdll_Editor.obj: ../../src/stc\scintilla\src\Editor.cxx
@@ -468,6 +474,9 @@ $(OBJS)\stcdll_LexAda.obj: ../../src/stc\scintilla\src\LexAda.cxx
 $(OBJS)\stcdll_LexAsm.obj: ../../src/stc\scintilla\src\LexAsm.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCDLL_CXXFLAGS) $**
 
 $(OBJS)\stcdll_LexAsm.obj: ../../src/stc\scintilla\src\LexAsm.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCDLL_CXXFLAGS) $**
 
+$(OBJS)\stcdll_LexAsn1.obj: ../../src/stc\scintilla\src\LexAsn1.cxx
+       $(CXX) /c /nologo /TP /Fo$@ $(STCDLL_CXXFLAGS) $**
+
 $(OBJS)\stcdll_LexBaan.obj: ../../src/stc\scintilla\src\LexBaan.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCDLL_CXXFLAGS) $**
 
 $(OBJS)\stcdll_LexBaan.obj: ../../src/stc\scintilla\src\LexBaan.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCDLL_CXXFLAGS) $**
 
@@ -582,6 +591,9 @@ $(OBJS)\stcdll_LexTeX.obj: ../../src/stc\scintilla\src\LexTeX.cxx
 $(OBJS)\stcdll_LexVB.obj: ../../src/stc\scintilla\src\LexVB.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCDLL_CXXFLAGS) $**
 
 $(OBJS)\stcdll_LexVB.obj: ../../src/stc\scintilla\src\LexVB.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCDLL_CXXFLAGS) $**
 
+$(OBJS)\stcdll_LexVHDL.obj: ../../src/stc\scintilla\src\LexVHDL.cxx
+       $(CXX) /c /nologo /TP /Fo$@ $(STCDLL_CXXFLAGS) $**
+
 $(OBJS)\stcdll_LexVerilog.obj: ../../src/stc\scintilla\src\LexVerilog.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCDLL_CXXFLAGS) $**
 
 $(OBJS)\stcdll_LexVerilog.obj: ../../src/stc\scintilla\src\LexVerilog.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCDLL_CXXFLAGS) $**
 
@@ -600,10 +612,10 @@ $(OBJS)\stcdll_RESearch.obj: ../../src/stc\scintilla\src\RESearch.cxx
 $(OBJS)\stcdll_ScintillaBase.obj: ../../src/stc\scintilla\src\ScintillaBase.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCDLL_CXXFLAGS) $**
 
 $(OBJS)\stcdll_ScintillaBase.obj: ../../src/stc\scintilla\src\ScintillaBase.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCDLL_CXXFLAGS) $**
 
-$(OBJS)\stcdll_StyleContext.obj: ../../src/stc\scintilla\src\StyleContext.cxx
+$(OBJS)\stcdll_Style.obj: ../../src/stc\scintilla\src\Style.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCDLL_CXXFLAGS) $**
 
        $(CXX) /c /nologo /TP /Fo$@ $(STCDLL_CXXFLAGS) $**
 
-$(OBJS)\stcdll_Style.obj: ../../src/stc\scintilla\src\Style.cxx
+$(OBJS)\stcdll_StyleContext.obj: ../../src/stc\scintilla\src\StyleContext.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCDLL_CXXFLAGS) $**
 
 $(OBJS)\stcdll_UniConversion.obj: ../../src/stc\scintilla\src\UniConversion.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCDLL_CXXFLAGS) $**
 
 $(OBJS)\stcdll_UniConversion.obj: ../../src/stc\scintilla\src\UniConversion.cxx
@@ -639,10 +651,10 @@ $(OBJS)\stclib_CellBuffer.obj: ../../src/stc\scintilla\src\CellBuffer.cxx
 $(OBJS)\stclib_ContractionState.obj: ../../src/stc\scintilla\src\ContractionState.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCLIB_CXXFLAGS) $**
 
 $(OBJS)\stclib_ContractionState.obj: ../../src/stc\scintilla\src\ContractionState.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCLIB_CXXFLAGS) $**
 
-$(OBJS)\stclib_DocumentAccessor.obj: ../../src/stc\scintilla\src\DocumentAccessor.cxx
+$(OBJS)\stclib_Document.obj: ../../src/stc\scintilla\src\Document.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCLIB_CXXFLAGS) $**
 
        $(CXX) /c /nologo /TP /Fo$@ $(STCLIB_CXXFLAGS) $**
 
-$(OBJS)\stclib_Document.obj: ../../src/stc\scintilla\src\Document.cxx
+$(OBJS)\stclib_DocumentAccessor.obj: ../../src/stc\scintilla\src\DocumentAccessor.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCLIB_CXXFLAGS) $**
 
 $(OBJS)\stclib_Editor.obj: ../../src/stc\scintilla\src\Editor.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCLIB_CXXFLAGS) $**
 
 $(OBJS)\stclib_Editor.obj: ../../src/stc\scintilla\src\Editor.cxx
@@ -675,6 +687,9 @@ $(OBJS)\stclib_LexAda.obj: ../../src/stc\scintilla\src\LexAda.cxx
 $(OBJS)\stclib_LexAsm.obj: ../../src/stc\scintilla\src\LexAsm.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCLIB_CXXFLAGS) $**
 
 $(OBJS)\stclib_LexAsm.obj: ../../src/stc\scintilla\src\LexAsm.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCLIB_CXXFLAGS) $**
 
+$(OBJS)\stclib_LexAsn1.obj: ../../src/stc\scintilla\src\LexAsn1.cxx
+       $(CXX) /c /nologo /TP /Fo$@ $(STCLIB_CXXFLAGS) $**
+
 $(OBJS)\stclib_LexBaan.obj: ../../src/stc\scintilla\src\LexBaan.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCLIB_CXXFLAGS) $**
 
 $(OBJS)\stclib_LexBaan.obj: ../../src/stc\scintilla\src\LexBaan.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCLIB_CXXFLAGS) $**
 
@@ -789,6 +804,9 @@ $(OBJS)\stclib_LexTeX.obj: ../../src/stc\scintilla\src\LexTeX.cxx
 $(OBJS)\stclib_LexVB.obj: ../../src/stc\scintilla\src\LexVB.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCLIB_CXXFLAGS) $**
 
 $(OBJS)\stclib_LexVB.obj: ../../src/stc\scintilla\src\LexVB.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCLIB_CXXFLAGS) $**
 
+$(OBJS)\stclib_LexVHDL.obj: ../../src/stc\scintilla\src\LexVHDL.cxx
+       $(CXX) /c /nologo /TP /Fo$@ $(STCLIB_CXXFLAGS) $**
+
 $(OBJS)\stclib_LexVerilog.obj: ../../src/stc\scintilla\src\LexVerilog.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCLIB_CXXFLAGS) $**
 
 $(OBJS)\stclib_LexVerilog.obj: ../../src/stc\scintilla\src\LexVerilog.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCLIB_CXXFLAGS) $**
 
@@ -807,10 +825,10 @@ $(OBJS)\stclib_RESearch.obj: ../../src/stc\scintilla\src\RESearch.cxx
 $(OBJS)\stclib_ScintillaBase.obj: ../../src/stc\scintilla\src\ScintillaBase.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCLIB_CXXFLAGS) $**
 
 $(OBJS)\stclib_ScintillaBase.obj: ../../src/stc\scintilla\src\ScintillaBase.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCLIB_CXXFLAGS) $**
 
-$(OBJS)\stclib_StyleContext.obj: ../../src/stc\scintilla\src\StyleContext.cxx
+$(OBJS)\stclib_Style.obj: ../../src/stc\scintilla\src\Style.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCLIB_CXXFLAGS) $**
 
        $(CXX) /c /nologo /TP /Fo$@ $(STCLIB_CXXFLAGS) $**
 
-$(OBJS)\stclib_Style.obj: ../../src/stc\scintilla\src\Style.cxx
+$(OBJS)\stclib_StyleContext.obj: ../../src/stc\scintilla\src\StyleContext.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCLIB_CXXFLAGS) $**
 
 $(OBJS)\stclib_UniConversion.obj: ../../src/stc\scintilla\src\UniConversion.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCLIB_CXXFLAGS) $**
 
 $(OBJS)\stclib_UniConversion.obj: ../../src/stc\scintilla\src\UniConversion.cxx
@@ -824,3 +842,4 @@ $(OBJS)\stclib_WindowAccessor.obj: ../../src/stc\scintilla\src\WindowAccessor.cx
 
 $(OBJS)\stclib_XPM.obj: ../../src/stc\scintilla\src\XPM.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCLIB_CXXFLAGS) $**
 
 $(OBJS)\stclib_XPM.obj: ../../src/stc\scintilla\src\XPM.cxx
        $(CXX) /c /nologo /TP /Fo$@ $(STCLIB_CXXFLAGS) $**
+
index 2e04f74e33b257c8c8c4e96efecdebb5d7f7096d..0c78d5166376bf0174f44f39e36358c08d693043 100644 (file)
@@ -1,6 +1,6 @@
 # =========================================================================
 #     This makefile was generated by
 # =========================================================================
 #     This makefile was generated by
-#     Bakefile 0.1.4 (http://bakefile.sourceforge.net)
+#     Bakefile 0.1.6 (http://bakefile.sourceforge.net)
 #     Do not modify, all changes will be overwritten!
 # =========================================================================
 
 #     Do not modify, all changes will be overwritten!
 # =========================================================================
 
@@ -62,6 +62,13 @@ WXDLLFLAG =
 !ifeq SHARED 1
 WXDLLFLAG = dll
 !endif
 !ifeq SHARED 1
 WXDLLFLAG = dll
 !endif
+LIBTYPE_SUFFIX =
+!ifeq SHARED 0
+LIBTYPE_SUFFIX = lib
+!endif
+!ifeq SHARED 1
+LIBTYPE_SUFFIX = dll
+!endif
 EXTRALIBS_FOR_BASE =
 !ifeq MONOLITHIC 0
 EXTRALIBS_FOR_BASE = 
 EXTRALIBS_FOR_BASE =
 !ifeq MONOLITHIC 0
 EXTRALIBS_FOR_BASE = 
@@ -159,7 +166,14 @@ __EXCEPTIONSFLAG =
 __EXCEPTIONSFLAG = 
 !endif
 !ifeq USE_EXCEPTIONS 1
 __EXCEPTIONSFLAG = 
 !endif
 !ifeq USE_EXCEPTIONS 1
-__EXCEPTIONSFLAG = -xs
+__EXCEPTIONSFLAG = -xr
+!endif
+__EXCEPTIONSFLAG_0 =
+!ifeq USE_EXCEPTIONS 0
+__EXCEPTIONSFLAG_0 = 
+!endif
+!ifeq USE_EXCEPTIONS 1
+__EXCEPTIONSFLAG_0 = -xs
 !endif
 __WXUNIV_DEFINE_p =
 !ifeq WXUNIV 1
 !endif
 __WXUNIV_DEFINE_p =
 !ifeq WXUNIV 1
@@ -178,28 +192,23 @@ __UNICODE_DEFINE_p =
 !ifeq UNICODE 1
 __UNICODE_DEFINE_p = -d_UNICODE
 !endif
 !ifeq UNICODE 1
 __UNICODE_DEFINE_p = -d_UNICODE
 !endif
-LIBDIRNAME =
-!ifeq SHARED 0
-LIBDIRNAME = ..\..\src\stc\..\..\..\lib\wat_lib$(CFG)
-!endif
-!ifeq SHARED 1
-LIBDIRNAME = ..\..\src\stc\..\..\..\lib\wat_dll$(CFG)
-!endif
 
 ### Variables: ###
 
 WX_RELEASE_NODOT = 25
 
 ### Variables: ###
 
 WX_RELEASE_NODOT = 25
-WX_VERSION_NODOT = $(WX_RELEASE_NODOT)3
+WX_VERSION_NODOT = $(WX_RELEASE_NODOT)4
 OBJS = &
        wat_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WXDLLFLAG)$(CFG)
 OBJS = &
        wat_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WXDLLFLAG)$(CFG)
+LIBDIRNAME = ..\..\src\stc\..\..\..\lib\wat_$(LIBTYPE_SUFFIX)$(CFG)
 SETUPHDIR = &
        $(LIBDIRNAME)\$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)
 STCDLL_CXXFLAGS = -bd $(__DEBUGINFO_1) $(__OPTIMIZEFLAG) -bm $(__RUNTIME_LIBS) &
        -d__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) $(__UNICODE_DEFINE_p) &
 SETUPHDIR = &
        $(LIBDIRNAME)\$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)
 STCDLL_CXXFLAGS = -bd $(__DEBUGINFO_1) $(__OPTIMIZEFLAG) -bm $(__RUNTIME_LIBS) &
        -d__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) $(__UNICODE_DEFINE_p) &
-       -i=..\..\src\stc\..\..\..\include -i=$(SETUPHDIR) -wcd=549 -wcd=656 -wcd=657 &
-       -i=..\..\src\stc\..\..\include -i=..\..\src\stc\scintilla\include &
-       -i=..\..\src\stc\scintilla\src -d__WX__ -dSCI_LEXER -dLINK_LEXERS &
-       -dWXUSINGDLL -dWXMAKINGDLL_STC $(__EXCEPTIONSFLAG) $(CPPFLAGS) $(CXXFLAGS)
+       -i=..\..\src\stc\..\..\..\include -i=$(SETUPHDIR) -wx -wcd=549 -wcd=656 &
+       -wcd=657 -wcd=667 -i=..\..\src\stc\..\..\include &
+       -i=..\..\src\stc\scintilla\include -i=..\..\src\stc\scintilla\src -d__WX__ &
+       -dSCI_LEXER -dLINK_LEXERS -dWXUSINGDLL -dWXMAKINGDLL_STC $(__EXCEPTIONSFLAG) &
+       $(__EXCEPTIONSFLAG_0) $(CPPFLAGS) $(CXXFLAGS)
 STCDLL_OBJECTS =  &
        $(OBJS)\stcdll_PlatWX.obj &
        $(OBJS)\stcdll_ScintillaWX.obj &
 STCDLL_OBJECTS =  &
        $(OBJS)\stcdll_PlatWX.obj &
        $(OBJS)\stcdll_ScintillaWX.obj &
@@ -208,8 +217,8 @@ STCDLL_OBJECTS =  &
        $(OBJS)\stcdll_CallTip.obj &
        $(OBJS)\stcdll_CellBuffer.obj &
        $(OBJS)\stcdll_ContractionState.obj &
        $(OBJS)\stcdll_CallTip.obj &
        $(OBJS)\stcdll_CellBuffer.obj &
        $(OBJS)\stcdll_ContractionState.obj &
-       $(OBJS)\stcdll_DocumentAccessor.obj &
        $(OBJS)\stcdll_Document.obj &
        $(OBJS)\stcdll_Document.obj &
+       $(OBJS)\stcdll_DocumentAccessor.obj &
        $(OBJS)\stcdll_Editor.obj &
        $(OBJS)\stcdll_ExternalLexer.obj &
        $(OBJS)\stcdll_Indicator.obj &
        $(OBJS)\stcdll_Editor.obj &
        $(OBJS)\stcdll_ExternalLexer.obj &
        $(OBJS)\stcdll_Indicator.obj &
@@ -220,6 +229,7 @@ STCDLL_OBJECTS =  &
        $(OBJS)\stcdll_LexAVE.obj &
        $(OBJS)\stcdll_LexAda.obj &
        $(OBJS)\stcdll_LexAsm.obj &
        $(OBJS)\stcdll_LexAVE.obj &
        $(OBJS)\stcdll_LexAda.obj &
        $(OBJS)\stcdll_LexAsm.obj &
+       $(OBJS)\stcdll_LexAsn1.obj &
        $(OBJS)\stcdll_LexBaan.obj &
        $(OBJS)\stcdll_LexBash.obj &
        $(OBJS)\stcdll_LexBullant.obj &
        $(OBJS)\stcdll_LexBaan.obj &
        $(OBJS)\stcdll_LexBash.obj &
        $(OBJS)\stcdll_LexBullant.obj &
@@ -258,24 +268,26 @@ STCDLL_OBJECTS =  &
        $(OBJS)\stcdll_LexSpecman.obj &
        $(OBJS)\stcdll_LexTeX.obj &
        $(OBJS)\stcdll_LexVB.obj &
        $(OBJS)\stcdll_LexSpecman.obj &
        $(OBJS)\stcdll_LexTeX.obj &
        $(OBJS)\stcdll_LexVB.obj &
+       $(OBJS)\stcdll_LexVHDL.obj &
        $(OBJS)\stcdll_LexVerilog.obj &
        $(OBJS)\stcdll_LexYAML.obj &
        $(OBJS)\stcdll_LineMarker.obj &
        $(OBJS)\stcdll_PropSet.obj &
        $(OBJS)\stcdll_RESearch.obj &
        $(OBJS)\stcdll_ScintillaBase.obj &
        $(OBJS)\stcdll_LexVerilog.obj &
        $(OBJS)\stcdll_LexYAML.obj &
        $(OBJS)\stcdll_LineMarker.obj &
        $(OBJS)\stcdll_PropSet.obj &
        $(OBJS)\stcdll_RESearch.obj &
        $(OBJS)\stcdll_ScintillaBase.obj &
-       $(OBJS)\stcdll_StyleContext.obj &
        $(OBJS)\stcdll_Style.obj &
        $(OBJS)\stcdll_Style.obj &
+       $(OBJS)\stcdll_StyleContext.obj &
        $(OBJS)\stcdll_UniConversion.obj &
        $(OBJS)\stcdll_ViewStyle.obj &
        $(OBJS)\stcdll_WindowAccessor.obj &
        $(OBJS)\stcdll_XPM.obj
 STCLIB_CXXFLAGS = $(__DEBUGINFO_1) $(__OPTIMIZEFLAG) -bm $(__RUNTIME_LIBS) &
        -d__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) $(__UNICODE_DEFINE_p) &
        $(OBJS)\stcdll_UniConversion.obj &
        $(OBJS)\stcdll_ViewStyle.obj &
        $(OBJS)\stcdll_WindowAccessor.obj &
        $(OBJS)\stcdll_XPM.obj
 STCLIB_CXXFLAGS = $(__DEBUGINFO_1) $(__OPTIMIZEFLAG) -bm $(__RUNTIME_LIBS) &
        -d__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) $(__UNICODE_DEFINE_p) &
-       -i=..\..\src\stc\..\..\..\include -i=$(SETUPHDIR) -wcd=549 -wcd=656 -wcd=657 &
-       -i=..\..\src\stc\..\..\include -i=..\..\src\stc\scintilla\include &
-       -i=..\..\src\stc\scintilla\src -d__WX__ -dSCI_LEXER -dLINK_LEXERS &
-       $(__EXCEPTIONSFLAG) $(CPPFLAGS) $(CXXFLAGS)
+       -i=..\..\src\stc\..\..\..\include -i=$(SETUPHDIR) -wx -wcd=549 -wcd=656 &
+       -wcd=657 -wcd=667 -i=..\..\src\stc\..\..\include &
+       -i=..\..\src\stc\scintilla\include -i=..\..\src\stc\scintilla\src -d__WX__ &
+       -dSCI_LEXER -dLINK_LEXERS $(__EXCEPTIONSFLAG) $(__EXCEPTIONSFLAG_0) &
+       $(CPPFLAGS) $(CXXFLAGS)
 STCLIB_OBJECTS =  &
        $(OBJS)\stclib_PlatWX.obj &
        $(OBJS)\stclib_ScintillaWX.obj &
 STCLIB_OBJECTS =  &
        $(OBJS)\stclib_PlatWX.obj &
        $(OBJS)\stclib_ScintillaWX.obj &
@@ -284,8 +296,8 @@ STCLIB_OBJECTS =  &
        $(OBJS)\stclib_CallTip.obj &
        $(OBJS)\stclib_CellBuffer.obj &
        $(OBJS)\stclib_ContractionState.obj &
        $(OBJS)\stclib_CallTip.obj &
        $(OBJS)\stclib_CellBuffer.obj &
        $(OBJS)\stclib_ContractionState.obj &
-       $(OBJS)\stclib_DocumentAccessor.obj &
        $(OBJS)\stclib_Document.obj &
        $(OBJS)\stclib_Document.obj &
+       $(OBJS)\stclib_DocumentAccessor.obj &
        $(OBJS)\stclib_Editor.obj &
        $(OBJS)\stclib_ExternalLexer.obj &
        $(OBJS)\stclib_Indicator.obj &
        $(OBJS)\stclib_Editor.obj &
        $(OBJS)\stclib_ExternalLexer.obj &
        $(OBJS)\stclib_Indicator.obj &
@@ -296,6 +308,7 @@ STCLIB_OBJECTS =  &
        $(OBJS)\stclib_LexAVE.obj &
        $(OBJS)\stclib_LexAda.obj &
        $(OBJS)\stclib_LexAsm.obj &
        $(OBJS)\stclib_LexAVE.obj &
        $(OBJS)\stclib_LexAda.obj &
        $(OBJS)\stclib_LexAsm.obj &
+       $(OBJS)\stclib_LexAsn1.obj &
        $(OBJS)\stclib_LexBaan.obj &
        $(OBJS)\stclib_LexBash.obj &
        $(OBJS)\stclib_LexBullant.obj &
        $(OBJS)\stclib_LexBaan.obj &
        $(OBJS)\stclib_LexBash.obj &
        $(OBJS)\stclib_LexBullant.obj &
@@ -334,14 +347,15 @@ STCLIB_OBJECTS =  &
        $(OBJS)\stclib_LexSpecman.obj &
        $(OBJS)\stclib_LexTeX.obj &
        $(OBJS)\stclib_LexVB.obj &
        $(OBJS)\stclib_LexSpecman.obj &
        $(OBJS)\stclib_LexTeX.obj &
        $(OBJS)\stclib_LexVB.obj &
+       $(OBJS)\stclib_LexVHDL.obj &
        $(OBJS)\stclib_LexVerilog.obj &
        $(OBJS)\stclib_LexYAML.obj &
        $(OBJS)\stclib_LineMarker.obj &
        $(OBJS)\stclib_PropSet.obj &
        $(OBJS)\stclib_RESearch.obj &
        $(OBJS)\stclib_ScintillaBase.obj &
        $(OBJS)\stclib_LexVerilog.obj &
        $(OBJS)\stclib_LexYAML.obj &
        $(OBJS)\stclib_LineMarker.obj &
        $(OBJS)\stclib_PropSet.obj &
        $(OBJS)\stclib_RESearch.obj &
        $(OBJS)\stclib_ScintillaBase.obj &
-       $(OBJS)\stclib_StyleContext.obj &
        $(OBJS)\stclib_Style.obj &
        $(OBJS)\stclib_Style.obj &
+       $(OBJS)\stclib_StyleContext.obj &
        $(OBJS)\stclib_UniConversion.obj &
        $(OBJS)\stclib_ViewStyle.obj &
        $(OBJS)\stclib_WindowAccessor.obj &
        $(OBJS)\stclib_UniConversion.obj &
        $(OBJS)\stclib_ViewStyle.obj &
        $(OBJS)\stclib_WindowAccessor.obj &
@@ -361,6 +375,7 @@ clean : .SYMBOLIC
        -if exist $(OBJS)\*.res del $(OBJS)\*.res
        -if exist $(OBJS)\*.lbc del $(OBJS)\*.lbc
        -if exist $(OBJS)\*.ilk del $(OBJS)\*.ilk
        -if exist $(OBJS)\*.res del $(OBJS)\*.res
        -if exist $(OBJS)\*.lbc del $(OBJS)\*.lbc
        -if exist $(OBJS)\*.ilk del $(OBJS)\*.ilk
+       -if exist $(OBJS)\*.pch del $(OBJS)\*.pch
        -if exist $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_wat$(VENDORTAG).dll del $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_wat$(VENDORTAG).dll
        -if exist $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc.lib del $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc.lib
        -if exist $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc.lib del $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc.lib
        -if exist $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_wat$(VENDORTAG).dll del $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc_wat$(VENDORTAG).dll
        -if exist $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc.lib del $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc.lib
        -if exist $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc.lib del $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc.lib
@@ -408,10 +423,10 @@ $(OBJS)\stcdll_CellBuffer.obj :  .AUTODEPEND ../../src/stc\scintilla\src\CellBuf
 $(OBJS)\stcdll_ContractionState.obj :  .AUTODEPEND ../../src/stc\scintilla\src\ContractionState.cxx
        $(CXX) -zq -fo=$^@ $(STCDLL_CXXFLAGS) $<
 
 $(OBJS)\stcdll_ContractionState.obj :  .AUTODEPEND ../../src/stc\scintilla\src\ContractionState.cxx
        $(CXX) -zq -fo=$^@ $(STCDLL_CXXFLAGS) $<
 
-$(OBJS)\stcdll_DocumentAccessor.obj :  .AUTODEPEND ../../src/stc\scintilla\src\DocumentAccessor.cxx
+$(OBJS)\stcdll_Document.obj :  .AUTODEPEND ../../src/stc\scintilla\src\Document.cxx
        $(CXX) -zq -fo=$^@ $(STCDLL_CXXFLAGS) $<
 
        $(CXX) -zq -fo=$^@ $(STCDLL_CXXFLAGS) $<
 
-$(OBJS)\stcdll_Document.obj :  .AUTODEPEND ../../src/stc\scintilla\src\Document.cxx
+$(OBJS)\stcdll_DocumentAccessor.obj :  .AUTODEPEND ../../src/stc\scintilla\src\DocumentAccessor.cxx
        $(CXX) -zq -fo=$^@ $(STCDLL_CXXFLAGS) $<
 
 $(OBJS)\stcdll_Editor.obj :  .AUTODEPEND ../../src/stc\scintilla\src\Editor.cxx
        $(CXX) -zq -fo=$^@ $(STCDLL_CXXFLAGS) $<
 
 $(OBJS)\stcdll_Editor.obj :  .AUTODEPEND ../../src/stc\scintilla\src\Editor.cxx
@@ -444,6 +459,9 @@ $(OBJS)\stcdll_LexAda.obj :  .AUTODEPEND ../../src/stc\scintilla\src\LexAda.cxx
 $(OBJS)\stcdll_LexAsm.obj :  .AUTODEPEND ../../src/stc\scintilla\src\LexAsm.cxx
        $(CXX) -zq -fo=$^@ $(STCDLL_CXXFLAGS) $<
 
 $(OBJS)\stcdll_LexAsm.obj :  .AUTODEPEND ../../src/stc\scintilla\src\LexAsm.cxx
        $(CXX) -zq -fo=$^@ $(STCDLL_CXXFLAGS) $<
 
+$(OBJS)\stcdll_LexAsn1.obj :  .AUTODEPEND ../../src/stc\scintilla\src\LexAsn1.cxx
+       $(CXX) -zq -fo=$^@ $(STCDLL_CXXFLAGS) $<
+
 $(OBJS)\stcdll_LexBaan.obj :  .AUTODEPEND ../../src/stc\scintilla\src\LexBaan.cxx
        $(CXX) -zq -fo=$^@ $(STCDLL_CXXFLAGS) $<
 
 $(OBJS)\stcdll_LexBaan.obj :  .AUTODEPEND ../../src/stc\scintilla\src\LexBaan.cxx
        $(CXX) -zq -fo=$^@ $(STCDLL_CXXFLAGS) $<
 
@@ -558,6 +576,9 @@ $(OBJS)\stcdll_LexTeX.obj :  .AUTODEPEND ../../src/stc\scintilla\src\LexTeX.cxx
 $(OBJS)\stcdll_LexVB.obj :  .AUTODEPEND ../../src/stc\scintilla\src\LexVB.cxx
        $(CXX) -zq -fo=$^@ $(STCDLL_CXXFLAGS) $<
 
 $(OBJS)\stcdll_LexVB.obj :  .AUTODEPEND ../../src/stc\scintilla\src\LexVB.cxx
        $(CXX) -zq -fo=$^@ $(STCDLL_CXXFLAGS) $<
 
+$(OBJS)\stcdll_LexVHDL.obj :  .AUTODEPEND ../../src/stc\scintilla\src\LexVHDL.cxx
+       $(CXX) -zq -fo=$^@ $(STCDLL_CXXFLAGS) $<
+
 $(OBJS)\stcdll_LexVerilog.obj :  .AUTODEPEND ../../src/stc\scintilla\src\LexVerilog.cxx
        $(CXX) -zq -fo=$^@ $(STCDLL_CXXFLAGS) $<
 
 $(OBJS)\stcdll_LexVerilog.obj :  .AUTODEPEND ../../src/stc\scintilla\src\LexVerilog.cxx
        $(CXX) -zq -fo=$^@ $(STCDLL_CXXFLAGS) $<
 
@@ -576,10 +597,10 @@ $(OBJS)\stcdll_RESearch.obj :  .AUTODEPEND ../../src/stc\scintilla\src\RESearch.
 $(OBJS)\stcdll_ScintillaBase.obj :  .AUTODEPEND ../../src/stc\scintilla\src\ScintillaBase.cxx
        $(CXX) -zq -fo=$^@ $(STCDLL_CXXFLAGS) $<
 
 $(OBJS)\stcdll_ScintillaBase.obj :  .AUTODEPEND ../../src/stc\scintilla\src\ScintillaBase.cxx
        $(CXX) -zq -fo=$^@ $(STCDLL_CXXFLAGS) $<
 
-$(OBJS)\stcdll_StyleContext.obj :  .AUTODEPEND ../../src/stc\scintilla\src\StyleContext.cxx
+$(OBJS)\stcdll_Style.obj :  .AUTODEPEND ../../src/stc\scintilla\src\Style.cxx
        $(CXX) -zq -fo=$^@ $(STCDLL_CXXFLAGS) $<
 
        $(CXX) -zq -fo=$^@ $(STCDLL_CXXFLAGS) $<
 
-$(OBJS)\stcdll_Style.obj :  .AUTODEPEND ../../src/stc\scintilla\src\Style.cxx
+$(OBJS)\stcdll_StyleContext.obj :  .AUTODEPEND ../../src/stc\scintilla\src\StyleContext.cxx
        $(CXX) -zq -fo=$^@ $(STCDLL_CXXFLAGS) $<
 
 $(OBJS)\stcdll_UniConversion.obj :  .AUTODEPEND ../../src/stc\scintilla\src\UniConversion.cxx
        $(CXX) -zq -fo=$^@ $(STCDLL_CXXFLAGS) $<
 
 $(OBJS)\stcdll_UniConversion.obj :  .AUTODEPEND ../../src/stc\scintilla\src\UniConversion.cxx
@@ -615,10 +636,10 @@ $(OBJS)\stclib_CellBuffer.obj :  .AUTODEPEND ../../src/stc\scintilla\src\CellBuf
 $(OBJS)\stclib_ContractionState.obj :  .AUTODEPEND ../../src/stc\scintilla\src\ContractionState.cxx
        $(CXX) -zq -fo=$^@ $(STCLIB_CXXFLAGS) $<
 
 $(OBJS)\stclib_ContractionState.obj :  .AUTODEPEND ../../src/stc\scintilla\src\ContractionState.cxx
        $(CXX) -zq -fo=$^@ $(STCLIB_CXXFLAGS) $<
 
-$(OBJS)\stclib_DocumentAccessor.obj :  .AUTODEPEND ../../src/stc\scintilla\src\DocumentAccessor.cxx
+$(OBJS)\stclib_Document.obj :  .AUTODEPEND ../../src/stc\scintilla\src\Document.cxx
        $(CXX) -zq -fo=$^@ $(STCLIB_CXXFLAGS) $<
 
        $(CXX) -zq -fo=$^@ $(STCLIB_CXXFLAGS) $<
 
-$(OBJS)\stclib_Document.obj :  .AUTODEPEND ../../src/stc\scintilla\src\Document.cxx
+$(OBJS)\stclib_DocumentAccessor.obj :  .AUTODEPEND ../../src/stc\scintilla\src\DocumentAccessor.cxx
        $(CXX) -zq -fo=$^@ $(STCLIB_CXXFLAGS) $<
 
 $(OBJS)\stclib_Editor.obj :  .AUTODEPEND ../../src/stc\scintilla\src\Editor.cxx
        $(CXX) -zq -fo=$^@ $(STCLIB_CXXFLAGS) $<
 
 $(OBJS)\stclib_Editor.obj :  .AUTODEPEND ../../src/stc\scintilla\src\Editor.cxx
@@ -651,6 +672,9 @@ $(OBJS)\stclib_LexAda.obj :  .AUTODEPEND ../../src/stc\scintilla\src\LexAda.cxx
 $(OBJS)\stclib_LexAsm.obj :  .AUTODEPEND ../../src/stc\scintilla\src\LexAsm.cxx
        $(CXX) -zq -fo=$^@ $(STCLIB_CXXFLAGS) $<
 
 $(OBJS)\stclib_LexAsm.obj :  .AUTODEPEND ../../src/stc\scintilla\src\LexAsm.cxx
        $(CXX) -zq -fo=$^@ $(STCLIB_CXXFLAGS) $<
 
+$(OBJS)\stclib_LexAsn1.obj :  .AUTODEPEND ../../src/stc\scintilla\src\LexAsn1.cxx
+       $(CXX) -zq -fo=$^@ $(STCLIB_CXXFLAGS) $<
+
 $(OBJS)\stclib_LexBaan.obj :  .AUTODEPEND ../../src/stc\scintilla\src\LexBaan.cxx
        $(CXX) -zq -fo=$^@ $(STCLIB_CXXFLAGS) $<
 
 $(OBJS)\stclib_LexBaan.obj :  .AUTODEPEND ../../src/stc\scintilla\src\LexBaan.cxx
        $(CXX) -zq -fo=$^@ $(STCLIB_CXXFLAGS) $<
 
@@ -765,6 +789,9 @@ $(OBJS)\stclib_LexTeX.obj :  .AUTODEPEND ../../src/stc\scintilla\src\LexTeX.cxx
 $(OBJS)\stclib_LexVB.obj :  .AUTODEPEND ../../src/stc\scintilla\src\LexVB.cxx
        $(CXX) -zq -fo=$^@ $(STCLIB_CXXFLAGS) $<
 
 $(OBJS)\stclib_LexVB.obj :  .AUTODEPEND ../../src/stc\scintilla\src\LexVB.cxx
        $(CXX) -zq -fo=$^@ $(STCLIB_CXXFLAGS) $<
 
+$(OBJS)\stclib_LexVHDL.obj :  .AUTODEPEND ../../src/stc\scintilla\src\LexVHDL.cxx
+       $(CXX) -zq -fo=$^@ $(STCLIB_CXXFLAGS) $<
+
 $(OBJS)\stclib_LexVerilog.obj :  .AUTODEPEND ../../src/stc\scintilla\src\LexVerilog.cxx
        $(CXX) -zq -fo=$^@ $(STCLIB_CXXFLAGS) $<
 
 $(OBJS)\stclib_LexVerilog.obj :  .AUTODEPEND ../../src/stc\scintilla\src\LexVerilog.cxx
        $(CXX) -zq -fo=$^@ $(STCLIB_CXXFLAGS) $<
 
@@ -783,10 +810,10 @@ $(OBJS)\stclib_RESearch.obj :  .AUTODEPEND ../../src/stc\scintilla\src\RESearch.
 $(OBJS)\stclib_ScintillaBase.obj :  .AUTODEPEND ../../src/stc\scintilla\src\ScintillaBase.cxx
        $(CXX) -zq -fo=$^@ $(STCLIB_CXXFLAGS) $<
 
 $(OBJS)\stclib_ScintillaBase.obj :  .AUTODEPEND ../../src/stc\scintilla\src\ScintillaBase.cxx
        $(CXX) -zq -fo=$^@ $(STCLIB_CXXFLAGS) $<
 
-$(OBJS)\stclib_StyleContext.obj :  .AUTODEPEND ../../src/stc\scintilla\src\StyleContext.cxx
+$(OBJS)\stclib_Style.obj :  .AUTODEPEND ../../src/stc\scintilla\src\Style.cxx
        $(CXX) -zq -fo=$^@ $(STCLIB_CXXFLAGS) $<
 
        $(CXX) -zq -fo=$^@ $(STCLIB_CXXFLAGS) $<
 
-$(OBJS)\stclib_Style.obj :  .AUTODEPEND ../../src/stc\scintilla\src\Style.cxx
+$(OBJS)\stclib_StyleContext.obj :  .AUTODEPEND ../../src/stc\scintilla\src\StyleContext.cxx
        $(CXX) -zq -fo=$^@ $(STCLIB_CXXFLAGS) $<
 
 $(OBJS)\stclib_UniConversion.obj :  .AUTODEPEND ../../src/stc\scintilla\src\UniConversion.cxx
        $(CXX) -zq -fo=$^@ $(STCLIB_CXXFLAGS) $<
 
 $(OBJS)\stclib_UniConversion.obj :  .AUTODEPEND ../../src/stc\scintilla\src\UniConversion.cxx
@@ -800,3 +827,4 @@ $(OBJS)\stclib_WindowAccessor.obj :  .AUTODEPEND ../../src/stc\scintilla\src\Win
 
 $(OBJS)\stclib_XPM.obj :  .AUTODEPEND ../../src/stc\scintilla\src\XPM.cxx
        $(CXX) -zq -fo=$^@ $(STCLIB_CXXFLAGS) $<
 
 $(OBJS)\stclib_XPM.obj :  .AUTODEPEND ../../src/stc\scintilla\src\XPM.cxx
        $(CXX) -zq -fo=$^@ $(STCLIB_CXXFLAGS) $<
+
index 2ce95a44410c3cffb45f96fa7334b6f73cf8b2fb..7ec877db25d61b2fe79252b152c9eb6de7be3386 100644 (file)
@@ -16,8 +16,8 @@
         scintilla/src/CallTip.cxx
         scintilla/src/CellBuffer.cxx
         scintilla/src/ContractionState.cxx
         scintilla/src/CallTip.cxx
         scintilla/src/CellBuffer.cxx
         scintilla/src/ContractionState.cxx
-        scintilla/src/DocumentAccessor.cxx
         scintilla/src/Document.cxx
         scintilla/src/Document.cxx
+        scintilla/src/DocumentAccessor.cxx
         scintilla/src/Editor.cxx
         scintilla/src/ExternalLexer.cxx
         scintilla/src/Indicator.cxx
         scintilla/src/Editor.cxx
         scintilla/src/ExternalLexer.cxx
         scintilla/src/Indicator.cxx
@@ -28,6 +28,7 @@
         scintilla/src/LexAVE.cxx
         scintilla/src/LexAda.cxx
         scintilla/src/LexAsm.cxx
         scintilla/src/LexAVE.cxx
         scintilla/src/LexAda.cxx
         scintilla/src/LexAsm.cxx
+        scintilla/src/LexAsn1.cxx
         scintilla/src/LexBaan.cxx
         scintilla/src/LexBash.cxx
         scintilla/src/LexBullant.cxx
         scintilla/src/LexBaan.cxx
         scintilla/src/LexBash.cxx
         scintilla/src/LexBullant.cxx
         scintilla/src/LexSpecman.cxx
         scintilla/src/LexTeX.cxx
         scintilla/src/LexVB.cxx
         scintilla/src/LexSpecman.cxx
         scintilla/src/LexTeX.cxx
         scintilla/src/LexVB.cxx
+        scintilla/src/LexVHDL.cxx
         scintilla/src/LexVerilog.cxx
         scintilla/src/LexYAML.cxx
         scintilla/src/LineMarker.cxx
         scintilla/src/PropSet.cxx
         scintilla/src/RESearch.cxx
         scintilla/src/ScintillaBase.cxx
         scintilla/src/LexVerilog.cxx
         scintilla/src/LexYAML.cxx
         scintilla/src/LineMarker.cxx
         scintilla/src/PropSet.cxx
         scintilla/src/RESearch.cxx
         scintilla/src/ScintillaBase.cxx
-        scintilla/src/StyleContext.cxx
         scintilla/src/Style.cxx
         scintilla/src/Style.cxx
+        scintilla/src/StyleContext.cxx
         scintilla/src/UniConversion.cxx
         scintilla/src/ViewStyle.cxx
         scintilla/src/WindowAccessor.cxx
         scintilla/src/UniConversion.cxx
         scintilla/src/ViewStyle.cxx
         scintilla/src/WindowAccessor.cxx
index 8c64a9a9ae056815b7bf000d9af0dc9efb02da2f..e54aaf9e1d78e6ebacd42a71192a6b3abb798de8 100644 (file)
@@ -55,18 +55,18 @@ RSC=rc.exe
 # PROP Output_Dir "..\..\src\stc\..\..\..\lib\vc_dll"
 # PROP Intermediate_Dir "vc_mswunivudll\stc"
 # PROP Target_Dir ""
 # PROP Output_Dir "..\..\src\stc\..\..\..\lib\vc_dll"
 # PROP Intermediate_Dir "vc_mswunivudll\stc"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /FD /MD /O1 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\mswunivu" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv253u_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
-# ADD CPP /nologo /FD /MD /O1 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\mswunivu" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv253u_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
+# ADD BASE CPP /nologo /FD /MD /O2 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\mswunivu" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv254u_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
+# ADD CPP /nologo /FD /MD /O2 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\mswunivu" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv254u_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
 # ADD BASE MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
 # ADD MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
 # ADD BASE MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
 # ADD MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
-# ADD BASE RSC /l 0x405 /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "_UNICODE" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\mswunivu" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
-# ADD RSC /l 0x405 /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "_UNICODE" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\mswunivu" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
+# ADD BASE RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "_UNICODE" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\mswunivu" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
+# ADD RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "_UNICODE" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\mswunivu" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmswuniv25u_core.lib wxbase25u.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv253u_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv25u_stc.lib"
-# ADD LINK32 wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmswuniv25u_core.lib wxbase25u.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv253u_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv25u_stc.lib"
+# ADD BASE LINK32 wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmswuniv25u_core.lib wxbase25u.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv254u_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv25u_stc.lib"
+# ADD LINK32 wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmswuniv25u_core.lib wxbase25u.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv254u_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv25u_stc.lib"
 
 !ELSEIF  "$(CFG)" == "stc - Win32 DLL Universal Unicode Debug"
 
 
 !ELSEIF  "$(CFG)" == "stc - Win32 DLL Universal Unicode Debug"
 
@@ -80,18 +80,18 @@ LINK32=link.exe
 # PROP Output_Dir "..\..\src\stc\..\..\..\lib\vc_dll"
 # PROP Intermediate_Dir "vc_mswunivuddll\stc"
 # PROP Target_Dir ""
 # PROP Output_Dir "..\..\src\stc\..\..\..\lib\vc_dll"
 # PROP Intermediate_Dir "vc_mswunivuddll\stc"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\mswunivud" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv253ud_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
-# ADD CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\mswunivud" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv253ud_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
+# ADD BASE CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\mswunivud" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv254ud_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
+# ADD CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\mswunivud" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv254ud_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
 # ADD BASE MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
 # ADD MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
 # ADD BASE MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
 # ADD MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
-# ADD BASE RSC /l 0x405 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /d "_UNICODE" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\mswunivud" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
-# ADD RSC /l 0x405 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /d "_UNICODE" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\mswunivud" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
+# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /d "_UNICODE" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\mswunivud" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
+# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /d "_UNICODE" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\mswunivud" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmswuniv25ud_core.lib wxbase25ud.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv253ud_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv25ud_stc.lib" /debug
-# ADD LINK32 wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmswuniv25ud_core.lib wxbase25ud.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv253ud_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv25ud_stc.lib" /debug
+# ADD BASE LINK32 wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmswuniv25ud_core.lib wxbase25ud.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv254ud_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv25ud_stc.lib" /debug
+# ADD LINK32 wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmswuniv25ud_core.lib wxbase25ud.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv254ud_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv25ud_stc.lib" /debug
 
 !ELSEIF  "$(CFG)" == "stc - Win32 DLL Universal Release"
 
 
 !ELSEIF  "$(CFG)" == "stc - Win32 DLL Universal Release"
 
@@ -105,18 +105,18 @@ LINK32=link.exe
 # PROP Output_Dir "..\..\src\stc\..\..\..\lib\vc_dll"
 # PROP Intermediate_Dir "vc_mswunivdll\stc"
 # PROP Target_Dir ""
 # PROP Output_Dir "..\..\src\stc\..\..\..\lib\vc_dll"
 # PROP Intermediate_Dir "vc_mswunivdll\stc"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /FD /MD /O1 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\mswuniv" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv253_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
-# ADD CPP /nologo /FD /MD /O1 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\mswuniv" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv253_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
+# ADD BASE CPP /nologo /FD /MD /O2 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\mswuniv" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv254_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
+# ADD CPP /nologo /FD /MD /O2 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\mswuniv" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv254_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
 # ADD BASE MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
 # ADD MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
 # ADD BASE MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
 # ADD MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
-# ADD BASE RSC /l 0x405 /d "__WXMSW__" /d "__WXUNIVERSAL__" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\mswuniv" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
-# ADD RSC /l 0x405 /d "__WXMSW__" /d "__WXUNIVERSAL__" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\mswuniv" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
+# ADD BASE RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\mswuniv" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
+# ADD RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\mswuniv" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmswuniv25_core.lib wxbase25.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv253_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv25_stc.lib"
-# ADD LINK32 wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmswuniv25_core.lib wxbase25.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv253_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv25_stc.lib"
+# ADD BASE LINK32 wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmswuniv25_core.lib wxbase25.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv254_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv25_stc.lib"
+# ADD LINK32 wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmswuniv25_core.lib wxbase25.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv254_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv25_stc.lib"
 
 !ELSEIF  "$(CFG)" == "stc - Win32 DLL Universal Debug"
 
 
 !ELSEIF  "$(CFG)" == "stc - Win32 DLL Universal Debug"
 
@@ -130,18 +130,18 @@ LINK32=link.exe
 # PROP Output_Dir "..\..\src\stc\..\..\..\lib\vc_dll"
 # PROP Intermediate_Dir "vc_mswunivddll\stc"
 # PROP Target_Dir ""
 # PROP Output_Dir "..\..\src\stc\..\..\..\lib\vc_dll"
 # PROP Intermediate_Dir "vc_mswunivddll\stc"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\mswunivd" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv253d_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
-# ADD CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\mswunivd" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv253d_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
+# ADD BASE CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\mswunivd" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv254d_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
+# ADD CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\mswunivd" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv254d_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
 # ADD BASE MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
 # ADD MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
 # ADD BASE MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
 # ADD MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
-# ADD BASE RSC /l 0x405 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\mswunivd" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
-# ADD RSC /l 0x405 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\mswunivd" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
+# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\mswunivd" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
+# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\mswunivd" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmswuniv25d_core.lib wxbase25d.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv253d_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv25d_stc.lib" /debug
-# ADD LINK32 wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmswuniv25d_core.lib wxbase25d.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv253d_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv25d_stc.lib" /debug
+# ADD BASE LINK32 wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmswuniv25d_core.lib wxbase25d.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv254d_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv25d_stc.lib" /debug
+# ADD LINK32 wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmswuniv25d_core.lib wxbase25d.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv254d_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmswuniv25d_stc.lib" /debug
 
 !ELSEIF  "$(CFG)" == "stc - Win32 DLL Unicode Release"
 
 
 !ELSEIF  "$(CFG)" == "stc - Win32 DLL Unicode Release"
 
@@ -155,18 +155,18 @@ LINK32=link.exe
 # PROP Output_Dir "..\..\src\stc\..\..\..\lib\vc_dll"
 # PROP Intermediate_Dir "vc_mswudll\stc"
 # PROP Target_Dir ""
 # PROP Output_Dir "..\..\src\stc\..\..\..\lib\vc_dll"
 # PROP Intermediate_Dir "vc_mswudll\stc"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /FD /MD /O1 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\mswu" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmsw253u_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
-# ADD CPP /nologo /FD /MD /O1 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\mswu" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmsw253u_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
+# ADD BASE CPP /nologo /FD /MD /O2 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\mswu" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmsw254u_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
+# ADD CPP /nologo /FD /MD /O2 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\mswu" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmsw254u_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
 # ADD BASE MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
 # ADD MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
 # ADD BASE MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
 # ADD MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
-# ADD BASE RSC /l 0x405 /d "__WXMSW__" /d "_UNICODE" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\mswu" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
-# ADD RSC /l 0x405 /d "__WXMSW__" /d "_UNICODE" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\mswu" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
+# ADD BASE RSC /l 0x409 /d "__WXMSW__" /d "_UNICODE" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\mswu" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
+# ADD RSC /l 0x409 /d "__WXMSW__" /d "_UNICODE" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\mswu" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmsw25u_core.lib wxbase25u.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw253u_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw25u_stc.lib"
-# ADD LINK32 wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmsw25u_core.lib wxbase25u.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw253u_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw25u_stc.lib"
+# ADD BASE LINK32 wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmsw25u_core.lib wxbase25u.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw254u_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw25u_stc.lib"
+# ADD LINK32 wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmsw25u_core.lib wxbase25u.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw254u_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw25u_stc.lib"
 
 !ELSEIF  "$(CFG)" == "stc - Win32 DLL Unicode Debug"
 
 
 !ELSEIF  "$(CFG)" == "stc - Win32 DLL Unicode Debug"
 
@@ -180,18 +180,18 @@ LINK32=link.exe
 # PROP Output_Dir "..\..\src\stc\..\..\..\lib\vc_dll"
 # PROP Intermediate_Dir "vc_mswuddll\stc"
 # PROP Target_Dir ""
 # PROP Output_Dir "..\..\src\stc\..\..\..\lib\vc_dll"
 # PROP Intermediate_Dir "vc_mswuddll\stc"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\mswud" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmsw253ud_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
-# ADD CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\mswud" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmsw253ud_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
+# ADD BASE CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\mswud" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmsw254ud_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
+# ADD CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\mswud" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmsw254ud_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
 # ADD BASE MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
 # ADD MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
 # ADD BASE MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
 # ADD MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
-# ADD BASE RSC /l 0x405 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /d "_UNICODE" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\mswud" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
-# ADD RSC /l 0x405 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /d "_UNICODE" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\mswud" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
+# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /d "_UNICODE" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\mswud" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
+# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /d "_UNICODE" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\mswud" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmsw25ud_core.lib wxbase25ud.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw253ud_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw25ud_stc.lib" /debug
-# ADD LINK32 wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmsw25ud_core.lib wxbase25ud.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw253ud_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw25ud_stc.lib" /debug
+# ADD BASE LINK32 wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmsw25ud_core.lib wxbase25ud.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw254ud_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw25ud_stc.lib" /debug
+# ADD LINK32 wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmsw25ud_core.lib wxbase25ud.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw254ud_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw25ud_stc.lib" /debug
 
 !ELSEIF  "$(CFG)" == "stc - Win32 DLL Release"
 
 
 !ELSEIF  "$(CFG)" == "stc - Win32 DLL Release"
 
@@ -205,18 +205,18 @@ LINK32=link.exe
 # PROP Output_Dir "..\..\src\stc\..\..\..\lib\vc_dll"
 # PROP Intermediate_Dir "vc_mswdll\stc"
 # PROP Target_Dir ""
 # PROP Output_Dir "..\..\src\stc\..\..\..\lib\vc_dll"
 # PROP Intermediate_Dir "vc_mswdll\stc"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /FD /MD /O1 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\msw" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmsw253_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
-# ADD CPP /nologo /FD /MD /O1 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\msw" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmsw253_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
+# ADD BASE CPP /nologo /FD /MD /O2 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\msw" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmsw254_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
+# ADD CPP /nologo /FD /MD /O2 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\msw" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmsw254_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
 # ADD BASE MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
 # ADD MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
 # ADD BASE MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
 # ADD MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "__WXMSW__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
-# ADD BASE RSC /l 0x405 /d "__WXMSW__" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\msw" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
-# ADD RSC /l 0x405 /d "__WXMSW__" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\msw" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
+# ADD BASE RSC /l 0x409 /d "__WXMSW__" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\msw" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
+# ADD RSC /l 0x409 /d "__WXMSW__" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\msw" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmsw25_core.lib wxbase25.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw253_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw25_stc.lib"
-# ADD LINK32 wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmsw25_core.lib wxbase25.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw253_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw25_stc.lib"
+# ADD BASE LINK32 wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmsw25_core.lib wxbase25.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw254_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw25_stc.lib"
+# ADD LINK32 wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmsw25_core.lib wxbase25.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw254_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw25_stc.lib"
 
 !ELSEIF  "$(CFG)" == "stc - Win32 DLL Debug"
 
 
 !ELSEIF  "$(CFG)" == "stc - Win32 DLL Debug"
 
@@ -230,18 +230,18 @@ LINK32=link.exe
 # PROP Output_Dir "..\..\src\stc\..\..\..\lib\vc_dll"
 # PROP Intermediate_Dir "vc_mswddll\stc"
 # PROP Target_Dir ""
 # PROP Output_Dir "..\..\src\stc\..\..\..\lib\vc_dll"
 # PROP Intermediate_Dir "vc_mswddll\stc"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\mswd" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmsw253d_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
-# ADD CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\mswd" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmsw253d_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
+# ADD BASE CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\mswd" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmsw254d_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
+# ADD CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_dll\mswd" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_dll\wxmsw254d_stc_vc_custom.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /c
 # ADD BASE MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
 # ADD MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
 # ADD BASE MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
 # ADD MTL /nologo /D "WIN32" /D "_USRDLL" /D "DLL_EXPORTS" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /D "WXUSINGDLL" /D "WXMAKINGDLL_STC" /mktyplib203 /win32
-# ADD BASE RSC /l 0x405 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\mswd" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
-# ADD RSC /l 0x405 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\mswd" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
+# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\mswd" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
+# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /i "..\..\src\stc\..\..\..\include" /i "..\..\src\stc\..\..\..\lib\vc_dll\mswd" /i "..\..\src\stc\..\..\include" /i "..\..\src\stc\scintilla\include" /i "..\..\src\stc\scintilla\src" /d "__WX__" /d "SCI_LEXER" /d "LINK_LEXERS" /d "WXUSINGDLL" /d WXMAKINGDLL_STC
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmsw25d_core.lib wxbase25d.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw253d_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw25d_stc.lib" /debug
-# ADD LINK32 wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmsw25d_core.lib wxbase25d.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw253d_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw25d_stc.lib" /debug
+# ADD BASE LINK32 wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmsw25d_core.lib wxbase25d.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw254d_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw25d_stc.lib" /debug
+# ADD LINK32 wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib wxmsw25d_core.lib wxbase25d.lib /nologo /dll /machine:i386 /out:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw254d_stc_vc_custom.dll" /libpath:"..\..\src\stc\..\..\..\lib\vc_dll" /implib:"..\..\src\stc\..\..\..\lib\vc_dll\wxmsw25d_stc.lib" /debug
 
 !ELSEIF  "$(CFG)" == "stc - Win32 Universal Unicode Release"
 
 
 !ELSEIF  "$(CFG)" == "stc - Win32 Universal Unicode Release"
 
@@ -255,10 +255,10 @@ LINK32=link.exe
 # PROP Output_Dir "..\..\src\stc\..\..\..\lib\vc_lib"
 # PROP Intermediate_Dir "vc_mswunivu\stc"
 # PROP Target_Dir ""
 # PROP Output_Dir "..\..\src\stc\..\..\..\lib\vc_lib"
 # PROP Intermediate_Dir "vc_mswunivu\stc"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /FD /MD /O1 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\mswunivu" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmswuniv25u_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
-# ADD CPP /nologo /FD /MD /O1 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\mswunivu" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmswuniv25u_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
-# ADD BASE RSC /l 0x405
-# ADD RSC /l 0x405
+# ADD BASE CPP /nologo /FD /MD /O2 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\mswunivu" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmswuniv25u_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
+# ADD CPP /nologo /FD /MD /O2 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\mswunivu" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmswuniv25u_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
+# ADD BASE RSC /l 0x409
+# ADD RSC /l 0x409
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -280,8 +280,8 @@ LIB32=link.exe -lib
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\mswunivud" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmswuniv25ud_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
 # ADD CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\mswunivud" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmswuniv25ud_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\mswunivud" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmswuniv25ud_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
 # ADD CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\mswunivud" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmswuniv25ud_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
-# ADD BASE RSC /l 0x405
-# ADD RSC /l 0x405
+# ADD BASE RSC /l 0x409
+# ADD RSC /l 0x409
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -301,10 +301,10 @@ LIB32=link.exe -lib
 # PROP Output_Dir "..\..\src\stc\..\..\..\lib\vc_lib"
 # PROP Intermediate_Dir "vc_mswuniv\stc"
 # PROP Target_Dir ""
 # PROP Output_Dir "..\..\src\stc\..\..\..\lib\vc_lib"
 # PROP Intermediate_Dir "vc_mswuniv\stc"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /FD /MD /O1 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\mswuniv" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmswuniv25_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
-# ADD CPP /nologo /FD /MD /O1 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\mswuniv" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmswuniv25_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
-# ADD BASE RSC /l 0x405
-# ADD RSC /l 0x405
+# ADD BASE CPP /nologo /FD /MD /O2 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\mswuniv" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmswuniv25_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
+# ADD CPP /nologo /FD /MD /O2 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\mswuniv" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmswuniv25_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
+# ADD BASE RSC /l 0x409
+# ADD RSC /l 0x409
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -326,8 +326,8 @@ LIB32=link.exe -lib
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\mswunivd" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmswuniv25d_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
 # ADD CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\mswunivd" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmswuniv25d_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\mswunivd" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmswuniv25d_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
 # ADD CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\mswunivd" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmswuniv25d_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
-# ADD BASE RSC /l 0x405
-# ADD RSC /l 0x405
+# ADD BASE RSC /l 0x409
+# ADD RSC /l 0x409
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -347,10 +347,10 @@ LIB32=link.exe -lib
 # PROP Output_Dir "..\..\src\stc\..\..\..\lib\vc_lib"
 # PROP Intermediate_Dir "vc_mswu\stc"
 # PROP Target_Dir ""
 # PROP Output_Dir "..\..\src\stc\..\..\..\lib\vc_lib"
 # PROP Intermediate_Dir "vc_mswu\stc"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /FD /MD /O1 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\mswu" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmsw25u_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "__WXMSW__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
-# ADD CPP /nologo /FD /MD /O1 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\mswu" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmsw25u_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "__WXMSW__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
-# ADD BASE RSC /l 0x405
-# ADD RSC /l 0x405
+# ADD BASE CPP /nologo /FD /MD /O2 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\mswu" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmsw25u_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "__WXMSW__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
+# ADD CPP /nologo /FD /MD /O2 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\mswu" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmsw25u_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "__WXMSW__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
+# ADD BASE RSC /l 0x409
+# ADD RSC /l 0x409
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -372,8 +372,8 @@ LIB32=link.exe -lib
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\mswud" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmsw25ud_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
 # ADD CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\mswud" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmsw25ud_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\mswud" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmsw25ud_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
 # ADD CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\mswud" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmsw25ud_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
-# ADD BASE RSC /l 0x405
-# ADD RSC /l 0x405
+# ADD BASE RSC /l 0x409
+# ADD RSC /l 0x409
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -393,10 +393,10 @@ LIB32=link.exe -lib
 # PROP Output_Dir "..\..\src\stc\..\..\..\lib\vc_lib"
 # PROP Intermediate_Dir "vc_msw\stc"
 # PROP Target_Dir ""
 # PROP Output_Dir "..\..\src\stc\..\..\..\lib\vc_lib"
 # PROP Intermediate_Dir "vc_msw\stc"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /FD /MD /O1 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\msw" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmsw25_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "__WXMSW__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
-# ADD CPP /nologo /FD /MD /O1 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\msw" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmsw25_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "__WXMSW__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
-# ADD BASE RSC /l 0x405
-# ADD RSC /l 0x405
+# ADD BASE CPP /nologo /FD /MD /O2 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\msw" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmsw25_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "__WXMSW__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
+# ADD CPP /nologo /FD /MD /O2 /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\msw" /W4 /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmsw25_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "__WXMSW__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
+# ADD BASE RSC /l 0x409
+# ADD RSC /l 0x409
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -418,8 +418,8 @@ LIB32=link.exe -lib
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\mswd" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmsw25d_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
 # ADD CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\mswd" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmsw25d_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\mswd" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmsw25d_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
 # ADD CPP /nologo /FD /MDd /Od /GR /GX /I "..\..\src\stc\..\..\..\include" /I "..\..\src\stc\..\..\..\lib\vc_lib\mswd" /W4 /Zi /Gm /GZ /Fd..\..\src\stc\..\..\..\lib\vc_lib\wxmsw25d_stc.pdb /I "..\..\src\stc\..\..\include" /I "..\..\src\stc\scintilla\include" /I "..\..\src\stc\scintilla\src" /D "WIN32" /D "_LIB" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "__WX__" /D "SCI_LEXER" /D "LINK_LEXERS" /c
-# ADD BASE RSC /l 0x405
-# ADD RSC /l 0x405
+# ADD BASE RSC /l 0x409
+# ADD RSC /l 0x409
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -516,6 +516,10 @@ SOURCE=../../src/stc\scintilla\src\LexAsm.cxx
 # End Source File
 # Begin Source File
 
 # End Source File
 # Begin Source File
 
+SOURCE=../../src/stc\scintilla\src\LexAsn1.cxx
+# End Source File
+# Begin Source File
+
 SOURCE=../../src/stc\scintilla\src\LexBaan.cxx
 # End Source File
 # Begin Source File
 SOURCE=../../src/stc\scintilla\src\LexBaan.cxx
 # End Source File
 # Begin Source File
@@ -668,6 +672,10 @@ SOURCE=../../src/stc\scintilla\src\LexVB.cxx
 # End Source File
 # Begin Source File
 
 # End Source File
 # Begin Source File
 
+SOURCE=../../src/stc\scintilla\src\LexVHDL.cxx
+# End Source File
+# Begin Source File
+
 SOURCE=../../src/stc\scintilla\src\LexVerilog.cxx
 # End Source File
 # Begin Source File
 SOURCE=../../src/stc\scintilla\src\LexVerilog.cxx
 # End Source File
 # Begin Source File
index 10519a61b70eae7cb25c17ed67b261c44da3d3af..b636753aa5267ae976e36852319e74db7b6a5068 100644 (file)
 #define wxSTC_LEX_AU3 60
 #define wxSTC_LEX_APDL 61
 #define wxSTC_LEX_BASH 62
 #define wxSTC_LEX_AU3 60
 #define wxSTC_LEX_APDL 61
 #define wxSTC_LEX_BASH 62
+#define wxSTC_LEX_ASN1 63
+#define wxSTC_LEX_VHDL 64
 
 // When a lexer specifies its language as SCLEX_AUTOMATIC it receives a
 // value assigned in sequence from SCLEX_AUTOMATIC+1.
 
 // When a lexer specifies its language as SCLEX_AUTOMATIC it receives a
 // value assigned in sequence from SCLEX_AUTOMATIC+1.
 #define wxSTC_ERR_IFORT 17
 #define wxSTC_ERR_ABSF 18
 #define wxSTC_ERR_TIDY 19
 #define wxSTC_ERR_IFORT 17
 #define wxSTC_ERR_ABSF 18
 #define wxSTC_ERR_TIDY 19
+#define wxSTC_ERR_JAVA_STACK 20
 
 // Lexical states for SCLEX_BATCH
 #define wxSTC_BAT_DEFAULT 0
 
 // Lexical states for SCLEX_BATCH
 #define wxSTC_BAT_DEFAULT 0
 #define wxSTC_CSS_DIRECTIVE 12
 #define wxSTC_CSS_DOUBLESTRING 13
 #define wxSTC_CSS_SINGLESTRING 14
 #define wxSTC_CSS_DIRECTIVE 12
 #define wxSTC_CSS_DOUBLESTRING 13
 #define wxSTC_CSS_SINGLESTRING 14
+#define wxSTC_CSS_IDENTIFIER2 15
 
 // Lexical states for SCLEX_POV
 #define wxSTC_POV_DEFAULT 0
 
 // Lexical states for SCLEX_POV
 #define wxSTC_POV_DEFAULT 0
 #define wxSTC_AU3_VARIABLE 9
 #define wxSTC_AU3_SENT 10
 #define wxSTC_AU3_PREPROCESSOR 11
 #define wxSTC_AU3_VARIABLE 9
 #define wxSTC_AU3_SENT 10
 #define wxSTC_AU3_PREPROCESSOR 11
+#define wxSTC_AU3_SPECIAL 12
 
 // Lexical states for SCLEX_APDL
 #define wxSTC_APDL_DEFAULT 0
 
 // Lexical states for SCLEX_APDL
 #define wxSTC_APDL_DEFAULT 0
 #define wxSTC_APDL_COMMENTBLOCK 2
 #define wxSTC_APDL_NUMBER 3
 #define wxSTC_APDL_STRING 4
 #define wxSTC_APDL_COMMENTBLOCK 2
 #define wxSTC_APDL_NUMBER 3
 #define wxSTC_APDL_STRING 4
-#define wxSTC_APDL_WORD 5
-#define wxSTC_APDL_COMMAND 6
+#define wxSTC_APDL_OPERATOR 5
+#define wxSTC_APDL_WORD 6
 #define wxSTC_APDL_PROCESSOR 7
 #define wxSTC_APDL_PROCESSOR 7
-#define wxSTC_APDL_FUNCTION 8
+#define wxSTC_APDL_COMMAND 8
+#define wxSTC_APDL_SLASHCOMMAND 9
+#define wxSTC_APDL_STARCOMMAND 10
+#define wxSTC_APDL_ARGUMENT 11
+#define wxSTC_APDL_FUNCTION 12
 
 // Lexical states for SCLEX_BASH
 #define wxSTC_SH_DEFAULT 0
 
 // Lexical states for SCLEX_BASH
 #define wxSTC_SH_DEFAULT 0
 #define wxSTC_SH_HERE_DELIM 12
 #define wxSTC_SH_HERE_Q 13
 
 #define wxSTC_SH_HERE_DELIM 12
 #define wxSTC_SH_HERE_Q 13
 
+// Lexical states for SCLEX_ASN1
+#define wxSTC_ASN1_DEFAULT 0
+#define wxSTC_ASN1_COMMENT 1
+#define wxSTC_ASN1_IDENTIFIER 2
+#define wxSTC_ASN1_STRING 3
+#define wxSTC_ASN1_OID 4
+#define wxSTC_ASN1_SCALAR 5
+#define wxSTC_ASN1_KEYWORD 6
+#define wxSTC_ASN1_ATTRIBUTE 7
+#define wxSTC_ASN1_DESCRIPTOR 8
+#define wxSTC_ASN1_TYPE 9
+#define wxSTC_ASN1_OPERATOR 10
+
+// Lexical states for SCLEX_VHDL
+#define wxSTC_VHDL_DEFAULT 0
+#define wxSTC_VHDL_COMMENT 1
+#define wxSTC_VHDL_COMMENTLINEBANG 2
+#define wxSTC_VHDL_NUMBER 3
+#define wxSTC_VHDL_STRING 4
+#define wxSTC_VHDL_OPERATOR 5
+#define wxSTC_VHDL_IDENTIFIER 6
+#define wxSTC_VHDL_STRINGEOL 7
+#define wxSTC_VHDL_KEYWORD 8
+#define wxSTC_VHDL_STDOPERATOR 9
+#define wxSTC_VHDL_ATTRIBUTE 10
+#define wxSTC_VHDL_STDFUNCTION 11
+#define wxSTC_VHDL_STDPACKAGE 12
+#define wxSTC_VHDL_STDTYPE 13
+#define wxSTC_VHDL_USERWORD 14
+
 
 //-----------------------------------------
 // Commands that can be bound to keystrokes
 
 //-----------------------------------------
 // Commands that can be bound to keystrokes
@@ -2737,6 +2776,10 @@ public:
     // Enlarge the document to a particular size of text bytes.
     void Allocate(int bytes);
 
     // Enlarge the document to a particular size of text bytes.
     void Allocate(int bytes);
 
+    // Find the position of a column on a line taking into account tabs and 
+    // multi-byte characters. If beyond end of line, return line end position.
+    int FindColumn(int line, int column);
+
     // Start notifying the container of all key presses and commands.
     void StartRecord();
 
     // Start notifying the container of all key presses and commands.
     void StartRecord();
 
index 77751156071d72bec2ea565054aea9e7e9f11947..385a300f1211e48dac3a99969651c88ec5b55e66 100644 (file)
@@ -1,6 +1,6 @@
 # =========================================================================
 #     This makefile was generated by
 # =========================================================================
 #     This makefile was generated by
-#     Bakefile 0.1.4 (http://bakefile.sourceforge.net)
+#     Bakefile 0.1.6 (http://bakefile.sourceforge.net)
 #     Do not modify, all changes will be overwritten!
 # =========================================================================
 
 #     Do not modify, all changes will be overwritten!
 # =========================================================================
 
@@ -49,8 +49,8 @@ HOST_SUFFIX = @HOST_SUFFIX@
 DESTDIR = 
 WX_RELEASE = 2.5
 WX_RELEASE_NODOT = 25
 DESTDIR = 
 WX_RELEASE = 2.5
 WX_RELEASE_NODOT = 25
-WX_VERSION = $(WX_RELEASE).3
-WX_VERSION_NODOT = $(WX_RELEASE_NODOT)3
+WX_VERSION = $(WX_RELEASE).4
+WX_VERSION_NODOT = $(WX_RELEASE_NODOT)4
 LIBDIRNAME = $(top_builddir)lib
 STCDLL_CXXFLAGS = -D__WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p) \
        -I$(srcdir)/../../include -I$(srcdir)/scintilla/include \
 LIBDIRNAME = $(top_builddir)lib
 STCDLL_CXXFLAGS = -D__WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p) \
        -I$(srcdir)/../../include -I$(srcdir)/scintilla/include \
@@ -64,8 +64,8 @@ STCDLL_OBJECTS =  \
        stcdll_CallTip.o \
        stcdll_CellBuffer.o \
        stcdll_ContractionState.o \
        stcdll_CallTip.o \
        stcdll_CellBuffer.o \
        stcdll_ContractionState.o \
-       stcdll_DocumentAccessor.o \
        stcdll_Document.o \
        stcdll_Document.o \
+       stcdll_DocumentAccessor.o \
        stcdll_Editor.o \
        stcdll_ExternalLexer.o \
        stcdll_Indicator.o \
        stcdll_Editor.o \
        stcdll_ExternalLexer.o \
        stcdll_Indicator.o \
@@ -76,6 +76,7 @@ STCDLL_OBJECTS =  \
        stcdll_LexAVE.o \
        stcdll_LexAda.o \
        stcdll_LexAsm.o \
        stcdll_LexAVE.o \
        stcdll_LexAda.o \
        stcdll_LexAsm.o \
+       stcdll_LexAsn1.o \
        stcdll_LexBaan.o \
        stcdll_LexBash.o \
        stcdll_LexBullant.o \
        stcdll_LexBaan.o \
        stcdll_LexBash.o \
        stcdll_LexBullant.o \
@@ -114,14 +115,15 @@ STCDLL_OBJECTS =  \
        stcdll_LexSpecman.o \
        stcdll_LexTeX.o \
        stcdll_LexVB.o \
        stcdll_LexSpecman.o \
        stcdll_LexTeX.o \
        stcdll_LexVB.o \
+       stcdll_LexVHDL.o \
        stcdll_LexVerilog.o \
        stcdll_LexYAML.o \
        stcdll_LineMarker.o \
        stcdll_PropSet.o \
        stcdll_RESearch.o \
        stcdll_ScintillaBase.o \
        stcdll_LexVerilog.o \
        stcdll_LexYAML.o \
        stcdll_LineMarker.o \
        stcdll_PropSet.o \
        stcdll_RESearch.o \
        stcdll_ScintillaBase.o \
-       stcdll_StyleContext.o \
        stcdll_Style.o \
        stcdll_Style.o \
+       stcdll_StyleContext.o \
        stcdll_UniConversion.o \
        stcdll_ViewStyle.o \
        stcdll_WindowAccessor.o \
        stcdll_UniConversion.o \
        stcdll_ViewStyle.o \
        stcdll_WindowAccessor.o \
@@ -138,8 +140,8 @@ STCLIB_OBJECTS =  \
        stclib_CallTip.o \
        stclib_CellBuffer.o \
        stclib_ContractionState.o \
        stclib_CallTip.o \
        stclib_CellBuffer.o \
        stclib_ContractionState.o \
-       stclib_DocumentAccessor.o \
        stclib_Document.o \
        stclib_Document.o \
+       stclib_DocumentAccessor.o \
        stclib_Editor.o \
        stclib_ExternalLexer.o \
        stclib_Indicator.o \
        stclib_Editor.o \
        stclib_ExternalLexer.o \
        stclib_Indicator.o \
@@ -150,6 +152,7 @@ STCLIB_OBJECTS =  \
        stclib_LexAVE.o \
        stclib_LexAda.o \
        stclib_LexAsm.o \
        stclib_LexAVE.o \
        stclib_LexAda.o \
        stclib_LexAsm.o \
+       stclib_LexAsn1.o \
        stclib_LexBaan.o \
        stclib_LexBash.o \
        stclib_LexBullant.o \
        stclib_LexBaan.o \
        stclib_LexBash.o \
        stclib_LexBullant.o \
@@ -188,14 +191,15 @@ STCLIB_OBJECTS =  \
        stclib_LexSpecman.o \
        stclib_LexTeX.o \
        stclib_LexVB.o \
        stclib_LexSpecman.o \
        stclib_LexTeX.o \
        stclib_LexVB.o \
+       stclib_LexVHDL.o \
        stclib_LexVerilog.o \
        stclib_LexYAML.o \
        stclib_LineMarker.o \
        stclib_PropSet.o \
        stclib_RESearch.o \
        stclib_ScintillaBase.o \
        stclib_LexVerilog.o \
        stclib_LexYAML.o \
        stclib_LineMarker.o \
        stclib_PropSet.o \
        stclib_RESearch.o \
        stclib_ScintillaBase.o \
-       stclib_StyleContext.o \
        stclib_Style.o \
        stclib_Style.o \
+       stclib_StyleContext.o \
        stclib_UniConversion.o \
        stclib_ViewStyle.o \
        stclib_WindowAccessor.o \
        stclib_UniConversion.o \
        stclib_ViewStyle.o \
        stclib_WindowAccessor.o \
@@ -238,14 +242,14 @@ COND_PLATFORM_WIN32_1___stcdll___importlib = \
        -Wl,--out-implib,$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
 @COND_PLATFORM_WIN32_1@__stcdll___importlib = $(COND_PLATFORM_WIN32_1___stcdll___importlib)
 @COND_PLATFORM_MACOSX_0_USE_SOVERSION_1@__stcdll___targetsuf2 \
        -Wl,--out-implib,$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
 @COND_PLATFORM_WIN32_1@__stcdll___importlib = $(COND_PLATFORM_WIN32_1___stcdll___importlib)
 @COND_PLATFORM_MACOSX_0_USE_SOVERSION_1@__stcdll___targetsuf2 \
-@COND_PLATFORM_MACOSX_0_USE_SOVERSION_1@       = .$(SO_SUFFIX).3
+@COND_PLATFORM_MACOSX_0_USE_SOVERSION_1@       = .$(SO_SUFFIX).4
 @COND_PLATFORM_MACOSX_1_USE_SOVERSION_1@__stcdll___targetsuf2 \
 @COND_PLATFORM_MACOSX_1_USE_SOVERSION_1@__stcdll___targetsuf2 \
-@COND_PLATFORM_MACOSX_1_USE_SOVERSION_1@       = .3.$(SO_SUFFIX)
+@COND_PLATFORM_MACOSX_1_USE_SOVERSION_1@       = .4.$(SO_SUFFIX)
 @COND_USE_SOVERSION_0@__stcdll___targetsuf2 = .$(SO_SUFFIX)
 @COND_PLATFORM_MACOSX_0_USE_SOVERSION_1@__stcdll___targetsuf3 \
 @COND_USE_SOVERSION_0@__stcdll___targetsuf2 = .$(SO_SUFFIX)
 @COND_PLATFORM_MACOSX_0_USE_SOVERSION_1@__stcdll___targetsuf3 \
-@COND_PLATFORM_MACOSX_0_USE_SOVERSION_1@       = .$(SO_SUFFIX).3.0.0
+@COND_PLATFORM_MACOSX_0_USE_SOVERSION_1@       = .$(SO_SUFFIX).4.0.0
 @COND_PLATFORM_MACOSX_1_USE_SOVERSION_1@__stcdll___targetsuf3 \
 @COND_PLATFORM_MACOSX_1_USE_SOVERSION_1@__stcdll___targetsuf3 \
-@COND_PLATFORM_MACOSX_1_USE_SOVERSION_1@       = .3.0.0.$(SO_SUFFIX)
+@COND_PLATFORM_MACOSX_1_USE_SOVERSION_1@       = .4.0.0.$(SO_SUFFIX)
 @COND_USE_SOVERSION_0@__stcdll___targetsuf3 = .$(SO_SUFFIX)
 COND_USE_SOVERLINUX_1___stcdll___soname_flags = \
        $(SONAME_FLAG)$(DLLPREFIX)$(WXDLLNAMEPREFIXGUI)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG)$(__stcdll___targetsuf2)
 @COND_USE_SOVERSION_0@__stcdll___targetsuf3 = .$(SO_SUFFIX)
 COND_USE_SOVERLINUX_1___stcdll___soname_flags = \
        $(SONAME_FLAG)$(DLLPREFIX)$(WXDLLNAMEPREFIXGUI)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG)$(__stcdll___targetsuf2)
@@ -336,7 +340,7 @@ clean:
        rm -f $(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc-$(WX_RELEASE)$(HOST_SUFFIX)$(LIBEXT)
 
 distclean: clean
        rm -f $(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc-$(WX_RELEASE)$(HOST_SUFFIX)$(LIBEXT)
 
 distclean: clean
-       rm -f configure config.cache config.log config.status bk-deps bk-make-pch shared-ld-sh Makefile
+       rm -f config.cache config.log config.status bk-deps bk-make-pch shared-ld-sh Makefile
 
 @COND_SHARED_1@$(LIBDIRNAME)/$(DLLPREFIX)$(WXDLLNAMEPREFIXGUI)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG)$(__stcdll___targetsuf3): $(STCDLL_OBJECTS)
 @COND_SHARED_1@        $(SHARED_LD_CXX) $@ $(STCDLL_OBJECTS) $(LDFLAGS)   -L$(LIBDIRNAME) $(__stcdll___macinstnamecmd) $(__stcdll___importlib) $(__stcdll___soname_flags) $(__stcdll___macver)  $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) $(__LIB_ZLIB_p) $(__LIB_ODBC_p) $(__LIB_REGEX_p) $(__LIB_EXPAT_p) $(EXTRALIBS_FOR_BASE) $(EXTRALIBS_FOR_GUI) $(__WXLIB_CORE_p)  $(__WXLIB_BASE_p)
 
 @COND_SHARED_1@$(LIBDIRNAME)/$(DLLPREFIX)$(WXDLLNAMEPREFIXGUI)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG)$(__stcdll___targetsuf3): $(STCDLL_OBJECTS)
 @COND_SHARED_1@        $(SHARED_LD_CXX) $@ $(STCDLL_OBJECTS) $(LDFLAGS)   -L$(LIBDIRNAME) $(__stcdll___macinstnamecmd) $(__stcdll___importlib) $(__stcdll___soname_flags) $(__stcdll___macver)  $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) $(__LIB_ZLIB_p) $(__LIB_ODBC_p) $(__LIB_REGEX_p) $(__LIB_EXPAT_p) $(EXTRALIBS_FOR_BASE) $(EXTRALIBS_FOR_GUI) $(__WXLIB_CORE_p)  $(__WXLIB_BASE_p)
@@ -359,418 +363,430 @@ distclean: clean
 @COND_SHARED_0@        $(INSTALL_DATA) $(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc-$(WX_RELEASE)$(HOST_SUFFIX)$(LIBEXT) $(DESTDIR)$(libdir)
 
 stcdll_PlatWX.o: $(srcdir)/PlatWX.cpp
 @COND_SHARED_0@        $(INSTALL_DATA) $(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc-$(WX_RELEASE)$(HOST_SUFFIX)$(LIBEXT) $(DESTDIR)$(libdir)
 
 stcdll_PlatWX.o: $(srcdir)/PlatWX.cpp
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/PlatWX.cpp
 
 stcdll_ScintillaWX.o: $(srcdir)/ScintillaWX.cpp
 
 stcdll_ScintillaWX.o: $(srcdir)/ScintillaWX.cpp
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/ScintillaWX.cpp
 
 stcdll_stc.o: $(srcdir)/stc.cpp
 
 stcdll_stc.o: $(srcdir)/stc.cpp
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/stc.cpp
 
 stcdll_AutoComplete.o: $(srcdir)/scintilla/src/AutoComplete.cxx
 
 stcdll_AutoComplete.o: $(srcdir)/scintilla/src/AutoComplete.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/AutoComplete.cxx
 
 stcdll_CallTip.o: $(srcdir)/scintilla/src/CallTip.cxx
 
 stcdll_CallTip.o: $(srcdir)/scintilla/src/CallTip.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/CallTip.cxx
 
 stcdll_CellBuffer.o: $(srcdir)/scintilla/src/CellBuffer.cxx
 
 stcdll_CellBuffer.o: $(srcdir)/scintilla/src/CellBuffer.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/CellBuffer.cxx
 
 stcdll_ContractionState.o: $(srcdir)/scintilla/src/ContractionState.cxx
 
 stcdll_ContractionState.o: $(srcdir)/scintilla/src/ContractionState.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
-
-stcdll_DocumentAccessor.o: $(srcdir)/scintilla/src/DocumentAccessor.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/ContractionState.cxx
 
 stcdll_Document.o: $(srcdir)/scintilla/src/Document.cxx
 
 stcdll_Document.o: $(srcdir)/scintilla/src/Document.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/Document.cxx
+
+stcdll_DocumentAccessor.o: $(srcdir)/scintilla/src/DocumentAccessor.cxx
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/DocumentAccessor.cxx
 
 stcdll_Editor.o: $(srcdir)/scintilla/src/Editor.cxx
 
 stcdll_Editor.o: $(srcdir)/scintilla/src/Editor.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/Editor.cxx
 
 stcdll_ExternalLexer.o: $(srcdir)/scintilla/src/ExternalLexer.cxx
 
 stcdll_ExternalLexer.o: $(srcdir)/scintilla/src/ExternalLexer.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/ExternalLexer.cxx
 
 stcdll_Indicator.o: $(srcdir)/scintilla/src/Indicator.cxx
 
 stcdll_Indicator.o: $(srcdir)/scintilla/src/Indicator.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/Indicator.cxx
 
 stcdll_KeyMap.o: $(srcdir)/scintilla/src/KeyMap.cxx
 
 stcdll_KeyMap.o: $(srcdir)/scintilla/src/KeyMap.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/KeyMap.cxx
 
 stcdll_KeyWords.o: $(srcdir)/scintilla/src/KeyWords.cxx
 
 stcdll_KeyWords.o: $(srcdir)/scintilla/src/KeyWords.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/KeyWords.cxx
 
 stcdll_LexAPDL.o: $(srcdir)/scintilla/src/LexAPDL.cxx
 
 stcdll_LexAPDL.o: $(srcdir)/scintilla/src/LexAPDL.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexAPDL.cxx
 
 stcdll_LexAU3.o: $(srcdir)/scintilla/src/LexAU3.cxx
 
 stcdll_LexAU3.o: $(srcdir)/scintilla/src/LexAU3.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexAU3.cxx
 
 stcdll_LexAVE.o: $(srcdir)/scintilla/src/LexAVE.cxx
 
 stcdll_LexAVE.o: $(srcdir)/scintilla/src/LexAVE.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexAVE.cxx
 
 stcdll_LexAda.o: $(srcdir)/scintilla/src/LexAda.cxx
 
 stcdll_LexAda.o: $(srcdir)/scintilla/src/LexAda.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexAda.cxx
 
 stcdll_LexAsm.o: $(srcdir)/scintilla/src/LexAsm.cxx
 
 stcdll_LexAsm.o: $(srcdir)/scintilla/src/LexAsm.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexAsm.cxx
+
+stcdll_LexAsn1.o: $(srcdir)/scintilla/src/LexAsn1.cxx
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexAsn1.cxx
 
 stcdll_LexBaan.o: $(srcdir)/scintilla/src/LexBaan.cxx
 
 stcdll_LexBaan.o: $(srcdir)/scintilla/src/LexBaan.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexBaan.cxx
 
 stcdll_LexBash.o: $(srcdir)/scintilla/src/LexBash.cxx
 
 stcdll_LexBash.o: $(srcdir)/scintilla/src/LexBash.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexBash.cxx
 
 stcdll_LexBullant.o: $(srcdir)/scintilla/src/LexBullant.cxx
 
 stcdll_LexBullant.o: $(srcdir)/scintilla/src/LexBullant.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexBullant.cxx
 
 stcdll_LexCLW.o: $(srcdir)/scintilla/src/LexCLW.cxx
 
 stcdll_LexCLW.o: $(srcdir)/scintilla/src/LexCLW.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexCLW.cxx
 
 stcdll_LexCPP.o: $(srcdir)/scintilla/src/LexCPP.cxx
 
 stcdll_LexCPP.o: $(srcdir)/scintilla/src/LexCPP.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexCPP.cxx
 
 stcdll_LexCSS.o: $(srcdir)/scintilla/src/LexCSS.cxx
 
 stcdll_LexCSS.o: $(srcdir)/scintilla/src/LexCSS.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexCSS.cxx
 
 stcdll_LexConf.o: $(srcdir)/scintilla/src/LexConf.cxx
 
 stcdll_LexConf.o: $(srcdir)/scintilla/src/LexConf.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexConf.cxx
 
 stcdll_LexCrontab.o: $(srcdir)/scintilla/src/LexCrontab.cxx
 
 stcdll_LexCrontab.o: $(srcdir)/scintilla/src/LexCrontab.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexCrontab.cxx
 
 stcdll_LexEScript.o: $(srcdir)/scintilla/src/LexEScript.cxx
 
 stcdll_LexEScript.o: $(srcdir)/scintilla/src/LexEScript.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexEScript.cxx
 
 stcdll_LexEiffel.o: $(srcdir)/scintilla/src/LexEiffel.cxx
 
 stcdll_LexEiffel.o: $(srcdir)/scintilla/src/LexEiffel.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexEiffel.cxx
 
 stcdll_LexErlang.o: $(srcdir)/scintilla/src/LexErlang.cxx
 
 stcdll_LexErlang.o: $(srcdir)/scintilla/src/LexErlang.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexErlang.cxx
 
 stcdll_LexForth.o: $(srcdir)/scintilla/src/LexForth.cxx
 
 stcdll_LexForth.o: $(srcdir)/scintilla/src/LexForth.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexForth.cxx
 
 stcdll_LexFortran.o: $(srcdir)/scintilla/src/LexFortran.cxx
 
 stcdll_LexFortran.o: $(srcdir)/scintilla/src/LexFortran.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexFortran.cxx
 
 stcdll_LexGui4Cli.o: $(srcdir)/scintilla/src/LexGui4Cli.cxx
 
 stcdll_LexGui4Cli.o: $(srcdir)/scintilla/src/LexGui4Cli.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexGui4Cli.cxx
 
 stcdll_LexHTML.o: $(srcdir)/scintilla/src/LexHTML.cxx
 
 stcdll_LexHTML.o: $(srcdir)/scintilla/src/LexHTML.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexHTML.cxx
 
 stcdll_LexKix.o: $(srcdir)/scintilla/src/LexKix.cxx
 
 stcdll_LexKix.o: $(srcdir)/scintilla/src/LexKix.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexKix.cxx
 
 stcdll_LexLisp.o: $(srcdir)/scintilla/src/LexLisp.cxx
 
 stcdll_LexLisp.o: $(srcdir)/scintilla/src/LexLisp.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexLisp.cxx
 
 stcdll_LexLout.o: $(srcdir)/scintilla/src/LexLout.cxx
 
 stcdll_LexLout.o: $(srcdir)/scintilla/src/LexLout.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexLout.cxx
 
 stcdll_LexLua.o: $(srcdir)/scintilla/src/LexLua.cxx
 
 stcdll_LexLua.o: $(srcdir)/scintilla/src/LexLua.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexLua.cxx
 
 stcdll_LexMMIXAL.o: $(srcdir)/scintilla/src/LexMMIXAL.cxx
 
 stcdll_LexMMIXAL.o: $(srcdir)/scintilla/src/LexMMIXAL.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexMMIXAL.cxx
 
 stcdll_LexMPT.o: $(srcdir)/scintilla/src/LexMPT.cxx
 
 stcdll_LexMPT.o: $(srcdir)/scintilla/src/LexMPT.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexMPT.cxx
 
 stcdll_LexMSSQL.o: $(srcdir)/scintilla/src/LexMSSQL.cxx
 
 stcdll_LexMSSQL.o: $(srcdir)/scintilla/src/LexMSSQL.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexMSSQL.cxx
 
 stcdll_LexMatlab.o: $(srcdir)/scintilla/src/LexMatlab.cxx
 
 stcdll_LexMatlab.o: $(srcdir)/scintilla/src/LexMatlab.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexMatlab.cxx
 
 stcdll_LexMetapost.o: $(srcdir)/scintilla/src/LexMetapost.cxx
 
 stcdll_LexMetapost.o: $(srcdir)/scintilla/src/LexMetapost.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexMetapost.cxx
 
 stcdll_LexNsis.o: $(srcdir)/scintilla/src/LexNsis.cxx
 
 stcdll_LexNsis.o: $(srcdir)/scintilla/src/LexNsis.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexNsis.cxx
 
 stcdll_LexOthers.o: $(srcdir)/scintilla/src/LexOthers.cxx
 
 stcdll_LexOthers.o: $(srcdir)/scintilla/src/LexOthers.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexOthers.cxx
 
 stcdll_LexPB.o: $(srcdir)/scintilla/src/LexPB.cxx
 
 stcdll_LexPB.o: $(srcdir)/scintilla/src/LexPB.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexPB.cxx
 
 stcdll_LexPOV.o: $(srcdir)/scintilla/src/LexPOV.cxx
 
 stcdll_LexPOV.o: $(srcdir)/scintilla/src/LexPOV.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexPOV.cxx
 
 stcdll_LexPS.o: $(srcdir)/scintilla/src/LexPS.cxx
 
 stcdll_LexPS.o: $(srcdir)/scintilla/src/LexPS.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexPS.cxx
 
 stcdll_LexPascal.o: $(srcdir)/scintilla/src/LexPascal.cxx
 
 stcdll_LexPascal.o: $(srcdir)/scintilla/src/LexPascal.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexPascal.cxx
 
 stcdll_LexPerl.o: $(srcdir)/scintilla/src/LexPerl.cxx
 
 stcdll_LexPerl.o: $(srcdir)/scintilla/src/LexPerl.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexPerl.cxx
 
 stcdll_LexPython.o: $(srcdir)/scintilla/src/LexPython.cxx
 
 stcdll_LexPython.o: $(srcdir)/scintilla/src/LexPython.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexPython.cxx
 
 stcdll_LexRuby.o: $(srcdir)/scintilla/src/LexRuby.cxx
 
 stcdll_LexRuby.o: $(srcdir)/scintilla/src/LexRuby.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexRuby.cxx
 
 stcdll_LexSQL.o: $(srcdir)/scintilla/src/LexSQL.cxx
 
 stcdll_LexSQL.o: $(srcdir)/scintilla/src/LexSQL.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexSQL.cxx
 
 stcdll_LexScriptol.o: $(srcdir)/scintilla/src/LexScriptol.cxx
 
 stcdll_LexScriptol.o: $(srcdir)/scintilla/src/LexScriptol.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexScriptol.cxx
 
 stcdll_LexSpecman.o: $(srcdir)/scintilla/src/LexSpecman.cxx
 
 stcdll_LexSpecman.o: $(srcdir)/scintilla/src/LexSpecman.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexSpecman.cxx
 
 stcdll_LexTeX.o: $(srcdir)/scintilla/src/LexTeX.cxx
 
 stcdll_LexTeX.o: $(srcdir)/scintilla/src/LexTeX.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexTeX.cxx
 
 stcdll_LexVB.o: $(srcdir)/scintilla/src/LexVB.cxx
 
 stcdll_LexVB.o: $(srcdir)/scintilla/src/LexVB.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexVB.cxx
+
+stcdll_LexVHDL.o: $(srcdir)/scintilla/src/LexVHDL.cxx
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexVHDL.cxx
 
 stcdll_LexVerilog.o: $(srcdir)/scintilla/src/LexVerilog.cxx
 
 stcdll_LexVerilog.o: $(srcdir)/scintilla/src/LexVerilog.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexVerilog.cxx
 
 stcdll_LexYAML.o: $(srcdir)/scintilla/src/LexYAML.cxx
 
 stcdll_LexYAML.o: $(srcdir)/scintilla/src/LexYAML.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexYAML.cxx
 
 stcdll_LineMarker.o: $(srcdir)/scintilla/src/LineMarker.cxx
 
 stcdll_LineMarker.o: $(srcdir)/scintilla/src/LineMarker.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LineMarker.cxx
 
 stcdll_PropSet.o: $(srcdir)/scintilla/src/PropSet.cxx
 
 stcdll_PropSet.o: $(srcdir)/scintilla/src/PropSet.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/PropSet.cxx
 
 stcdll_RESearch.o: $(srcdir)/scintilla/src/RESearch.cxx
 
 stcdll_RESearch.o: $(srcdir)/scintilla/src/RESearch.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/RESearch.cxx
 
 stcdll_ScintillaBase.o: $(srcdir)/scintilla/src/ScintillaBase.cxx
 
 stcdll_ScintillaBase.o: $(srcdir)/scintilla/src/ScintillaBase.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
-
-stcdll_StyleContext.o: $(srcdir)/scintilla/src/StyleContext.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/ScintillaBase.cxx
 
 stcdll_Style.o: $(srcdir)/scintilla/src/Style.cxx
 
 stcdll_Style.o: $(srcdir)/scintilla/src/Style.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/Style.cxx
+
+stcdll_StyleContext.o: $(srcdir)/scintilla/src/StyleContext.cxx
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/StyleContext.cxx
 
 stcdll_UniConversion.o: $(srcdir)/scintilla/src/UniConversion.cxx
 
 stcdll_UniConversion.o: $(srcdir)/scintilla/src/UniConversion.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/UniConversion.cxx
 
 stcdll_ViewStyle.o: $(srcdir)/scintilla/src/ViewStyle.cxx
 
 stcdll_ViewStyle.o: $(srcdir)/scintilla/src/ViewStyle.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/ViewStyle.cxx
 
 stcdll_WindowAccessor.o: $(srcdir)/scintilla/src/WindowAccessor.cxx
 
 stcdll_WindowAccessor.o: $(srcdir)/scintilla/src/WindowAccessor.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/WindowAccessor.cxx
 
 stcdll_XPM.o: $(srcdir)/scintilla/src/XPM.cxx
 
 stcdll_XPM.o: $(srcdir)/scintilla/src/XPM.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/XPM.cxx
 
 stclib_PlatWX.o: $(srcdir)/PlatWX.cpp
 
 stclib_PlatWX.o: $(srcdir)/PlatWX.cpp
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/PlatWX.cpp
 
 stclib_ScintillaWX.o: $(srcdir)/ScintillaWX.cpp
 
 stclib_ScintillaWX.o: $(srcdir)/ScintillaWX.cpp
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/ScintillaWX.cpp
 
 stclib_stc.o: $(srcdir)/stc.cpp
 
 stclib_stc.o: $(srcdir)/stc.cpp
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/stc.cpp
 
 stclib_AutoComplete.o: $(srcdir)/scintilla/src/AutoComplete.cxx
 
 stclib_AutoComplete.o: $(srcdir)/scintilla/src/AutoComplete.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/AutoComplete.cxx
 
 stclib_CallTip.o: $(srcdir)/scintilla/src/CallTip.cxx
 
 stclib_CallTip.o: $(srcdir)/scintilla/src/CallTip.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/CallTip.cxx
 
 stclib_CellBuffer.o: $(srcdir)/scintilla/src/CellBuffer.cxx
 
 stclib_CellBuffer.o: $(srcdir)/scintilla/src/CellBuffer.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/CellBuffer.cxx
 
 stclib_ContractionState.o: $(srcdir)/scintilla/src/ContractionState.cxx
 
 stclib_ContractionState.o: $(srcdir)/scintilla/src/ContractionState.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
-
-stclib_DocumentAccessor.o: $(srcdir)/scintilla/src/DocumentAccessor.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/ContractionState.cxx
 
 stclib_Document.o: $(srcdir)/scintilla/src/Document.cxx
 
 stclib_Document.o: $(srcdir)/scintilla/src/Document.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/Document.cxx
+
+stclib_DocumentAccessor.o: $(srcdir)/scintilla/src/DocumentAccessor.cxx
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/DocumentAccessor.cxx
 
 stclib_Editor.o: $(srcdir)/scintilla/src/Editor.cxx
 
 stclib_Editor.o: $(srcdir)/scintilla/src/Editor.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/Editor.cxx
 
 stclib_ExternalLexer.o: $(srcdir)/scintilla/src/ExternalLexer.cxx
 
 stclib_ExternalLexer.o: $(srcdir)/scintilla/src/ExternalLexer.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/ExternalLexer.cxx
 
 stclib_Indicator.o: $(srcdir)/scintilla/src/Indicator.cxx
 
 stclib_Indicator.o: $(srcdir)/scintilla/src/Indicator.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/Indicator.cxx
 
 stclib_KeyMap.o: $(srcdir)/scintilla/src/KeyMap.cxx
 
 stclib_KeyMap.o: $(srcdir)/scintilla/src/KeyMap.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/KeyMap.cxx
 
 stclib_KeyWords.o: $(srcdir)/scintilla/src/KeyWords.cxx
 
 stclib_KeyWords.o: $(srcdir)/scintilla/src/KeyWords.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/KeyWords.cxx
 
 stclib_LexAPDL.o: $(srcdir)/scintilla/src/LexAPDL.cxx
 
 stclib_LexAPDL.o: $(srcdir)/scintilla/src/LexAPDL.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexAPDL.cxx
 
 stclib_LexAU3.o: $(srcdir)/scintilla/src/LexAU3.cxx
 
 stclib_LexAU3.o: $(srcdir)/scintilla/src/LexAU3.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexAU3.cxx
 
 stclib_LexAVE.o: $(srcdir)/scintilla/src/LexAVE.cxx
 
 stclib_LexAVE.o: $(srcdir)/scintilla/src/LexAVE.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexAVE.cxx
 
 stclib_LexAda.o: $(srcdir)/scintilla/src/LexAda.cxx
 
 stclib_LexAda.o: $(srcdir)/scintilla/src/LexAda.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexAda.cxx
 
 stclib_LexAsm.o: $(srcdir)/scintilla/src/LexAsm.cxx
 
 stclib_LexAsm.o: $(srcdir)/scintilla/src/LexAsm.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexAsm.cxx
+
+stclib_LexAsn1.o: $(srcdir)/scintilla/src/LexAsn1.cxx
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexAsn1.cxx
 
 stclib_LexBaan.o: $(srcdir)/scintilla/src/LexBaan.cxx
 
 stclib_LexBaan.o: $(srcdir)/scintilla/src/LexBaan.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexBaan.cxx
 
 stclib_LexBash.o: $(srcdir)/scintilla/src/LexBash.cxx
 
 stclib_LexBash.o: $(srcdir)/scintilla/src/LexBash.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexBash.cxx
 
 stclib_LexBullant.o: $(srcdir)/scintilla/src/LexBullant.cxx
 
 stclib_LexBullant.o: $(srcdir)/scintilla/src/LexBullant.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexBullant.cxx
 
 stclib_LexCLW.o: $(srcdir)/scintilla/src/LexCLW.cxx
 
 stclib_LexCLW.o: $(srcdir)/scintilla/src/LexCLW.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexCLW.cxx
 
 stclib_LexCPP.o: $(srcdir)/scintilla/src/LexCPP.cxx
 
 stclib_LexCPP.o: $(srcdir)/scintilla/src/LexCPP.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexCPP.cxx
 
 stclib_LexCSS.o: $(srcdir)/scintilla/src/LexCSS.cxx
 
 stclib_LexCSS.o: $(srcdir)/scintilla/src/LexCSS.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexCSS.cxx
 
 stclib_LexConf.o: $(srcdir)/scintilla/src/LexConf.cxx
 
 stclib_LexConf.o: $(srcdir)/scintilla/src/LexConf.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexConf.cxx
 
 stclib_LexCrontab.o: $(srcdir)/scintilla/src/LexCrontab.cxx
 
 stclib_LexCrontab.o: $(srcdir)/scintilla/src/LexCrontab.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexCrontab.cxx
 
 stclib_LexEScript.o: $(srcdir)/scintilla/src/LexEScript.cxx
 
 stclib_LexEScript.o: $(srcdir)/scintilla/src/LexEScript.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexEScript.cxx
 
 stclib_LexEiffel.o: $(srcdir)/scintilla/src/LexEiffel.cxx
 
 stclib_LexEiffel.o: $(srcdir)/scintilla/src/LexEiffel.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexEiffel.cxx
 
 stclib_LexErlang.o: $(srcdir)/scintilla/src/LexErlang.cxx
 
 stclib_LexErlang.o: $(srcdir)/scintilla/src/LexErlang.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexErlang.cxx
 
 stclib_LexForth.o: $(srcdir)/scintilla/src/LexForth.cxx
 
 stclib_LexForth.o: $(srcdir)/scintilla/src/LexForth.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexForth.cxx
 
 stclib_LexFortran.o: $(srcdir)/scintilla/src/LexFortran.cxx
 
 stclib_LexFortran.o: $(srcdir)/scintilla/src/LexFortran.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexFortran.cxx
 
 stclib_LexGui4Cli.o: $(srcdir)/scintilla/src/LexGui4Cli.cxx
 
 stclib_LexGui4Cli.o: $(srcdir)/scintilla/src/LexGui4Cli.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexGui4Cli.cxx
 
 stclib_LexHTML.o: $(srcdir)/scintilla/src/LexHTML.cxx
 
 stclib_LexHTML.o: $(srcdir)/scintilla/src/LexHTML.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexHTML.cxx
 
 stclib_LexKix.o: $(srcdir)/scintilla/src/LexKix.cxx
 
 stclib_LexKix.o: $(srcdir)/scintilla/src/LexKix.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexKix.cxx
 
 stclib_LexLisp.o: $(srcdir)/scintilla/src/LexLisp.cxx
 
 stclib_LexLisp.o: $(srcdir)/scintilla/src/LexLisp.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexLisp.cxx
 
 stclib_LexLout.o: $(srcdir)/scintilla/src/LexLout.cxx
 
 stclib_LexLout.o: $(srcdir)/scintilla/src/LexLout.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexLout.cxx
 
 stclib_LexLua.o: $(srcdir)/scintilla/src/LexLua.cxx
 
 stclib_LexLua.o: $(srcdir)/scintilla/src/LexLua.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexLua.cxx
 
 stclib_LexMMIXAL.o: $(srcdir)/scintilla/src/LexMMIXAL.cxx
 
 stclib_LexMMIXAL.o: $(srcdir)/scintilla/src/LexMMIXAL.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexMMIXAL.cxx
 
 stclib_LexMPT.o: $(srcdir)/scintilla/src/LexMPT.cxx
 
 stclib_LexMPT.o: $(srcdir)/scintilla/src/LexMPT.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexMPT.cxx
 
 stclib_LexMSSQL.o: $(srcdir)/scintilla/src/LexMSSQL.cxx
 
 stclib_LexMSSQL.o: $(srcdir)/scintilla/src/LexMSSQL.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexMSSQL.cxx
 
 stclib_LexMatlab.o: $(srcdir)/scintilla/src/LexMatlab.cxx
 
 stclib_LexMatlab.o: $(srcdir)/scintilla/src/LexMatlab.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexMatlab.cxx
 
 stclib_LexMetapost.o: $(srcdir)/scintilla/src/LexMetapost.cxx
 
 stclib_LexMetapost.o: $(srcdir)/scintilla/src/LexMetapost.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexMetapost.cxx
 
 stclib_LexNsis.o: $(srcdir)/scintilla/src/LexNsis.cxx
 
 stclib_LexNsis.o: $(srcdir)/scintilla/src/LexNsis.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexNsis.cxx
 
 stclib_LexOthers.o: $(srcdir)/scintilla/src/LexOthers.cxx
 
 stclib_LexOthers.o: $(srcdir)/scintilla/src/LexOthers.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexOthers.cxx
 
 stclib_LexPB.o: $(srcdir)/scintilla/src/LexPB.cxx
 
 stclib_LexPB.o: $(srcdir)/scintilla/src/LexPB.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexPB.cxx
 
 stclib_LexPOV.o: $(srcdir)/scintilla/src/LexPOV.cxx
 
 stclib_LexPOV.o: $(srcdir)/scintilla/src/LexPOV.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexPOV.cxx
 
 stclib_LexPS.o: $(srcdir)/scintilla/src/LexPS.cxx
 
 stclib_LexPS.o: $(srcdir)/scintilla/src/LexPS.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexPS.cxx
 
 stclib_LexPascal.o: $(srcdir)/scintilla/src/LexPascal.cxx
 
 stclib_LexPascal.o: $(srcdir)/scintilla/src/LexPascal.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexPascal.cxx
 
 stclib_LexPerl.o: $(srcdir)/scintilla/src/LexPerl.cxx
 
 stclib_LexPerl.o: $(srcdir)/scintilla/src/LexPerl.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexPerl.cxx
 
 stclib_LexPython.o: $(srcdir)/scintilla/src/LexPython.cxx
 
 stclib_LexPython.o: $(srcdir)/scintilla/src/LexPython.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexPython.cxx
 
 stclib_LexRuby.o: $(srcdir)/scintilla/src/LexRuby.cxx
 
 stclib_LexRuby.o: $(srcdir)/scintilla/src/LexRuby.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexRuby.cxx
 
 stclib_LexSQL.o: $(srcdir)/scintilla/src/LexSQL.cxx
 
 stclib_LexSQL.o: $(srcdir)/scintilla/src/LexSQL.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexSQL.cxx
 
 stclib_LexScriptol.o: $(srcdir)/scintilla/src/LexScriptol.cxx
 
 stclib_LexScriptol.o: $(srcdir)/scintilla/src/LexScriptol.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexScriptol.cxx
 
 stclib_LexSpecman.o: $(srcdir)/scintilla/src/LexSpecman.cxx
 
 stclib_LexSpecman.o: $(srcdir)/scintilla/src/LexSpecman.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexSpecman.cxx
 
 stclib_LexTeX.o: $(srcdir)/scintilla/src/LexTeX.cxx
 
 stclib_LexTeX.o: $(srcdir)/scintilla/src/LexTeX.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexTeX.cxx
 
 stclib_LexVB.o: $(srcdir)/scintilla/src/LexVB.cxx
 
 stclib_LexVB.o: $(srcdir)/scintilla/src/LexVB.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexVB.cxx
+
+stclib_LexVHDL.o: $(srcdir)/scintilla/src/LexVHDL.cxx
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexVHDL.cxx
 
 stclib_LexVerilog.o: $(srcdir)/scintilla/src/LexVerilog.cxx
 
 stclib_LexVerilog.o: $(srcdir)/scintilla/src/LexVerilog.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexVerilog.cxx
 
 stclib_LexYAML.o: $(srcdir)/scintilla/src/LexYAML.cxx
 
 stclib_LexYAML.o: $(srcdir)/scintilla/src/LexYAML.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexYAML.cxx
 
 stclib_LineMarker.o: $(srcdir)/scintilla/src/LineMarker.cxx
 
 stclib_LineMarker.o: $(srcdir)/scintilla/src/LineMarker.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LineMarker.cxx
 
 stclib_PropSet.o: $(srcdir)/scintilla/src/PropSet.cxx
 
 stclib_PropSet.o: $(srcdir)/scintilla/src/PropSet.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/PropSet.cxx
 
 stclib_RESearch.o: $(srcdir)/scintilla/src/RESearch.cxx
 
 stclib_RESearch.o: $(srcdir)/scintilla/src/RESearch.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/RESearch.cxx
 
 stclib_ScintillaBase.o: $(srcdir)/scintilla/src/ScintillaBase.cxx
 
 stclib_ScintillaBase.o: $(srcdir)/scintilla/src/ScintillaBase.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
-
-stclib_StyleContext.o: $(srcdir)/scintilla/src/StyleContext.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/ScintillaBase.cxx
 
 stclib_Style.o: $(srcdir)/scintilla/src/Style.cxx
 
 stclib_Style.o: $(srcdir)/scintilla/src/Style.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/Style.cxx
+
+stclib_StyleContext.o: $(srcdir)/scintilla/src/StyleContext.cxx
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/StyleContext.cxx
 
 stclib_UniConversion.o: $(srcdir)/scintilla/src/UniConversion.cxx
 
 stclib_UniConversion.o: $(srcdir)/scintilla/src/UniConversion.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/UniConversion.cxx
 
 stclib_ViewStyle.o: $(srcdir)/scintilla/src/ViewStyle.cxx
 
 stclib_ViewStyle.o: $(srcdir)/scintilla/src/ViewStyle.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/ViewStyle.cxx
 
 stclib_WindowAccessor.o: $(srcdir)/scintilla/src/WindowAccessor.cxx
 
 stclib_WindowAccessor.o: $(srcdir)/scintilla/src/WindowAccessor.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/WindowAccessor.cxx
 
 stclib_XPM.o: $(srcdir)/scintilla/src/XPM.cxx
 
 stclib_XPM.o: $(srcdir)/scintilla/src/XPM.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/XPM.cxx
 
 
 # Include dependency info, if present:
 
 
 # Include dependency info, if present:
index 41b3a5a06d089c654d50d4dcf3aa2fbb86a6b92b..796f06e0c8f03ac927b8e2fa36f0763a9d507fbb 100644 (file)
@@ -539,7 +539,8 @@ long ScintillaWX::WndProc(unsigned int iMessage, unsigned long wParam, long lPar
                                           defn,
                                           vs.styles[STYLE_DEFAULT].fontName,
                                           vs.styles[STYLE_DEFAULT].sizeZoomed,
                                           defn,
                                           vs.styles[STYLE_DEFAULT].fontName,
                                           vs.styles[STYLE_DEFAULT].sizeZoomed,
-                                          IsUnicodeMode(),
+                                          CodePage(),
+                                          vs.styles[STYLE_DEFAULT].characterSet,
                                           wMain);
           // If the call-tip window would be out of the client
           // space, adjust so it displays above the text.
                                           wMain);
           // If the call-tip window would be out of the client
           // space, adjust so it displays above the text.
index 541dd96ee880dd3408e108f3587da8380e891b5b..6e0a0aee90770c073644b161bfde18d911844b91 100644 (file)
@@ -501,6 +501,11 @@ methodOverrideMap = {
          return SendMsg(%s, strlen(buf), (long)(const char*)buf);''',
      0),
 
          return SendMsg(%s, strlen(buf), (long)(const char*)buf);''',
      0),
 
+    # not sure what to do about these yet
+    'TargetAsUTF8' :       ( None, 0, 0, 0),
+    'SetLengthForEncode' : ( None, 0, 0, 0),
+    'EncodedFromUTF8' :    ( None, 0, 0, 0),
+    
 
     'GetDocPointer' :
     (0,
 
     'GetDocPointer' :
     (0,
index 25dca357b17b24068edf3ed461726ca16dc43c80..fce427d5d11dfc75b6bf312ea3f3198f8b021914 100644 (file)
@@ -3,5 +3,5 @@ scintilla/include directories from the Scintilla/SCiTE source
 distribution.  All other code needed to implement Scintilla on top of
 wxWindows is located in the directory above this one.
 
 distribution.  All other code needed to implement Scintilla on top of
 wxWindows is located in the directory above this one.
 
-The current version of the Scintilla code is 1.61
+The current version of the Scintilla code is 1.62
 
 
index e6385da71ddf818c245c11d665e81a64e35ffbb0..f0c0b84d17103be352a5aeac065191dff1568870 100644 (file)
@@ -69,7 +69,7 @@ public:
        int x;
        int y;
 
        int x;
        int y;
 
-       Point(int x_=0, int y_=0) : x(x_), y(y_) {
+       explicit Point(int x_=0, int y_=0) : x(x_), y(y_) {
        }
 
        // Other automatically defined methods (assignment, copy constructor, destructor) are fine
        }
 
        // Other automatically defined methods (assignment, copy constructor, destructor) are fine
index 0b4c2f58de2046a4a95d06e9769ff79cae2f187d..32aea8a0c7f59ce6b7f7873d3d47593e44c9e060 100644 (file)
@@ -39,12 +39,14 @@ protected:
                return ret;
        }
        static bool IncludesVar(const char *value, const char *key);
                return ret;
        }
        static bool IncludesVar(const char *value, const char *key);
+
 public:
        PropSet *superPS;
        PropSet();
        ~PropSet();
        void Set(const char *key, const char *val, int lenKey=-1, int lenVal=-1);
        void Set(const char *keyVal);
 public:
        PropSet *superPS;
        PropSet();
        ~PropSet();
        void Set(const char *key, const char *val, int lenKey=-1, int lenVal=-1);
        void Set(const char *keyVal);
+       void Unset(const char *key, int lenKey=-1);
        void SetMultiple(const char *s);
        SString Get(const char *key);
        SString GetExpanded(const char *key);
        void SetMultiple(const char *s);
        SString Get(const char *key);
        SString GetExpanded(const char *key);
@@ -85,9 +87,9 @@ public:
        char *Allocate(int size);
        void SetFromAllocated();
        bool InList(const char *s);
        char *Allocate(int size);
        void SetFromAllocated();
        bool InList(const char *s);
-       const char *GetNearestWord(const char *wordStart, int searchLen = -1,
+       const char *GetNearestWord(const char *wordStart, int searchLen,
                bool ignoreCase = false, SString wordCharacters="", int wordIndex = -1);
                bool ignoreCase = false, SString wordCharacters="", int wordIndex = -1);
-       char *GetNearestWords(const char *wordStart, int searchLen=-1,
+       char *GetNearestWords(const char *wordStart, int searchLen,
                bool ignoreCase=false, char otherSeparator='\0', bool exactLen=false);
 };
 
                bool ignoreCase=false, char otherSeparator='\0', bool exactLen=false);
 };
 
index 5c8307a59551bbbc805a5d6142a57ee9d6abf81f..ce50a7fab5fed63a4140a473e85a4ee23f01af68 100644 (file)
@@ -77,6 +77,8 @@
 #define SCLEX_AU3 60
 #define SCLEX_APDL 61
 #define SCLEX_BASH 62
 #define SCLEX_AU3 60
 #define SCLEX_APDL 61
 #define SCLEX_BASH 62
+#define SCLEX_ASN1 63
+#define SCLEX_VHDL 64
 #define SCLEX_AUTOMATIC 1000
 #define SCE_P_DEFAULT 0
 #define SCE_P_COMMENTLINE 1
 #define SCLEX_AUTOMATIC 1000
 #define SCE_P_DEFAULT 0
 #define SCE_P_COMMENTLINE 1
 #define SCE_ERR_IFORT 17
 #define SCE_ERR_ABSF 18
 #define SCE_ERR_TIDY 19
 #define SCE_ERR_IFORT 17
 #define SCE_ERR_ABSF 18
 #define SCE_ERR_TIDY 19
+#define SCE_ERR_JAVA_STACK 20
 #define SCE_BAT_DEFAULT 0
 #define SCE_BAT_COMMENT 1
 #define SCE_BAT_WORD 2
 #define SCE_BAT_DEFAULT 0
 #define SCE_BAT_COMMENT 1
 #define SCE_BAT_WORD 2
 #define SCE_CSS_DIRECTIVE 12
 #define SCE_CSS_DOUBLESTRING 13
 #define SCE_CSS_SINGLESTRING 14
 #define SCE_CSS_DIRECTIVE 12
 #define SCE_CSS_DOUBLESTRING 13
 #define SCE_CSS_SINGLESTRING 14
+#define SCE_CSS_IDENTIFIER2 15
 #define SCE_POV_DEFAULT 0
 #define SCE_POV_COMMENT 1
 #define SCE_POV_COMMENTLINE 2
 #define SCE_POV_DEFAULT 0
 #define SCE_POV_COMMENT 1
 #define SCE_POV_COMMENTLINE 2
 #define SCE_AU3_VARIABLE 9
 #define SCE_AU3_SENT 10
 #define SCE_AU3_PREPROCESSOR 11
 #define SCE_AU3_VARIABLE 9
 #define SCE_AU3_SENT 10
 #define SCE_AU3_PREPROCESSOR 11
+#define SCE_AU3_SPECIAL 12
 #define SCE_APDL_DEFAULT 0
 #define SCE_APDL_COMMENT 1
 #define SCE_APDL_COMMENTBLOCK 2
 #define SCE_APDL_NUMBER 3
 #define SCE_APDL_STRING 4
 #define SCE_APDL_DEFAULT 0
 #define SCE_APDL_COMMENT 1
 #define SCE_APDL_COMMENTBLOCK 2
 #define SCE_APDL_NUMBER 3
 #define SCE_APDL_STRING 4
-#define SCE_APDL_WORD 5
-#define SCE_APDL_COMMAND 6
+#define SCE_APDL_OPERATOR 5
+#define SCE_APDL_WORD 6
 #define SCE_APDL_PROCESSOR 7
 #define SCE_APDL_PROCESSOR 7
-#define SCE_APDL_FUNCTION 8
+#define SCE_APDL_COMMAND 8
+#define SCE_APDL_SLASHCOMMAND 9
+#define SCE_APDL_STARCOMMAND 10
+#define SCE_APDL_ARGUMENT 11
+#define SCE_APDL_FUNCTION 12
 #define SCE_SH_DEFAULT 0
 #define SCE_SH_ERROR 1
 #define SCE_SH_COMMENTLINE 2
 #define SCE_SH_DEFAULT 0
 #define SCE_SH_ERROR 1
 #define SCE_SH_COMMENTLINE 2
 #define SCE_SH_BACKTICKS 11
 #define SCE_SH_HERE_DELIM 12
 #define SCE_SH_HERE_Q 13
 #define SCE_SH_BACKTICKS 11
 #define SCE_SH_HERE_DELIM 12
 #define SCE_SH_HERE_Q 13
+#define SCE_ASN1_DEFAULT 0
+#define SCE_ASN1_COMMENT 1
+#define SCE_ASN1_IDENTIFIER 2
+#define SCE_ASN1_STRING 3
+#define SCE_ASN1_OID 4
+#define SCE_ASN1_SCALAR 5
+#define SCE_ASN1_KEYWORD 6
+#define SCE_ASN1_ATTRIBUTE 7
+#define SCE_ASN1_DESCRIPTOR 8
+#define SCE_ASN1_TYPE 9
+#define SCE_ASN1_OPERATOR 10
+#define SCE_VHDL_DEFAULT 0
+#define SCE_VHDL_COMMENT 1
+#define SCE_VHDL_COMMENTLINEBANG 2
+#define SCE_VHDL_NUMBER 3
+#define SCE_VHDL_STRING 4
+#define SCE_VHDL_OPERATOR 5
+#define SCE_VHDL_IDENTIFIER 6
+#define SCE_VHDL_STRINGEOL 7
+#define SCE_VHDL_KEYWORD 8
+#define SCE_VHDL_STDOPERATOR 9
+#define SCE_VHDL_ATTRIBUTE 10
+#define SCE_VHDL_STDFUNCTION 11
+#define SCE_VHDL_STDPACKAGE 12
+#define SCE_VHDL_STDTYPE 13
+#define SCE_VHDL_USERWORD 14
 //--Autogenerated -- end of section automatically generated from Scintilla.iface
 
 #endif
 //--Autogenerated -- end of section automatically generated from Scintilla.iface
 
 #endif
index 1a4e4887228a2be9a0b17b771d3746e7e6cf7dd6..f20f0de22dec345a0545f6bc95a0958a3b545bc4 100644 (file)
@@ -583,6 +583,10 @@ typedef sptr_t (*SciFnDirect)(sptr_t ptr, unsigned int iMessage, uptr_t wParam,
 #define SCI_SETCHARSDEFAULT 2444
 #define SCI_AUTOCGETCURRENT 2445
 #define SCI_ALLOCATE 2446
 #define SCI_SETCHARSDEFAULT 2444
 #define SCI_AUTOCGETCURRENT 2445
 #define SCI_ALLOCATE 2446
+#define SCI_TARGETASUTF8 2447
+#define SCI_SETLENGTHFORENCODE 2448
+#define SCI_ENCODEDFROMUTF8 2449
+#define SCI_FINDCOLUMN 2456
 #define SCI_STARTRECORD 3001
 #define SCI_STOPRECORD 3002
 #define SCI_SETLEXER 4001
 #define SCI_STARTRECORD 3001
 #define SCI_STOPRECORD 3002
 #define SCI_SETLEXER 4001
index fef371328ce7b64432bec109d8ee0f8724968cce..5be763f258d78f748efb24c8dc1469a6ac43e3be 100644 (file)
@@ -1583,6 +1583,23 @@ fun int AutoCGetCurrent=2445(,)
 # Enlarge the document to a particular size of text bytes.
 fun void Allocate=2446(int bytes,)
 
 # Enlarge the document to a particular size of text bytes.
 fun void Allocate=2446(int bytes,)
 
+# Returns the target converted to UTF8.
+# Return the length in bytes.
+fun int TargetAsUTF8=2447(, stringresult s)
+
+# Set the length of the utf8 argument for calling EncodedFromUTF8.
+# Set to 0 and the string will be measured to the first nul.
+fun void SetLengthForEncode=2448(int bytes,)
+
+# Translates a UTF8 string into the document encoding.
+# Return the length of the result in bytes.
+# On error return 0.
+fun int EncodedFromUTF8=2449(string utf8, stringresult encoded)
+
+# Find the position of a column on a line taking into account tabs and 
+# multi-byte characters. If beyond end of line, return line end position.
+fun int FindColumn=2456(int line, int column)
+
 # Start notifying the container of all key presses and commands.
 fun void StartRecord=3001(,)
 
 # Start notifying the container of all key presses and commands.
 fun void StartRecord=3001(,)
 
@@ -1733,6 +1750,8 @@ val SCLEX_SPECMAN=59
 val SCLEX_AU3=60
 val SCLEX_APDL=61
 val SCLEX_BASH=62
 val SCLEX_AU3=60
 val SCLEX_APDL=61
 val SCLEX_BASH=62
+val SCLEX_ASN1=63
+val SCLEX_VHDL=64
 
 # When a lexer specifies its language as SCLEX_AUTOMATIC it receives a
 # value assigned in sequence from SCLEX_AUTOMATIC+1.
 
 # When a lexer specifies its language as SCLEX_AUTOMATIC it receives a
 # value assigned in sequence from SCLEX_AUTOMATIC+1.
@@ -2017,6 +2036,7 @@ val SCE_ERR_IFC=16
 val SCE_ERR_IFORT=17
 val SCE_ERR_ABSF=18
 val SCE_ERR_TIDY=19
 val SCE_ERR_IFORT=17
 val SCE_ERR_ABSF=18
 val SCE_ERR_TIDY=19
+val SCE_ERR_JAVA_STACK=20
 # Lexical states for SCLEX_BATCH
 lex Batch=SCLEX_BATCH SCE_BAT_
 val SCE_BAT_DEFAULT=0
 # Lexical states for SCLEX_BATCH
 lex Batch=SCLEX_BATCH SCE_BAT_
 val SCE_BAT_DEFAULT=0
@@ -2232,6 +2252,7 @@ val SCE_CSS_IMPORTANT=11
 val SCE_CSS_DIRECTIVE=12
 val SCE_CSS_DOUBLESTRING=13
 val SCE_CSS_SINGLESTRING=14
 val SCE_CSS_DIRECTIVE=12
 val SCE_CSS_DOUBLESTRING=13
 val SCE_CSS_SINGLESTRING=14
+val SCE_CSS_IDENTIFIER2=15
 # Lexical states for SCLEX_POV
 lex POV=SCLEX_POV SCE_POV_
 val SCE_POV_DEFAULT=0
 # Lexical states for SCLEX_POV
 lex POV=SCLEX_POV SCE_POV_
 val SCE_POV_DEFAULT=0
@@ -2496,6 +2517,7 @@ val SCE_AU3_OPERATOR=8
 val SCE_AU3_VARIABLE=9
 val SCE_AU3_SENT=10
 val SCE_AU3_PREPROCESSOR=11
 val SCE_AU3_VARIABLE=9
 val SCE_AU3_SENT=10
 val SCE_AU3_PREPROCESSOR=11
+val SCE_AU3_SPECIAL=12
 # Lexical states for SCLEX_APDL
 lex APDL=SCLEX_APDL SCE_APDL_
 val SCE_APDL_DEFAULT=0
 # Lexical states for SCLEX_APDL
 lex APDL=SCLEX_APDL SCE_APDL_
 val SCE_APDL_DEFAULT=0
@@ -2503,10 +2525,14 @@ val SCE_APDL_COMMENT=1
 val SCE_APDL_COMMENTBLOCK=2
 val SCE_APDL_NUMBER=3
 val SCE_APDL_STRING=4
 val SCE_APDL_COMMENTBLOCK=2
 val SCE_APDL_NUMBER=3
 val SCE_APDL_STRING=4
-val SCE_APDL_WORD=5
-val SCE_APDL_COMMAND=6
+val SCE_APDL_OPERATOR=5
+val SCE_APDL_WORD=6
 val SCE_APDL_PROCESSOR=7
 val SCE_APDL_PROCESSOR=7
-val SCE_APDL_FUNCTION=8
+val SCE_APDL_COMMAND=8
+val SCE_APDL_SLASHCOMMAND=9
+val SCE_APDL_STARCOMMAND=10
+val SCE_APDL_ARGUMENT=11
+val SCE_APDL_FUNCTION=12
 # Lexical states for SCLEX_BASH
 lex Bash=SCLEX_BASH SCE_SH_
 val SCE_SH_DEFAULT=0
 # Lexical states for SCLEX_BASH
 lex Bash=SCLEX_BASH SCE_SH_
 val SCE_SH_DEFAULT=0
@@ -2523,6 +2549,37 @@ val SCE_SH_PARAM=10
 val SCE_SH_BACKTICKS=11
 val SCE_SH_HERE_DELIM=12
 val SCE_SH_HERE_Q=13
 val SCE_SH_BACKTICKS=11
 val SCE_SH_HERE_DELIM=12
 val SCE_SH_HERE_Q=13
+# Lexical states for SCLEX_ASN1
+lex Asn1=SCLEX_ASN1 SCE_ASN1_
+val SCE_ASN1_DEFAULT=0
+val SCE_ASN1_COMMENT=1
+val SCE_ASN1_IDENTIFIER=2
+val SCE_ASN1_STRING=3
+val SCE_ASN1_OID=4
+val SCE_ASN1_SCALAR=5
+val SCE_ASN1_KEYWORD=6
+val SCE_ASN1_ATTRIBUTE=7
+val SCE_ASN1_DESCRIPTOR=8
+val SCE_ASN1_TYPE=9
+val SCE_ASN1_OPERATOR=10
+# Lexical states for SCLEX_VHDL
+lex VHDL=SCLEX_VHDL SCE_VHDL_
+val SCE_VHDL_DEFAULT=0
+val SCE_VHDL_COMMENT=1
+val SCE_VHDL_COMMENTLINEBANG=2
+val SCE_VHDL_NUMBER=3
+val SCE_VHDL_STRING=4
+val SCE_VHDL_OPERATOR=5
+val SCE_VHDL_IDENTIFIER=6
+val SCE_VHDL_STRINGEOL=7
+val SCE_VHDL_KEYWORD=8
+val SCE_VHDL_STDOPERATOR=9
+val SCE_VHDL_ATTRIBUTE=10
+val SCE_VHDL_STDFUNCTION=11
+val SCE_VHDL_STDPACKAGE=12
+val SCE_VHDL_STDTYPE=13
+val SCE_VHDL_USERWORD=14
+
 # Events
 
 evt void StyleNeeded=2000(int position)
 # Events
 
 evt void StyleNeeded=2000(int position)
index 93e888d0e6b9f77f7a9d202d8130e806f074df20..003284c12df5f14e8ef85a4669f8d50c2f7b71f7 100644 (file)
@@ -214,7 +214,7 @@ void CallTip::MouseClick(Point pt) {
 
 PRectangle CallTip::CallTipStart(int pos, Point pt, const char *defn,
                                  const char *faceName, int size,
 
 PRectangle CallTip::CallTipStart(int pos, Point pt, const char *defn,
                                  const char *faceName, int size,
-                                 int codePage_, Window &wParent) {
+                                 int codePage_, int characterSet, Window &wParent) {
        clickPlace = 0;
        if (val)
                delete []val;
        clickPlace = 0;
        if (val)
                delete []val;
@@ -234,7 +234,7 @@ PRectangle CallTip::CallTipStart(int pos, Point pt, const char *defn,
        inCallTipMode = true;
        posStartCallTip = pos;
        int deviceHeight = surfaceMeasure->DeviceHeightFont(size);
        inCallTipMode = true;
        posStartCallTip = pos;
        int deviceHeight = surfaceMeasure->DeviceHeightFont(size);
-       font.Create(faceName, SC_CHARSET_DEFAULT, deviceHeight, false, false);
+       font.Create(faceName, characterSet, deviceHeight, false, false);
        // Look for multiple lines in the text
        // Only support \n here - simply means container must avoid \r!
        int numLines = 1;
        // Look for multiple lines in the text
        // Only support \n here - simply means container must avoid \r!
        int numLines = 1;
index ffaedb0771b746a40b1f4ac647b6adb26d993607..feff7ea0b1ef4355e9a65efdd6f62e538a85dfd4 100644 (file)
@@ -52,7 +52,8 @@ public:
 
        /// Setup the calltip and return a rectangle of the area required.
        PRectangle CallTipStart(int pos, Point pt, const char *defn,
 
        /// Setup the calltip and return a rectangle of the area required.
        PRectangle CallTipStart(int pos, Point pt, const char *defn,
-               const char *faceName, int size, int codePage_, Window &wParent);
+               const char *faceName, int size, int codePage_, 
+               int characterSet, Window &wParent);
 
        void CallTipCancel();
 
 
        void CallTipCancel();
 
index 27e62ac61c1aedbd5ea11b4e4affbe8a7862e196..8183e4d8d3ca9fffc41ddbc983c85cb1b8557146 100644 (file)
@@ -96,17 +96,20 @@ void MarkerHandleSet::RemoveHandle(int handle) {
        }
 }
 
        }
 }
 
-void MarkerHandleSet::RemoveNumber(int markerNum) {
+bool MarkerHandleSet::RemoveNumber(int markerNum) {
+       bool performedDeletion = false;
        MarkerHandleNumber **pmhn = &root;
        while (*pmhn) {
                MarkerHandleNumber *mhn = *pmhn;
                if (mhn->number == markerNum) {
                        *pmhn = mhn->next;
                        delete mhn;
        MarkerHandleNumber **pmhn = &root;
        while (*pmhn) {
                MarkerHandleNumber *mhn = *pmhn;
                if (mhn->number == markerNum) {
                        *pmhn = mhn->next;
                        delete mhn;
+                       performedDeletion = true;
                } else {
                        pmhn = &((*pmhn)->next);
                }
        }
                } else {
                        pmhn = &((*pmhn)->next);
                }
        }
+       return performedDeletion;
 }
 
 void MarkerHandleSet::CombineWith(MarkerHandleSet *other) {
 }
 
 void MarkerHandleSet::CombineWith(MarkerHandleSet *other) {
@@ -306,13 +309,18 @@ void LineVector::MergeMarkers(int pos) {
        }
 }
 
        }
 }
 
-void LineVector::DeleteMark(int line, int markerNum) {
+void LineVector::DeleteMark(int line, int markerNum, bool all) {
        if (linesData[line].handleSet) {
                if (markerNum == -1) {
                        delete linesData[line].handleSet;
                        linesData[line].handleSet = 0;
                } else {
        if (linesData[line].handleSet) {
                if (markerNum == -1) {
                        delete linesData[line].handleSet;
                        linesData[line].handleSet = 0;
                } else {
-                       linesData[line].handleSet->RemoveNumber(markerNum);
+                       bool performedDeletion = 
+                               linesData[line].handleSet->RemoveNumber(markerNum);
+                       while (all && performedDeletion) {
+                               performedDeletion = 
+                                       linesData[line].handleSet->RemoveNumber(markerNum);
+                       }
                        if (linesData[line].handleSet->Length() == 0) {
                                delete linesData[line].handleSet;
                                linesData[line].handleSet = 0;
                        if (linesData[line].handleSet->Length() == 0) {
                                delete linesData[line].handleSet;
                                linesData[line].handleSet = 0;
@@ -442,6 +450,9 @@ void UndoHistory::AppendAction(actionType at, int position, char *data, int leng
        //Platform::DebugPrintf("%% %d action %d %d %d\n", at, position, lengthData, currentAction);
        //Platform::DebugPrintf("^ %d action %d %d\n", actions[currentAction - 1].at,
        //      actions[currentAction - 1].position, actions[currentAction - 1].lenData);
        //Platform::DebugPrintf("%% %d action %d %d %d\n", at, position, lengthData, currentAction);
        //Platform::DebugPrintf("^ %d action %d %d\n", actions[currentAction - 1].at,
        //      actions[currentAction - 1].position, actions[currentAction - 1].lenData);
+       if (currentAction < savePoint) {
+               savePoint = -1;
+       }
        if (currentAction >= 1) {
                if (0 == undoSequenceDepth) {
                        // Top level actions may not always be coalesced
        if (currentAction >= 1) {
                if (0 == undoSequenceDepth) {
                        // Top level actions may not always be coalesced
@@ -833,7 +844,7 @@ int CellBuffer::AddMark(int line, int markerNum) {
 
 void CellBuffer::DeleteMark(int line, int markerNum) {
        if ((line >= 0) && (line < lv.lines)) {
 
 void CellBuffer::DeleteMark(int line, int markerNum) {
        if ((line >= 0) && (line < lv.lines)) {
-               lv.DeleteMark(line, markerNum);
+               lv.DeleteMark(line, markerNum, false);
        }
 }
 
        }
 }
 
@@ -849,7 +860,7 @@ int CellBuffer::GetMark(int line) {
 
 void CellBuffer::DeleteAllMarks(int markerNum) {
        for (int line = 0; line < lv.lines; line++) {
 
 void CellBuffer::DeleteAllMarks(int markerNum) {
        for (int line = 0; line < lv.lines; line++) {
-               lv.DeleteMark(line, markerNum);
+               lv.DeleteMark(line, markerNum, true);
        }
 }
 
        }
 }
 
index bf4a102f2268ea418e1d6199ca260d6a0a3d382a..b16eef5e51a745f92ed3ae10d5098fd9b0c2818c 100644 (file)
@@ -33,7 +33,7 @@ public:
        bool Contains(int handle);
        bool InsertHandle(int handle, int markerNum);
        void RemoveHandle(int handle);
        bool Contains(int handle);
        bool InsertHandle(int handle, int markerNum);
        void RemoveHandle(int handle);
-       void RemoveNumber(int markerNum);
+       bool RemoveNumber(int markerNum);
        void CombineWith(MarkerHandleSet *other);
 };
 
        void CombineWith(MarkerHandleSet *other);
 };
 
@@ -77,7 +77,7 @@ public:
 
        int AddMark(int line, int marker);
        void MergeMarkers(int pos);
 
        int AddMark(int line, int marker);
        void MergeMarkers(int pos);
-       void DeleteMark(int line, int markerNum);
+       void DeleteMark(int line, int markerNum, bool all);
        void DeleteMarkFromHandle(int markerHandle);
        int LineFromHandle(int markerHandle);
 };
        void DeleteMarkFromHandle(int markerHandle);
        int LineFromHandle(int markerHandle);
 };
index 97abd6254600de6e2a835c2c1ab93344b116c565..76fa456ccb613e44366b2205081e91d4bac74150 100644 (file)
@@ -653,7 +653,7 @@ int Document::FindColumn(int line, int column) {
        int position = LineStart(line);
        int columnCurrent = 0;
        if ((line >= 0) && (line < LinesTotal())) {
        int position = LineStart(line);
        int columnCurrent = 0;
        if ((line >= 0) && (line < LinesTotal())) {
-               while (columnCurrent < column) {
+               while ((columnCurrent < column) && (position < Length())) {
                        char ch = cb.CharAt(position);
                        if (ch == '\t') {
                                columnCurrent = NextTab(columnCurrent, tabInChars);
                        char ch = cb.CharAt(position);
                        if (ch == '\t') {
                                columnCurrent = NextTab(columnCurrent, tabInChars);
@@ -682,43 +682,73 @@ void Document::Indent(bool forwards, int lineBottom, int lineTop) {
        }
 }
 
        }
 }
 
+// Convert line endings for a piece of text to a particular mode.
+// Stop at len or when a NUL is found.
+// Caller must delete the returned pointer.
+char *Document::TransformLineEnds(int *pLenOut, const char *s, size_t len, int eolMode) {
+       char *dest = new char[2 * len + 1];
+       const char *sptr = s;
+       char *dptr = dest;
+       for (size_t i = 0; (i < len) && (*sptr != '\0'); i++) {
+               if (*sptr == '\n' || *sptr == '\r') {
+                       if (eolMode == SC_EOL_CR) {
+                               *dptr++ = '\r';
+                       } else if (eolMode == SC_EOL_LF) {
+                               *dptr++ = '\n';
+                       } else { // eolMode == SC_EOL_CRLF
+                               *dptr++ = '\r';
+                               *dptr++ = '\n';
+                       }
+                       if ((*sptr == '\r') && (i+1 < len) && (*(sptr+1) == '\n')) {
+                               i++;
+                               sptr++;
+                       }
+                       sptr++;
+               } else {
+                       *dptr++ = *sptr++;
+               }
+       }
+       *dptr++ = '\0';
+       *pLenOut = (dptr - dest) - 1;
+       return dest;
+}
+
 void Document::ConvertLineEnds(int eolModeSet) {
        BeginUndoAction();
 void Document::ConvertLineEnds(int eolModeSet) {
        BeginUndoAction();
+
        for (int pos = 0; pos < Length(); pos++) {
                if (cb.CharAt(pos) == '\r') {
        for (int pos = 0; pos < Length(); pos++) {
                if (cb.CharAt(pos) == '\r') {
-                       if (cb.CharAt(pos + 1) == '\n') {
-                               if (eolModeSet != SC_EOL_CRLF) {
-                                       DeleteChars(pos, 2);
-                                       if (eolModeSet == SC_EOL_CR)
-                                               InsertString(pos, "\r", 1);
-                                       else
-                                               InsertString(pos, "\n", 1);
+                       if (cb.CharAt(pos + 1) == '\n') { 
+                               // CRLF
+                               if (eolModeSet == SC_EOL_CR) {
+                                       DeleteChars(pos + 1, 1); // Delete the LF
+                               } else if (eolModeSet == SC_EOL_LF) {
+                                       DeleteChars(pos, 1); // Delete the CR
                                } else {
                                        pos++;
                                }
                                } else {
                                        pos++;
                                }
-                       } else {
-                               if (eolModeSet != SC_EOL_CR) {
-                                       DeleteChars(pos, 1);
-                                       if (eolModeSet == SC_EOL_CRLF) {
-                                               InsertString(pos, "\r\n", 2);
-                                               pos++;
-                                       } else {
-                                               InsertString(pos, "\n", 1);
-                                       }
-                               }
-                       }
-               } else if (cb.CharAt(pos) == '\n') {
-                       if (eolModeSet != SC_EOL_LF) {
-                               DeleteChars(pos, 1);
+                       } else { 
+                               // CR
                                if (eolModeSet == SC_EOL_CRLF) {
                                if (eolModeSet == SC_EOL_CRLF) {
-                                       InsertString(pos, "\r\n", 2);
+                                       InsertString(pos + 1, "\n", 1); // Insert LF
                                        pos++;
                                        pos++;
-                               } else {
-                                       InsertString(pos, "\r", 1);
+                               } else if (eolModeSet == SC_EOL_LF) {
+                                       InsertString(pos, "\n", 1); // Insert LF
+                                       DeleteChars(pos + 1, 1); // Delete CR
                                }
                        }
                                }
                        }
+               } else if (cb.CharAt(pos) == '\n') {
+                       // LF
+                       if (eolModeSet == SC_EOL_CRLF) {
+                               InsertString(pos, "\r", 1); // Insert CR
+                               pos++;
+                       } else if (eolModeSet == SC_EOL_CR) {
+                               InsertString(pos, "\r", 1); // Insert CR
+                               DeleteChars(pos + 1, 1); // Delete LF
+                       }
                }
        }
                }
        }
+
        EndUndoAction();
 }
 
        EndUndoAction();
 }
 
@@ -854,7 +884,7 @@ bool Document::IsWordStartAt(int pos) {
  * the next character is of a different character class.
  */
 bool Document::IsWordEndAt(int pos) {
  * the next character is of a different character class.
  */
 bool Document::IsWordEndAt(int pos) {
-       if (pos < Length() - 1) {
+       if (pos < Length()) {
                charClassification ccPrev = WordCharClass(CharAt(pos-1));
                return (ccPrev == ccWord || ccPrev == ccPunctuation) &&
                        (ccPrev != WordCharClass(CharAt(pos)));
                charClassification ccPrev = WordCharClass(CharAt(pos-1));
                return (ccPrev == ccWord || ccPrev == ccPunctuation) &&
                        (ccPrev != WordCharClass(CharAt(pos)));
index 54ecadb004535e261d6cabeaca8ca5d024ab6c0a..ce27ffc47611e638e8365ef78285abd5e0d05df8 100644 (file)
@@ -156,6 +156,7 @@ public:
        int GetColumn(int position);
        int FindColumn(int line, int column);
        void Indent(bool forwards, int lineBottom, int lineTop);
        int GetColumn(int position);
        int FindColumn(int line, int column);
        void Indent(bool forwards, int lineBottom, int lineTop);
+       static char *TransformLineEnds(int *pLenOut, const char *s, size_t len, int eolMode);
        void ConvertLineEnds(int eolModeSet);
        void SetReadOnly(bool set) { cb.SetReadOnly(set); }
        bool IsReadOnly() { return cb.IsReadOnly(); }
        void ConvertLineEnds(int eolModeSet);
        void SetReadOnly(bool set) { cb.SetReadOnly(set); }
        bool IsReadOnly() { return cb.IsReadOnly(); }
index 591125dda678210237b9f13107977f3f8c6362f1..399e6597645e2133d345499dc1455ee099f5deda 100644 (file)
@@ -361,6 +361,8 @@ Editor::Editor() {
        topLine = 0;
        posTopLine = 0;
 
        topLine = 0;
        posTopLine = 0;
 
+       lengthForEncode = 0;
+
        needUpdateUI = true;
        braces[0] = invalidPosition;
        braces[1] = invalidPosition;
        needUpdateUI = true;
        braces[0] = invalidPosition;
        braces[1] = invalidPosition;
@@ -670,7 +672,7 @@ int Editor::LineFromLocation(Point pt) {
 
 void Editor::SetTopLine(int topLineNew) {
        topLine = topLineNew;
 
 void Editor::SetTopLine(int topLineNew) {
        topLine = topLineNew;
-       posTopLine = pdoc->LineStart(topLine);
+       posTopLine = pdoc->LineStart(cs.DocFromDisplay(topLine));
 }
 
 static inline bool IsEOLChar(char ch) {
 }
 
 static inline bool IsEOLChar(char ch) {
@@ -1392,6 +1394,7 @@ void Editor::EnsureCaretVisible(bool useMargin, bool vert, bool horiz) {
                        Redraw();
                }
        }
                        Redraw();
                }
        }
+       UpdateSystemCaret();
 }
 
 void Editor::ShowCaretAtCurrentPosition() {
 }
 
 void Editor::ShowCaretAtCurrentPosition() {
@@ -1416,6 +1419,10 @@ void Editor::InvalidateCaret() {
                InvalidateRange(posDrag, posDrag + 1);
        else
                InvalidateRange(currentPos, currentPos + 1);
                InvalidateRange(posDrag, posDrag + 1);
        else
                InvalidateRange(currentPos, currentPos + 1);
+       UpdateSystemCaret();
+}
+
+void Editor::UpdateSystemCaret() {
 }
 
 void Editor::NeedWrapping(int docLineStartWrapping, int docLineEndWrapping) {
 }
 
 void Editor::NeedWrapping(int docLineStartWrapping, int docLineEndWrapping) {
@@ -2206,8 +2213,9 @@ void Editor::DrawLine(Surface *surface, ViewStyle &vsDraw, int line, int lineVis
        // See if something overrides the line background color:  Either if caret is on the line
        // and background color is set for that, or if a marker is defined that forces its background
        // color onto the line, or if a marker is defined but has no selection margin in which to
        // See if something overrides the line background color:  Either if caret is on the line
        // and background color is set for that, or if a marker is defined that forces its background
        // color onto the line, or if a marker is defined but has no selection margin in which to
-       // display itself.  These are checked in order with the earlier taking precedence.  When
-       // multiple markers cause background override, the color for the highest numbered one is used.
+       // display itself (as long as it's not an SC_MARK_EMPTY marker).  These are checked in order
+       // with the earlier taking precedence.  When multiple markers cause background override,
+       // the color for the highest numbered one is used.
        bool overrideBackground = false;
        ColourAllocated background;
        if (caret.active && vsDraw.showCaretLineBackground && ll->containsCaret) {
        bool overrideBackground = false;
        ColourAllocated background;
        if (caret.active && vsDraw.showCaretLineBackground && ll->containsCaret) {
@@ -2228,9 +2236,9 @@ void Editor::DrawLine(Surface *surface, ViewStyle &vsDraw, int line, int lineVis
                if (vsDraw.maskInLine) {
                        int marks = pdoc->GetMark(line) & vsDraw.maskInLine;
                        if (marks) {
                if (vsDraw.maskInLine) {
                        int marks = pdoc->GetMark(line) & vsDraw.maskInLine;
                        if (marks) {
-                               overrideBackground = true;
                                for (int markBit = 0; (markBit < 32) && marks; markBit++) {
                                for (int markBit = 0; (markBit < 32) && marks; markBit++) {
-                                       if (marks & 1) {
+                                       if ((marks & 1) && (vsDraw.markers[markBit].markType != SC_MARK_EMPTY)) {
+                                               overrideBackground = true;
                                                background = vsDraw.markers[markBit].back.allocated;
                                        }
                                        marks >>= 1;
                                                background = vsDraw.markers[markBit].back.allocated;
                                        }
                                        marks >>= 1;
@@ -2523,10 +2531,11 @@ void Editor::DrawLine(Surface *surface, ViewStyle &vsDraw, int line, int lineVis
                indStart[indica] = 0;
 
        for (int indicPos = lineStart; indicPos <= lineEnd; indicPos++) {
                indStart[indica] = 0;
 
        for (int indicPos = lineStart; indicPos <= lineEnd; indicPos++) {
-               if ((indicPos == lineEnd) || (ll->indicators[indicPos] != ll->indicators[indicPos + 1])) {
+               if ((indicPos == lineStart) || (indicPos == lineEnd) ||
+                       (ll->indicators[indicPos] != ll->indicators[indicPos + 1])) {
                        int mask = 1 << pdoc->stylingBits;
                        for (int indicnum = 0; mask < 0x100; indicnum++) {
                        int mask = 1 << pdoc->stylingBits;
                        for (int indicnum = 0; mask < 0x100; indicnum++) {
-                               if ((indicPos == lineEnd)) {
+                               if ((indicPos == lineStart) || (indicPos == lineEnd)) {
                                        indStart[indicnum] = ll->positions[indicPos];
                                } else if ((ll->indicators[indicPos + 1] & mask) && !(ll->indicators[indicPos] & mask)) {
                                        indStart[indicnum] = ll->positions[indicPos + 1];
                                        indStart[indicnum] = ll->positions[indicPos];
                                } else if ((ll->indicators[indicPos + 1] & mask) && !(ll->indicators[indicPos] & mask)) {
                                        indStart[indicnum] = ll->positions[indicPos + 1];
@@ -3283,7 +3292,6 @@ void Editor::ClearAll() {
        currentPos = 0;
        SetTopLine(0);
        SetVerticalScrollPos();
        currentPos = 0;
        SetTopLine(0);
        SetVerticalScrollPos();
-        InvalidateStyleRedraw();
 }
 
 void Editor::ClearDocumentStyle() {
 }
 
 void Editor::ClearDocumentStyle() {
@@ -4154,16 +4162,20 @@ int Editor::KeyCommand(unsigned int iMessage) {
                break;
        case SCI_LINEENDWRAP: {
                        int endPos = MovePositionSoVisible(StartEndDisplayLine(currentPos, false), 1);
                break;
        case SCI_LINEENDWRAP: {
                        int endPos = MovePositionSoVisible(StartEndDisplayLine(currentPos, false), 1);
-                       if (currentPos >= endPos)
-                               endPos = pdoc->LineEndPosition(currentPos);
+                       int realEndPos = pdoc->LineEndPosition(currentPos);
+                       if (endPos > realEndPos      // if moved past visible EOLs
+                               || currentPos >= endPos) // if at end of display line already
+                               endPos = realEndPos;
                        MovePositionTo(endPos);
                        SetLastXChosen();
                }
                break;
        case SCI_LINEENDWRAPEXTEND: {
                        int endPos = MovePositionSoVisible(StartEndDisplayLine(currentPos, false), 1);
                        MovePositionTo(endPos);
                        SetLastXChosen();
                }
                break;
        case SCI_LINEENDWRAPEXTEND: {
                        int endPos = MovePositionSoVisible(StartEndDisplayLine(currentPos, false), 1);
-                       if (currentPos >= endPos)
-                               endPos = pdoc->LineEndPosition(currentPos);
+                       int realEndPos = pdoc->LineEndPosition(currentPos);
+                       if (endPos > realEndPos      // if moved past visible EOLs
+                               || currentPos >= endPos) // if at end of display line already
+                               endPos = realEndPos;
                        MovePositionTo(endPos, selStream);
                        SetLastXChosen();
                }
                        MovePositionTo(endPos, selStream);
                        SetLastXChosen();
                }
@@ -4929,7 +4941,7 @@ void Editor::ButtonDown(Point pt, unsigned int curTime, bool shift, bool ctrl, b
                //Platform::DebugPrintf("Double click: %d - %d\n", anchor, currentPos);
                if (doubleClick) {
                        NotifyDoubleClick(pt, shift);
                //Platform::DebugPrintf("Double click: %d - %d\n", anchor, currentPos);
                if (doubleClick) {
                        NotifyDoubleClick(pt, shift);
-                       if (PointIsHotspot(newPos))
+                       if (PositionIsHotspot(newPos))
                                NotifyHotSpotDoubleClicked(newPos, shift, ctrl, alt);
                }
        } else {        // Single click
                                NotifyHotSpotDoubleClicked(newPos, shift, ctrl, alt);
                }
        } else {        // Single click
@@ -6301,6 +6313,9 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
        case SCI_GETCOLUMN:
                return pdoc->GetColumn(wParam);
 
        case SCI_GETCOLUMN:
                return pdoc->GetColumn(wParam);
 
+       case SCI_FINDCOLUMN:
+               return pdoc->FindColumn(wParam, lParam);
+
        case SCI_SETHSCROLLBAR :
                if (horizontalScrollBarVisible != (wParam != 0)) {
                        horizontalScrollBarVisible = wParam != 0;
        case SCI_SETHSCROLLBAR :
                if (horizontalScrollBarVisible != (wParam != 0)) {
                        horizontalScrollBarVisible = wParam != 0;
@@ -6949,6 +6964,10 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
                SetSelection(currentPos, anchor);       // Ensure selection inside document
                return 0;
 
                SetSelection(currentPos, anchor);       // Ensure selection inside document
                return 0;
 
+       case SCI_SETLENGTHFORENCODE:
+               lengthForEncode = wParam;
+               return 0;
+
        case SCI_SELECTIONISRECTANGLE:
                return selType == selRectangle ? 1 : 0;
 
        case SCI_SELECTIONISRECTANGLE:
                return selType == selRectangle ? 1 : 0;
 
index b9bda04ab4678c4ec19ed761a5bdfd4f688bc436..e14cb5ed95c125891c6a4f16cea35c3365ebaa47 100644 (file)
@@ -127,7 +127,7 @@ public:
 
 /**
  * Hold a piece of text selected for copying or dragging.
 
 /**
  * Hold a piece of text selected for copying or dragging.
- * The text is expected to hold a terminating '\0'.
+ * The text is expected to hold a terminating '\0' and this is counted in len.
  */
 class SelectionText {
 public:
  */
 class SelectionText {
 public:
@@ -257,6 +257,7 @@ protected:  // ScintillaBase subclass needs access to much of Editor
        int searchFlags;
        int topLine;
        int posTopLine;
        int searchFlags;
        int topLine;
        int posTopLine;
+       int lengthForEncode;
 
        bool needUpdateUI;
        Position braces[2];
 
        bool needUpdateUI;
        Position braces[2];
@@ -368,6 +369,7 @@ protected:  // ScintillaBase subclass needs access to much of Editor
        void ShowCaretAtCurrentPosition();
        void DropCaret();
        void InvalidateCaret();
        void ShowCaretAtCurrentPosition();
        void DropCaret();
        void InvalidateCaret();
+       virtual void UpdateSystemCaret();
 
        void NeedWrapping(int docLineStartWrapping = 0, int docLineEndWrapping = 0x7ffffff);
        bool WrapLines(bool fullWrap, int priorityWrapLineStart);
 
        void NeedWrapping(int docLineStartWrapping = 0, int docLineEndWrapping = 0x7ffffff);
        bool WrapLines(bool fullWrap, int priorityWrapLineStart);
index def79f6ecdce17cfe32c1801e71064bbfb300a65..67e52ec11ad312874d7947bec42730176016b43d 100644 (file)
@@ -132,6 +132,7 @@ int Scintilla_LinkLexers() {
        LINK_LEXER(lmAda);
        LINK_LEXER(lmAPDL);
        LINK_LEXER(lmAsm);
        LINK_LEXER(lmAda);
        LINK_LEXER(lmAPDL);
        LINK_LEXER(lmAsm);
+       LINK_LEXER(lmAsn1);
        LINK_LEXER(lmAU3);
        LINK_LEXER(lmAVE);
        LINK_LEXER(lmBaan);
        LINK_LEXER(lmAU3);
        LINK_LEXER(lmAVE);
        LINK_LEXER(lmBaan);
@@ -189,6 +190,7 @@ int Scintilla_LinkLexers() {
        LINK_LEXER(lmVB);
        LINK_LEXER(lmVBScript);
        LINK_LEXER(lmVerilog);
        LINK_LEXER(lmVB);
        LINK_LEXER(lmVBScript);
        LINK_LEXER(lmVerilog);
+       LINK_LEXER(lmVHDL);
        LINK_LEXER(lmYAML);
 
 //--Autogenerated -- end of automatically generated section
        LINK_LEXER(lmYAML);
 
 //--Autogenerated -- end of automatically generated section
index b739e9a7cb562845ad58855044131c8eff494566..1cf263e5018a9eef4ba08258943ca595834583df 100644 (file)
@@ -1,3 +1,10 @@
+// Scintilla source code edit control
+/** @file LexAPDL.cxx
+ ** Lexer for APDL. Based on the lexer for Assembler by The Black Horus.
+ ** By Hadar Raz.
+ **/
+// Copyright 1998-2003 by Neil Hodgson <neilh@scintilla.org>
+// The License.txt file describes the conditions under which this software may be distributed.
 
 #include <stdlib.h>
 #include <string.h>
 
 #include <stdlib.h>
 #include <string.h>
 
 
 static inline bool IsAWordChar(const int ch) {
 
 
 static inline bool IsAWordChar(const int ch) {
-       return (ch < 0x80) && (isalnum(ch) || ch == '_');
+       return (ch < 0x80 && (isalnum(ch) || ch == '_'));
 }
 
 }
 
-static inline bool IsAWordStart(const int ch) {
-       return (ch < 0x80) && (isalnum(ch) || ch == '/' || ch == '*');
+static inline bool IsAnOperator(char ch) {
+       // '.' left out as it is used to make up numbers
+       if (ch == '*' || ch == '/' || ch == '-' || ch == '+' ||
+               ch == '(' || ch == ')' || ch == '=' || ch == '^' ||
+               ch == '[' || ch == ']' || ch == '<' || ch == '&' ||
+               ch == '>' || ch == ',' || ch == '|' || ch == '~' ||
+               ch == '$' || ch == ':' || ch == '%')
+               return true;
+       return false;
 }
 
 }
 
-inline bool IsABlank(unsigned int ch) {
-    return (ch == ' ') || (ch == 0x09) || (ch == 0x0b) ;
-}
-
-
-
-static void ColouriseAPDLDoc(unsigned int startPos, int length, int initStyle,
-                              WordList *keywordlists[], Accessor &styler)
-{
-
-    //~ FILE *fp;
-    //~ fp = fopen("myoutput.txt", "w");
-
-    WordList &commands = *keywordlists[0];
-    WordList &processors = *keywordlists[1];
-    WordList &functions = *keywordlists[2];
-
-
-    // backtrack to the beginning of the document, this may be slow for big documents.
-    initStyle = SCE_APDL_DEFAULT;
-    StyleContext sc(0, startPos+length, initStyle, styler);
-
-    // backtrack to the nearest keyword
-    //~ while ((startPos > 1) && (styler.StyleAt(startPos) != SCE_APDL_WORD)) {
-            //~ startPos--;
-    //~ }
-    //~ startPos = styler.LineStart(styler.GetLine(startPos));
-    //~ initStyle = styler.StyleAt(startPos - 1);
-    //~ StyleContext sc(startPos, endPos-startPos, initStyle, styler);
-
-    bool firstInLine = true;
-    bool atEOL;
-
-    for (; sc.More(); sc.Forward()) {
-
-        atEOL = (sc.ch == '\r' && sc.chNext == '\n') || (sc.ch == '\n');
-
-        //~ if (sc.ch == '\r') {
-            //~ fprintf(fp,"CR\t%d\t%d", atEOL, firstInLine);
-        //~ } else if (sc.ch == '\n') {
-            //~ fprintf(fp,"LF\t%d\t%d", atEOL, firstInLine);
-        //~ } else {
-            //~ fprintf(fp,"%c\t%d\t%d", sc.ch, atEOL, firstInLine);
-        //~ }
-
-        // Determine if the current state should terminate.
-        if (sc.state == SCE_APDL_COMMENT) {
-            //~ fprintf(fp,"\tCOMMENT");
-            if (atEOL) {
-                sc.SetState(SCE_APDL_DEFAULT);
-            }
-        } else if (sc.state == SCE_APDL_COMMENTBLOCK) {
-            //~ fprintf(fp,"\tCOMMENTBLOCK");
-            if (atEOL) {
-                if (sc.ch == '\r') {
-                    sc.Forward();
-                }
-                sc.ForwardSetState(SCE_APDL_DEFAULT);
-            }
-        } else if (sc.state == SCE_APDL_NUMBER) {
-            //~ fprintf(fp,"\tNUMBER");
-            if (isdigit(sc.ch)) {
-            } else if ((sc.ch == 'e' || sc.ch == 'E') && (isdigit(sc.chNext) || sc.chNext == '+' || sc.chNext == '-')) {
-            } else if (sc.ch == '.') {
-            } else if ((sc.ch == '+' || sc.ch == '-') && (sc.chPrev == 'e' || sc.chPrev == 'E')) {
-            } else {
-                sc.SetState(SCE_APDL_DEFAULT);
-            }
-        } else if (sc.state == SCE_APDL_STRING) {
-            //~ fprintf(fp,"\tSTRING");
-            if (sc.ch == '\"') {
-                //~ sc.ForwardSetState(SCE_APDL_DEFAULT);
-                sc.Forward();
-                atEOL = (sc.ch == '\r' && sc.chNext == '\n') || (sc.ch == '\n');
-                if (atEOL) {
-                    firstInLine = true;
-                }
-                sc.SetState(SCE_APDL_DEFAULT);
-            }
-        } else if (sc.state == SCE_APDL_WORD) {
-            //~ fprintf(fp,"\tWORD");
-            if (!IsAWordChar(sc.ch) || sc.ch == '%') {
-                char s[100];
-                sc.GetCurrentLowered(s, sizeof(s));
-                if (commands.InList(s) && firstInLine) {
-                    if (IsABlank(sc.ch) || sc.ch == ',' || atEOL) {
-                        sc.ChangeState(SCE_APDL_COMMAND);
-                    }
-                    if (sc.ch != '\n') {
-                        firstInLine = false;
-                    }
-                } else if (processors.InList(s)) {
-                    if (IsABlank(sc.ch) || atEOL) {
-                        sc.ChangeState(SCE_APDL_PROCESSOR);
-                        while (sc.ch != '\n') {
-                            sc.Forward();
-                        }
-                        sc.Forward();
-                    }
-                } else if (functions.InList(s)) {
-                    sc.ChangeState(SCE_APDL_FUNCTION);
-                    if (sc.ch != '\n') {
-                        firstInLine = false;
-                    }
-                } else {
-                    if (sc.ch != '\n') {
-                        firstInLine = false;
-                    }
-                }
-                sc.SetState(SCE_APDL_DEFAULT);
-            }
-        }
-
-        // Determine if a new state should be entered.
-        if (sc.state == SCE_APDL_DEFAULT) {
-            if (sc.ch == '!' && sc.chNext != '!') {
-                sc.SetState(SCE_APDL_COMMENT);
-            } else if (sc.ch == '!' && sc.chNext == '!') {
-                sc.SetState(SCE_APDL_COMMENTBLOCK);
-            } else if (IsADigit(sc.ch) && !IsAWordChar(sc.chPrev)) {
-                sc.SetState(SCE_APDL_NUMBER);
-            } else if (sc.ch == '.' && (isoperator(static_cast<char>(sc.chPrev)) ||
-               IsABlank(sc.chPrev) || sc.chPrev == '\n' || sc.chPrev == '\r')) {
-                sc.SetState(SCE_APDL_NUMBER);
-            } else if (sc.ch == '\"') {
-                sc.SetState(SCE_APDL_STRING);
-            } else if (IsAWordStart(sc.ch) && (!IsADigit(sc.chPrev))) {
-                sc.SetState(SCE_APDL_WORD);
-            }
-
-        }
-        //~ fprintf(fp,"\n");
-
-        if (atEOL) {
-            firstInLine = true;
-        }
-
-    }
-    sc.Complete();
+static void ColouriseAPDLDoc(unsigned int startPos, int length, int initStyle, WordList *keywordlists[],
+                            Accessor &styler) {
+
+       int stringStart = ' ';
+
+       WordList &processors = *keywordlists[0];
+       WordList &commands = *keywordlists[1];
+       WordList &slashcommands = *keywordlists[2];
+       WordList &starcommands = *keywordlists[3];
+       WordList &arguments = *keywordlists[4];
+       WordList &functions = *keywordlists[5];
+
+       // Do not leak onto next line
+       initStyle = SCE_APDL_DEFAULT;
+       StyleContext sc(startPos, length, initStyle, styler);
+
+       for (; sc.More(); sc.Forward()) {
+               // Determine if the current state should terminate.
+               if (sc.state == SCE_APDL_NUMBER) {
+                       if (!(IsADigit(sc.ch) || sc.ch == '.' || (sc.ch == 'e' || sc.ch == 'E') ||
+                               ((sc.ch == '+' || sc.ch == '-') && (sc.chPrev == 'e' || sc.chPrev == 'E')))) {
+                               sc.SetState(SCE_APDL_DEFAULT);
+                       }
+               } else if (sc.state == SCE_APDL_COMMENT) {
+                       if (sc.atLineEnd) {
+                               sc.SetState(SCE_APDL_DEFAULT);
+                       }
+               } else if (sc.state == SCE_APDL_COMMENTBLOCK) {
+                       if (sc.atLineEnd) {
+                               if (sc.ch == '\r') {
+                               sc.Forward();
+                               }
+                               sc.ForwardSetState(SCE_APDL_DEFAULT);
+                       }
+               } else if (sc.state == SCE_APDL_STRING) {
+                       if (sc.atLineEnd) {
+                               sc.SetState(SCE_APDL_DEFAULT);
+                       } else if ((sc.ch == '\'' && stringStart == '\'') || (sc.ch == '\"' && stringStart == '\"')) {
+                               sc.ForwardSetState(SCE_APDL_DEFAULT);
+                       }
+               } else if (sc.state == SCE_APDL_WORD) {
+                       if (!IsAWordChar(sc.ch)) {
+                               char s[100];
+                               sc.GetCurrentLowered(s, sizeof(s));
+                               if (processors.InList(s)) {
+                                       sc.ChangeState(SCE_APDL_PROCESSOR);
+                               } else if (slashcommands.InList(s)) {
+                                       sc.ChangeState(SCE_APDL_SLASHCOMMAND);
+                               } else if (starcommands.InList(s)) {
+                                       sc.ChangeState(SCE_APDL_STARCOMMAND);
+                               } else if (commands.InList(s)) {
+                                       sc.ChangeState(SCE_APDL_COMMAND);
+                               } else if (arguments.InList(s)) {
+                                       sc.ChangeState(SCE_APDL_ARGUMENT);
+                               } else if (functions.InList(s)) {
+                                       sc.ChangeState(SCE_APDL_FUNCTION);
+                               }
+                               sc.SetState(SCE_APDL_DEFAULT);
+                       }
+               } else if (sc.state == SCE_APDL_OPERATOR) {
+                       if (!IsAnOperator(static_cast<char>(sc.ch))) {
+                           sc.SetState(SCE_APDL_DEFAULT);
+                       }
+               }
+
+               // Determine if a new state should be entered.
+               if (sc.state == SCE_APDL_DEFAULT) {
+                       if (sc.ch == '!' && sc.chNext == '!') {
+                               sc.SetState(SCE_APDL_COMMENTBLOCK);
+                       } else if (sc.ch == '!') {
+                               sc.SetState(SCE_APDL_COMMENT);
+                       } else if (IsADigit(sc.ch) || (sc.ch == '.' && IsADigit(sc.chNext))) {
+                               sc.SetState(SCE_APDL_NUMBER);
+                       } else if (sc.ch == '\'' || sc.ch == '\"') {
+                               sc.SetState(SCE_APDL_STRING);
+                               stringStart = sc.ch;
+                       } else if (IsAWordChar(sc.ch) || ((sc.ch == '*' || sc.ch == '/') && !isgraph(sc.chPrev))) {
+                               sc.SetState(SCE_APDL_WORD);
+                       } else if (IsAnOperator(static_cast<char>(sc.ch))) {
+                               sc.SetState(SCE_APDL_OPERATOR);
+                       }
+               }
+       }
+       sc.Complete();
 }
 
 static const char * const apdlWordListDesc[] = {
 }
 
 static const char * const apdlWordListDesc[] = {
-    "Commands",
-    "Processors",
-    "Functions",
+    "processors",
+    "commands",
+    "slashommands",
+    "starcommands",
+    "arguments",
+    "functions",
     0
 };
 
     0
 };
 
index 8bc1f062eb473016f9a680ffe762a280c328de5a..31e4ee52d2d78be5a5ce611d5e1cd1702eca52ed 100644 (file)
 //                  Fixed "#comments_end" -> "#comments-end"  
 //                  Fixed Sendkeys in Strings when not terminated with }
 //                  Added support for Sendkey strings that have second parameter e.g. {UP 5} or {a down}
 //                  Fixed "#comments_end" -> "#comments-end"  
 //                  Fixed Sendkeys in Strings when not terminated with }
 //                  Added support for Sendkey strings that have second parameter e.g. {UP 5} or {a down}
-// April 26, 2004   Fixed # pre-processor statement inside of comment block would invalidly change the color.
+// April 26, 2004 - Fixed # pre-processor statement inside of comment block would invalidly change the color.
 //                  Added logic for #include <xyz.au3> to treat the <> as string
 //                  Added underscore to IsAOperator.
 //                  Added logic for #include <xyz.au3> to treat the <> as string
 //                  Added underscore to IsAOperator.
+// May 17, 2004   - Changed the folding logic from indent to keyword folding.
+//                  Added Folding logic for blocks of single-commentlines or commentblock.
+//                        triggered by: fold.comment=1
+//                  Added Folding logic for preprocessor blocks triggered by fold.preprocessor=1
+//                  Added Special for #region - #endregion syntax highlight and folding.
+// May 30, 2004   - Fixed issue with continuation lines on If statements.
+// June 5, 2004   - Added comma to Operators for better readability.
+//                  Added fold.compact support set with fold.compact=1
+//                  Changed folding inside of #cs-#ce. Default is no keyword folding inside comment blocks when fold.comment=1
+//                        it will now only happen when fold.comment=2.
+// 
 // Copyright for Scintilla: 1998-2001 by Neil Hodgson <neilh@scintilla.org>
 // The License.txt file describes the conditions under which this software may be distributed.
 // Scintilla source code edit control
 // Copyright for Scintilla: 1998-2001 by Neil Hodgson <neilh@scintilla.org>
 // The License.txt file describes the conditions under which this software may be distributed.
 // Scintilla source code edit control
 #include "Scintilla.h"
 #include "SciLexer.h"
 
 #include "Scintilla.h"
 #include "SciLexer.h"
 
-static bool IsAU3Comment(Accessor &styler, int pos, int len) {
-       return len>0 && styler[pos]==';';
-}
-
 static inline bool IsTypeCharacter(const int ch)
 {
     return ch == '$';
 }
 static inline bool IsAWordChar(const int ch)
 {
 static inline bool IsTypeCharacter(const int ch)
 {
     return ch == '$';
 }
 static inline bool IsAWordChar(const int ch)
 {
-    return (ch < 0x80) && (isalnum(ch) || ch == '_' || ch == '-');
+    return (ch < 0x80) && (isalnum(ch) || ch == '_');
 }
 
 static inline bool IsAWordStart(const int ch)
 }
 
 static inline bool IsAWordStart(const int ch)
@@ -57,7 +64,7 @@ static inline bool IsAOperator(char ch) {
                return false;
        if (ch == '+' || ch == '-' || ch == '*' || ch == '/' ||
            ch == '&' || ch == '^' || ch == '=' || ch == '<' || ch == '>' ||
                return false;
        if (ch == '+' || ch == '-' || ch == '*' || ch == '/' ||
            ch == '&' || ch == '^' || ch == '=' || ch == '<' || ch == '>' ||
-           ch == '(' || ch == ')' || ch == '[' || ch == ']' || ch == '_' )
+           ch == '(' || ch == ')' || ch == '[' || ch == ']' || ch == ',' )
                return true;
        return false;
 }
                return true;
        return false;
 }
@@ -111,9 +118,9 @@ static int GetSendKey(const char *szLine, char *szKey)
        // Check if the second portion is either a number or one of these keywords
        szKey[nKeyPos] = '\0';
        szSpecial[nSpecPos] = '\0';
        // Check if the second portion is either a number or one of these keywords
        szKey[nKeyPos] = '\0';
        szSpecial[nSpecPos] = '\0';
-       if (strcmp(szSpecial,"down")==0    || strcmp(szSpecial,"up")==0  ||
-               strcmp(szSpecial,"on")==0      || strcmp(szSpecial,"off")==0 || 
-               strcmp(szSpecial,"toggle")==0  || nSpecNum == 1 )
+       if (strcmp(szSpecial,"down")== 0    || strcmp(szSpecial,"up")== 0  ||
+               strcmp(szSpecial,"on")== 0      || strcmp(szSpecial,"off")== 0 || 
+               strcmp(szSpecial,"toggle")== 0  || nSpecNum == 1 )
        {
                nFlag = 0;
        }
        {
                nFlag = 0;
        }
@@ -121,9 +128,9 @@ static int GetSendKey(const char *szLine, char *szKey)
        {
                nFlag = 1;
        }
        {
                nFlag = 1;
        }
-       return nFlag;  // 1 is bad, 0 is good
+       return nFlag;  // 1 is bad, 0 is good 
 
 
-} // GetSendKey()
+} // GetSendKey() 
 
 static void ColouriseAU3Doc(unsigned int startPos, 
                                                        int length, int initStyle,
 
 static void ColouriseAU3Doc(unsigned int startPos, 
                                                        int length, int initStyle,
@@ -135,6 +142,7 @@ static void ColouriseAU3Doc(unsigned int startPos,
     WordList &keywords3 = *keywordlists[2];
     WordList &keywords4 = *keywordlists[3];
     WordList &keywords5 = *keywordlists[4];
     WordList &keywords3 = *keywordlists[2];
     WordList &keywords4 = *keywordlists[3];
     WordList &keywords5 = *keywordlists[4];
+    WordList &keywords6 = *keywordlists[5];
     styler.StartAt(startPos);
 
     StyleContext sc(startPos, length, initStyle, styler);
     styler.StartAt(startPos);
 
     StyleContext sc(startPos, length, initStyle, styler);
@@ -148,9 +156,9 @@ static void ColouriseAU3Doc(unsigned int startPos,
         {
             case SCE_AU3_COMMENTBLOCK:
             {
         {
             case SCE_AU3_COMMENTBLOCK:
             {
-                               if (!IsAWordChar(sc.ch))
+                               if (!(IsAWordChar(sc.ch) || (sc.ch == '-' && strcmp(s, "#comments") == 0)))
                                {
                                {
-                                       if ((strcmp(s, "#ce")==0 || strcmp(s, "#comments-end")==0)) 
+                                       if ((strcmp(s, "#ce")== 0 || strcmp(s, "#comments-end")== 0)) 
                                        {sc.SetState(SCE_AU3_COMMENT);}  // set to comment line for the rest of the line
                                        else
                                        {sc.SetState(SCE_AU3_COMMENTBLOCK);}
                                        {sc.SetState(SCE_AU3_COMMENT);}  // set to comment line for the rest of the line
                                        else
                                        {sc.SetState(SCE_AU3_COMMENTBLOCK);}
@@ -167,13 +175,18 @@ static void ColouriseAU3Doc(unsigned int startPos,
                 sc.SetState(SCE_AU3_DEFAULT);
                 break;
             }
                 sc.SetState(SCE_AU3_DEFAULT);
                 break;
             }
+            case SCE_AU3_SPECIAL:
+            {
+                if (sc.atLineEnd) {sc.SetState(SCE_AU3_DEFAULT);}
+                break;
+            }
             case SCE_AU3_KEYWORD:
             {
             case SCE_AU3_KEYWORD:
             {
-                if (!IsAWordChar(sc.ch))
+                if (!(IsAWordChar(sc.ch) || (sc.ch == '-' && (strcmp(s, "#comments") == 0 || strcmp(s, "#include") == 0))))
                 {
                     if (!IsTypeCharacter(sc.ch))
                     {
                 {
                     if (!IsTypeCharacter(sc.ch))
                     {
-                                               if (strcmp(s, "#cs")==0 || strcmp(s, "#comments-start")==0 )
+                                               if (strcmp(s, "#cs")== 0 || strcmp(s, "#comments-start")== 0 )
                                                {
                                                        sc.ChangeState(SCE_AU3_COMMENTBLOCK);
                                                        sc.SetState(SCE_AU3_COMMENTBLOCK);
                                                {
                                                        sc.ChangeState(SCE_AU3_COMMENTBLOCK);
                                                        sc.SetState(SCE_AU3_COMMENTBLOCK);
@@ -193,11 +206,19 @@ static void ColouriseAU3Doc(unsigned int startPos,
                                                else if (keywords5.InList(s)) {
                                                        sc.ChangeState(SCE_AU3_PREPROCESSOR);
                                                        sc.SetState(SCE_AU3_DEFAULT);
                                                else if (keywords5.InList(s)) {
                                                        sc.ChangeState(SCE_AU3_PREPROCESSOR);
                                                        sc.SetState(SCE_AU3_DEFAULT);
-                                                       if (strcmp(s, "#include")==0)
+                                                       if (strcmp(s, "#include")== 0)
                                                        {
                                                                si = 3;   // use to determine string start for #inlude <>
                                                        }
                                                }
                                                        {
                                                                si = 3;   // use to determine string start for #inlude <>
                                                        }
                                                }
+                                               else if (keywords6.InList(s)) {
+                                                       sc.ChangeState(SCE_AU3_SPECIAL);
+                                                       sc.SetState(SCE_AU3_SPECIAL);
+                                               }
+                                               else if (strcmp(s, "_") == 0) {
+                                                       sc.ChangeState(SCE_AU3_OPERATOR);
+                                                       sc.SetState(SCE_AU3_DEFAULT);
+                                               }
                                                else if (!IsAWordChar(sc.ch)) {
                                                        sc.ChangeState(SCE_AU3_DEFAULT);
                                                        sc.SetState(SCE_AU3_DEFAULT);
                                                else if (!IsAWordChar(sc.ch)) {
                                                        sc.ChangeState(SCE_AU3_DEFAULT);
                                                        sc.SetState(SCE_AU3_DEFAULT);
@@ -302,8 +323,8 @@ static void ColouriseAU3Doc(unsigned int startPos,
                                sc.SetState(SCE_AU3_STRING);
                                si = 2; }
             else if (IsADigit(sc.ch) || (sc.ch == '.' && IsADigit(sc.chNext))) {sc.SetState(SCE_AU3_NUMBER);}
                                sc.SetState(SCE_AU3_STRING);
                                si = 2; }
             else if (IsADigit(sc.ch) || (sc.ch == '.' && IsADigit(sc.chNext))) {sc.SetState(SCE_AU3_NUMBER);}
-            else if (IsAOperator(static_cast<char>(sc.ch))) {sc.SetState(SCE_AU3_OPERATOR);}
             else if (IsAWordStart(sc.ch)) {sc.SetState(SCE_AU3_KEYWORD);}
             else if (IsAWordStart(sc.ch)) {sc.SetState(SCE_AU3_KEYWORD);}
+            else if (IsAOperator(static_cast<char>(sc.ch))) {sc.SetState(SCE_AU3_OPERATOR);}
                        else if (sc.atLineEnd) {sc.SetState(SCE_AU3_DEFAULT);}
         }
     }      //for (; sc.More(); sc.Forward())
                        else if (sc.atLineEnd) {sc.SetState(SCE_AU3_DEFAULT);}
         }
     }      //for (; sc.More(); sc.Forward())
@@ -311,11 +332,62 @@ static void ColouriseAU3Doc(unsigned int startPos,
 }
 
 //
 }
 
 //
+static bool IsStreamCommentStyle(int style) {
+       return style == SCE_AU3_COMMENT || style == SCE_AU3_COMMENTBLOCK;
+}
+
 //
 //
-static void FoldAU3Doc(unsigned int startPos, int length, int, WordList *[], Accessor &styler)
+// Routine to find first none space on the current line and return its Style
+// needed for comment lines not starting on pos 1 
+static int GetStyleFirstWord(unsigned int szLine, Accessor &styler)
 {
 {
-               int endPos = startPos + length;
+       int nsPos = styler.LineStart(szLine);
+       int nePos = styler.LineStart(szLine+1) - 1;
+       while (isspacechar(styler.SafeGetCharAt(nsPos)) && nsPos < nePos)
+       {
+               nsPos++; // skip to next char
+
+       } // End While
+       return styler.StyleAt(nsPos);
 
 
+} // GetStyleFirstWord()
+
+//
+// Routine to check the last "none comment" character on a line to see if its a continuation
+// 
+static bool IsContinuationLine(unsigned int szLine, Accessor &styler)
+{
+       int nsPos = styler.LineStart(szLine);
+       int nePos = styler.LineStart(szLine+1) - 2;
+       //int stylech = styler.StyleAt(nsPos);
+       while (nsPos < nePos)
+       {
+               //stylech = styler.StyleAt(nePos);
+               int stylech = styler.StyleAt(nsPos);
+               if (!(stylech == SCE_AU3_COMMENT)) {
+                       char ch = styler.SafeGetCharAt(nePos);
+                       if (!isspacechar(ch)) {
+                               if (ch == '_')
+                                       return true;
+                               else
+                                       return false;
+                       }
+               }
+               nePos--; // skip to next char
+       } // End While
+       return false;
+} // IsContinuationLine()
+
+
+//
+static void FoldAU3Doc(unsigned int startPos, int length, int, WordList *[], Accessor &styler)
+{
+       int endPos = startPos + length;
+       // get settings from the config files for folding comments and preprocessor lines
+       bool foldComment = styler.GetPropertyInt("fold.comment") != 0;
+       bool foldInComment = styler.GetPropertyInt("fold.comment") == 2;
+       bool foldCompact = styler.GetPropertyInt("fold.compact", 1) != 0;
+       bool foldpreprocessor = styler.GetPropertyInt("fold.preprocessor") != 0;
        // Backtrack to previous line in case need to fix its fold status
        int lineCurrent = styler.GetLine(startPos);
        if (startPos > 0) {
        // Backtrack to previous line in case need to fix its fold status
        int lineCurrent = styler.GetLine(startPos);
        if (startPos > 0) {
@@ -324,35 +396,207 @@ static void FoldAU3Doc(unsigned int startPos, int length, int, WordList *[], Acc
                        startPos = styler.LineStart(lineCurrent);
                }
        }
                        startPos = styler.LineStart(lineCurrent);
                }
        }
-       int spaceFlags = 0;
-       int indentCurrent = styler.IndentAmount(lineCurrent, &spaceFlags, IsAU3Comment);
-       char chNext = styler[startPos];
+       // vars for style of previous/current/next lines 
+       int style = GetStyleFirstWord(lineCurrent,styler);
+       int stylePrev = 0;
+       // find the first previous line without continuation character at the end
+       while ((lineCurrent > 0 && IsContinuationLine(lineCurrent,styler)) ||
+              (lineCurrent > 1 && IsContinuationLine(lineCurrent-1,styler))) {
+               lineCurrent--;
+               startPos = styler.LineStart(lineCurrent);
+       }
+       if (lineCurrent > 0) {
+               stylePrev = GetStyleFirstWord(lineCurrent-1,styler);
+       }
+       // vars for getting first word to check for keywords
+       bool FirstWordStart = false;
+       bool FirstWordEnd = false;
+       char szKeyword[10]="";
+       int      szKeywordlen = 0;
+       char szThen[5]="";
+       int      szThenlen = 0;
+       bool ThenFoundLast = false;
+       // var for indentlevel
+       int levelCurrent = SC_FOLDLEVELBASE;
+       if (lineCurrent > 0)
+               levelCurrent = styler.LevelAt(lineCurrent-1) >> 16;
+       int levelNext = levelCurrent;
+       //  
+       int     visibleChars = 0;
+       char chNext = styler.SafeGetCharAt(startPos);
+       char chPrev = ' ';
+       //
        for (int i = startPos; i < endPos; i++) {
                char ch = chNext;
                chNext = styler.SafeGetCharAt(i + 1);
        for (int i = startPos; i < endPos; i++) {
                char ch = chNext;
                chNext = styler.SafeGetCharAt(i + 1);
-
-               if ((ch == '\r' && chNext != '\n') || (ch == '\n') || (i == endPos)) {
-                       int lev = indentCurrent;
-                       int indentNext = styler.IndentAmount(lineCurrent + 1, &spaceFlags, IsAU3Comment);
-                       if (!(indentCurrent & SC_FOLDLEVELWHITEFLAG)) {
-                               // Only non whitespace lines can be headers
-                               if ((indentCurrent & SC_FOLDLEVELNUMBERMASK) < (indentNext & SC_FOLDLEVELNUMBERMASK)) {
-                                       lev |= SC_FOLDLEVELHEADERFLAG;
-                               } else if (indentNext & SC_FOLDLEVELWHITEFLAG) {
-                                       // Line after is blank so check the next - maybe should continue further?
-                                       int spaceFlags2 = 0;
-                                       int indentNext2 = styler.IndentAmount(lineCurrent + 2, &spaceFlags2, IsAU3Comment);
-                                       if ((indentCurrent & SC_FOLDLEVELNUMBERMASK) < (indentNext2 & SC_FOLDLEVELNUMBERMASK)) {
-                                               lev |= SC_FOLDLEVELHEADERFLAG;
+               if (IsAWordChar(ch)) {
+                       visibleChars++;
+               }
+               // get the syle for the current character neede to check in comment
+               int stylech = styler.StyleAt(i);
+               // get first word for the line for indent check max 9 characters
+               if (FirstWordStart && (!(FirstWordEnd))) {
+                       if (!IsAWordChar(ch)) {
+                               FirstWordEnd = true;
+                               szKeyword[szKeywordlen] = '\0';
+                       }
+                       else {
+                               if (szKeywordlen < 10) {
+                               szKeyword[szKeywordlen++] = static_cast<char>(tolower(ch));
+                               }
+                       }
+               }
+               // start the capture of the first word 
+               if (!(FirstWordStart)) {
+                       if (IsAWordChar(ch) || IsAWordStart(ch) || ch == ';') {
+                               FirstWordStart = true;
+                               szKeyword[szKeywordlen++] = static_cast<char>(tolower(ch));
+                       }
+               }
+               // only process this logic when not in comment section
+               if (!(stylech == SCE_AU3_COMMENT)) {
+                       if (ThenFoundLast) {
+                               if (IsAWordChar(ch)) {
+                                       ThenFoundLast = false;
+                               }               
+                       }
+                       // find out if the word "then" is the last on a "if" line
+                       if (FirstWordEnd && strcmp(szKeyword,"if") == 0) {
+                               if (szThenlen == 4) {
+                                       szThen[0] = szThen[1];
+                                       szThen[1] = szThen[2];
+                                       szThen[2] = szThen[3];
+                                       szThen[3] = static_cast<char>(tolower(ch));
+                                       if (strcmp(szThen,"then") == 0 ) {
+                                               ThenFoundLast = true;
+                                       }
+                               }
+                               else {
+                                       szThen[szThenlen++] = static_cast<char>(tolower(ch));
+                                       if (szThenlen == 5) {
+                                               szThen[4] = '\0';
                                        }
                                }
                        }
                                        }
                                }
                        }
-                       indentCurrent = indentNext;
-                       styler.SetLevel(lineCurrent, lev);
+               }
+               // End of Line found so process the information 
+               if ((ch == '\r' && chNext != '\n') || (ch == '\n') || (i == endPos)) {
+                       // **************************
+                       // Folding logic for Keywords
+                       // **************************
+                       // if a keyword is found on the current line and the line doesn't end with _ (continuation)
+                       //    and we are not inside a commentblock.
+                       if (szKeywordlen > 0 && (!(chPrev == '_')) && 
+                               ((!(IsStreamCommentStyle(style)) || foldInComment)) ) {
+                               szKeyword[szKeywordlen] = '\0';
+                               // only fold "if" last keyword is "then"  (else its a one line if)
+                               if (strcmp(szKeyword,"if") == 0  && ThenFoundLast) {
+                                               levelNext++;
+                               }
+                               // create new fold for these words 
+                               if (strcmp(szKeyword,"do") == 0   || strcmp(szKeyword,"for") == 0 ||
+                                       strcmp(szKeyword,"func") == 0 || strcmp(szKeyword,"while") == 0||
+                                       strcmp(szKeyword,"#region") == 0 ) {
+                                               levelNext++;
+                               }
+                               // create double Fold for select because Case will subtract one of the current level
+                               if (strcmp(szKeyword,"select") == 0) {
+                                               levelNext++;
+                                               levelNext++;
+                               }
+                               // end the fold for these words before the current line
+                               if (strcmp(szKeyword,"endfunc") == 0 || strcmp(szKeyword,"endif") == 0 ||
+                                       strcmp(szKeyword,"next") == 0    || strcmp(szKeyword,"until") == 0 || 
+                                       strcmp(szKeyword,"wend") == 0){
+                                               levelNext--;
+                                               levelCurrent--;
+                               }
+                               // end the fold for these words before the current line and Start new fold 
+                               if (strcmp(szKeyword,"case") == 0      || strcmp(szKeyword,"else") == 0 ||
+                                       strcmp(szKeyword,"elseif") == 0 ) {
+                                               levelCurrent--;
+                               }
+                               // end the double fold for this word before the current line
+                               if (strcmp(szKeyword,"endselect") == 0 ) {
+                                               levelNext--;
+                                               levelNext--;
+                                               levelCurrent--;
+                                               levelCurrent--;
+                               }
+                               // end the fold for these words on the current line
+                               if (strcmp(szKeyword,"#endregion") == 0 ) {
+                                               levelNext--;
+                               }
+                       }
+                       // Preprocessor and Comment folding
+                       int styleNext = GetStyleFirstWord(lineCurrent + 1,styler);
+                       // *************************************
+                       // Folding logic for preprocessor blocks
+                       // *************************************
+                       // process preprosessor line
+                       if (foldpreprocessor && style == SCE_AU3_PREPROCESSOR) {
+                               if (!(stylePrev == SCE_AU3_PREPROCESSOR) && (styleNext == SCE_AU3_PREPROCESSOR)) {
+                                   levelNext++;
+                               }
+                               // fold till the last line for normal comment lines
+                               else if (stylePrev == SCE_AU3_PREPROCESSOR && !(styleNext == SCE_AU3_PREPROCESSOR)) {
+                                       levelNext--;
+                               }
+                       }
+                       // *********************************
+                       // Folding logic for Comment blocks
+                       // *********************************
+                       if (foldComment && IsStreamCommentStyle(style)) {
+                               // Start of a comment block
+                               if (!(stylePrev==style) && IsStreamCommentStyle(styleNext) && styleNext==style) {
+                                   levelNext++;
+                               } 
+                               // fold till the last line for normal comment lines
+                               else if (IsStreamCommentStyle(stylePrev) 
+                                               && !(styleNext == SCE_AU3_COMMENT)
+                                               && stylePrev == SCE_AU3_COMMENT 
+                                               && style == SCE_AU3_COMMENT) {
+                                       levelNext--;
+                               }
+                               // fold till the one but last line for Blockcomment lines
+                               else if (IsStreamCommentStyle(stylePrev) 
+                                               && !(styleNext == SCE_AU3_COMMENTBLOCK)
+                                               && style == SCE_AU3_COMMENTBLOCK) {
+                                       levelNext--;
+                                       levelCurrent--;
+                               }
+                       }
+                       int levelUse = levelCurrent;
+                       int lev = levelUse | levelNext << 16;
+                       if (visibleChars == 0 && foldCompact)
+                               lev |= SC_FOLDLEVELWHITEFLAG;
+                       if (levelUse < levelNext) {
+                               lev |= SC_FOLDLEVELHEADERFLAG;
+                       }
+                       if (lev != styler.LevelAt(lineCurrent)) {
+                               styler.SetLevel(lineCurrent, lev);
+                       }
+                       // reset values for the next line
                        lineCurrent++;
                        lineCurrent++;
+                       stylePrev = style;
+                       style = styleNext;
+                       levelCurrent = levelNext;
+                       visibleChars = 0;
+                       // if the last character is an Underscore then don't reset since the line continues on the next line.
+                       if (!(chPrev == '_')) {
+                               szKeywordlen = 0;
+                               szThenlen = 0;
+                               FirstWordStart = false;
+                               FirstWordEnd = false;
+                               ThenFoundLast = false;
+                       }
+               }
+               // save the last processed character
+               if (!isspacechar(ch)) {
+                       chPrev = ch;
+                       visibleChars++;
                }
        }
                }
        }
-
 }
 
 
 }
 
 
@@ -364,6 +608,7 @@ static const char * const AU3WordLists[] = {
     "#autoit macros",
     "#autoit Sent keys",
     "#autoit Pre-processors",
     "#autoit macros",
     "#autoit Sent keys",
     "#autoit Pre-processors",
+    "#autoit Special",
     0
 };
 LexerModule lmAU3(SCLEX_AU3, ColouriseAU3Doc, "au3", FoldAU3Doc , AU3WordLists);
     0
 };
 LexerModule lmAU3(SCLEX_AU3, ColouriseAU3Doc, "au3", FoldAU3Doc , AU3WordLists);
index 2e5f891b4b1fbf11757e5a1267ef0c022348420c..0227ce11088b7aa9ba73033e36a74f931bfcc306 100644 (file)
@@ -256,7 +256,7 @@ static void ColouriseDocument(
                        ColouriseLabel(sc, keywords, apostropheStartsAttribute);
 
                // Whitespace
                        ColouriseLabel(sc, keywords, apostropheStartsAttribute);
 
                // Whitespace
-               } else if (isspace(sc.ch)) {
+               } else if (IsASpace(sc.ch)) {
                        ColouriseWhiteSpace(sc, apostropheStartsAttribute);
 
                // Delimiters
                        ColouriseWhiteSpace(sc, apostropheStartsAttribute);
 
                // Delimiters
@@ -264,7 +264,7 @@ static void ColouriseDocument(
                        ColouriseDelimiter(sc, apostropheStartsAttribute);
 
                // Numbers
                        ColouriseDelimiter(sc, apostropheStartsAttribute);
 
                // Numbers
-               } else if (isdigit(sc.ch) || sc.ch == '#') {
+               } else if (IsADigit(sc.ch) || sc.ch == '#') {
                        ColouriseNumber(sc, apostropheStartsAttribute);
 
                // Keywords or identifiers
                        ColouriseNumber(sc, apostropheStartsAttribute);
 
                // Keywords or identifiers
@@ -310,11 +310,11 @@ static inline bool IsNumberCharacter(int ch) {
 }
 
 static inline bool IsNumberStartCharacter(int ch) {
 }
 
 static inline bool IsNumberStartCharacter(int ch) {
-       return isdigit(ch) != 0;
+       return IsADigit(ch);
 }
 
 static inline bool IsSeparatorOrDelimiterCharacter(int ch) {
 }
 
 static inline bool IsSeparatorOrDelimiterCharacter(int ch) {
-       return isspace(ch) || IsDelimiterCharacter(ch);
+       return IsASpace(ch) || IsDelimiterCharacter(ch);
 }
 
 static bool IsValidIdentifier(const SString& identifier) {
 }
 
 static bool IsValidIdentifier(const SString& identifier) {
@@ -377,7 +377,7 @@ static bool IsValidNumber(const SString& number) {
                                }
                                canBeSpecial = false;
                                seenDot = true;
                                }
                                canBeSpecial = false;
                                seenDot = true;
-                       } else if (isdigit(number[i])) {
+                       } else if (IsADigit(number[i])) {
                                canBeSpecial = true;
                        } else {
                                break;
                                canBeSpecial = true;
                        } else {
                                break;
@@ -398,7 +398,7 @@ static bool IsValidNumber(const SString& number) {
                                if (!canBeSpecial)
                                        return false;
                                canBeSpecial = false;
                                if (!canBeSpecial)
                                        return false;
                                canBeSpecial = false;
-                       } else if (isdigit (ch)) {
+                       } else if (IsADigit(ch)) {
                                base = base * 10 + (ch - '0');
                                if (base > 16)
                                        return false;
                                base = base * 10 + (ch - '0');
                                if (base > 16)
                                        return false;
@@ -436,7 +436,7 @@ static bool IsValidNumber(const SString& number) {
                                canBeSpecial = false;
                                seenDot = true;
 
                                canBeSpecial = false;
                                seenDot = true;
 
-                       } else if (isdigit (ch)) {
+                       } else if (IsADigit(ch)) {
                                if (ch - '0' >= base) {
                                        return false;
                                }
                                if (ch - '0' >= base) {
                                        return false;
                                }
@@ -496,7 +496,7 @@ static bool IsValidNumber(const SString& number) {
                                        return false;
                                }
                                canBeSpecial = false;
                                        return false;
                                }
                                canBeSpecial = false;
-                       } else if (isdigit(number[i])) {
+                       } else if (IsADigit(number[i])) {
                                canBeSpecial = true;
                        } else {
                                return false;
                                canBeSpecial = true;
                        } else {
                                return false;
@@ -512,9 +512,9 @@ static bool IsValidNumber(const SString& number) {
 }
 
 static inline bool IsWordCharacter(int ch) {
 }
 
 static inline bool IsWordCharacter(int ch) {
-       return IsWordStartCharacter(ch) || isdigit(ch);
+       return IsWordStartCharacter(ch) || IsADigit(ch);
 }
 
 static inline bool IsWordStartCharacter(int ch) {
 }
 
 static inline bool IsWordStartCharacter(int ch) {
-       return isalpha(ch) || ch == '_';
+       return (isascii(ch) && isalpha(ch)) || ch == '_';
 }
 }
diff --git a/contrib/src/stc/scintilla/src/LexAsn1.cxx b/contrib/src/stc/scintilla/src/LexAsn1.cxx
new file mode 100644 (file)
index 0000000..be6c3f2
--- /dev/null
@@ -0,0 +1,181 @@
+// Scintilla source code edit control
+/** @file LexAsn1.cxx
+ ** Lexer for ASN.1
+ **/
+// Copyright 2004 by Herr Pfarrer rpfarrer <at> yahoo <dot> de
+// Last Updated: 20/07/2004
+// The License.txt file describes the conditions under which this software may be distributed.
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <stdio.h>
+#include <stdarg.h>
+
+#include "Platform.h"
+
+#include "PropSet.h"
+#include "Accessor.h"
+#include "StyleContext.h"
+#include "KeyWords.h"
+#include "Scintilla.h"
+#include "SciLexer.h"
+
+// Some char test functions
+static bool isAsn1Number(int ch)
+{
+       return (ch >= '0' && ch <= '9');
+}
+
+static bool isAsn1Letter(int ch)
+{
+       return (ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z');
+}
+
+static bool isAsn1Char(int ch)
+{
+       return (ch == '-' ) || isAsn1Number(ch) || isAsn1Letter (ch);
+}
+
+//
+//     Function determining the color of a given code portion
+//     Based on a "state"
+//
+static void ColouriseAsn1Doc(unsigned int startPos, int length, int initStyle, WordList *keywordLists[], Accessor &styler)
+{
+       // The keywords
+       WordList &Keywords = *keywordLists[0];
+       WordList &Attributes = *keywordLists[1];
+       WordList &Descriptors = *keywordLists[2];
+       WordList &Types = *keywordLists[3];
+
+       // Parse the whole buffer character by character using StyleContext
+       StyleContext sc(startPos, length, initStyle, styler);
+       for (; sc.More(); sc.Forward())
+       {
+               // The state engine
+               switch (sc.state)
+               {
+               case SCE_ASN1_DEFAULT:          // Plain characters
+asn1_default:
+                       if (sc.ch == '-' && sc.chNext == '-')
+                               // A comment begins here
+                               sc.SetState(SCE_ASN1_COMMENT);
+                       else if (sc.ch == '"')
+                               // A string begins here
+                               sc.SetState(SCE_ASN1_STRING);
+                       else if (isAsn1Number (sc.ch))
+                               // A number starts here (identifier should start with a letter in ASN.1)
+                               sc.SetState(SCE_ASN1_SCALAR);
+                       else if (isAsn1Char (sc.ch))
+                               // An identifier starts here (identifier always start with a letter)
+                               sc.SetState(SCE_ASN1_IDENTIFIER);
+                       else if (sc.ch == ':')
+                               // A ::= operator starts here
+                               sc.SetState(SCE_ASN1_OPERATOR);
+                       break;
+               case SCE_ASN1_COMMENT:          // A comment
+                       if (sc.ch == '\r' || sc.ch == '\n')
+                               // A comment ends here
+                               sc.SetState(SCE_ASN1_DEFAULT);
+                       break;
+               case SCE_ASN1_IDENTIFIER:       // An identifier (keyword, attribute, descriptor or type)
+                       if (!isAsn1Char (sc.ch))
+                       {
+                               // The end of identifier is here: we can look for it in lists by now and change its state
+                               char s[100];
+                               sc.GetCurrent(s, sizeof(s));
+                               if (Keywords.InList(s))
+                                       // It's a keyword, change its state
+                                       sc.ChangeState(SCE_ASN1_KEYWORD);
+                               else if (Attributes.InList(s))
+                                       // It's an attribute, change its state
+                                       sc.ChangeState(SCE_ASN1_ATTRIBUTE);
+                               else if (Descriptors.InList(s))
+                                       // It's a descriptor, change its state
+                                       sc.ChangeState(SCE_ASN1_DESCRIPTOR);
+                               else if (Types.InList(s))
+                                       // It's a type, change its state
+                                       sc.ChangeState(SCE_ASN1_TYPE);
+
+                               // Set to default now
+                               sc.SetState(SCE_ASN1_DEFAULT);
+                       }
+                       break;
+               case SCE_ASN1_STRING:           // A string delimited by ""
+                       if (sc.ch == '"')
+                       {
+                               // A string ends here
+                               sc.ForwardSetState(SCE_ASN1_DEFAULT);
+
+                               // To correctly manage a char sticking to the string quote
+                               goto asn1_default;
+                       }
+                       break;
+               case SCE_ASN1_SCALAR:           // A plain number
+                       if (!isAsn1Number (sc.ch))
+                               // A number ends here
+                               sc.SetState(SCE_ASN1_DEFAULT);
+                       break;
+               case SCE_ASN1_OPERATOR:         // The affectation operator ::= and wath follows (eg: ::= { org 6 } OID or ::= 12 trap)
+                       if (sc.ch == '{')
+                       {
+                               // An OID definition starts here: enter the sub loop
+                               for (; sc.More(); sc.Forward())
+                               {
+                                       if (isAsn1Number (sc.ch) && (!isAsn1Char (sc.chPrev) || isAsn1Number (sc.chPrev)))
+                                               // The OID number is highlighted
+                                               sc.SetState(SCE_ASN1_OID);
+                                       else if (isAsn1Char (sc.ch))
+                                               // The OID parent identifier is plain
+                                               sc.SetState(SCE_ASN1_IDENTIFIER);
+                                       else
+                                               sc.SetState(SCE_ASN1_DEFAULT);
+
+                                       if (sc.ch == '}')
+                                               // Here ends the OID and the operator sub loop: go back to main loop
+                                               break;
+                               }
+                       }
+                       else if (isAsn1Number (sc.ch))
+                       {
+                               // A trap number definition starts here: enter the sub loop
+                               for (; sc.More(); sc.Forward())
+                               {
+                                       if (isAsn1Number (sc.ch))
+                                               // The trap number is highlighted
+                                               sc.SetState(SCE_ASN1_OID);
+                                       else
+                                       {
+                                               // The number ends here: go back to main loop
+                                               sc.SetState(SCE_ASN1_DEFAULT);
+                                               break;
+                                       }
+                               }
+                       }
+                       else if (sc.ch != ':' && sc.ch != '=' && sc.ch != ' ')
+                               // The operator doesn't imply an OID definition nor a trap, back to main loop
+                               goto asn1_default; // To be sure to handle actually the state change
+                       break;
+               }
+       }
+       sc.Complete();
+}
+
+static void FoldAsn1Doc(unsigned int, int, int, WordList *[], Accessor &styler)
+{
+       // No folding enabled, no reason to continue...
+       if( styler.GetPropertyInt("fold") == 0 )
+               return;
+
+       // No folding implemented: doesn't make sense for ASN.1
+}
+
+static const char * const asn1WordLists[] = {
+       "Keywords",
+       "Attributes",
+       "Descriptors",
+       "Types",
+       0, };
+
+
+LexerModule lmAsn1(SCLEX_ASN1, ColouriseAsn1Doc, "asn1", FoldAsn1Doc, asn1WordLists);
index 9c8ea416ae6b3b36063090f26addb4696f7fe626..c6ca0650585470cf431a24f9579f0f02c794b01a 100644 (file)
@@ -123,7 +123,7 @@ static void ColouriseCppDoc(unsigned int startPos, int length, int initStyle, Wo
                                        sc.SetState(SCE_C_DEFAULT);
                                }
                        } else {
                                        sc.SetState(SCE_C_DEFAULT);
                                }
                        } else {
-                               if ((sc.atLineEnd) || (sc.Match('/', '*')) || (sc.Match('/', '/'))) {
+                               if ((sc.ch == '\r') || (sc.ch == '\n') || (sc.Match('/', '*')) || (sc.Match('/', '/'))) {
                                        sc.SetState(SCE_C_DEFAULT);
                                }
                        }
                                        sc.SetState(SCE_C_DEFAULT);
                                }
                        }
@@ -140,7 +140,7 @@ static void ColouriseCppDoc(unsigned int startPos, int length, int initStyle, Wo
                                sc.SetState(SCE_C_COMMENTDOCKEYWORD);
                        }
                } else if (sc.state == SCE_C_COMMENTLINE || sc.state == SCE_C_COMMENTLINEDOC) {
                                sc.SetState(SCE_C_COMMENTDOCKEYWORD);
                        }
                } else if (sc.state == SCE_C_COMMENTLINE || sc.state == SCE_C_COMMENTLINEDOC) {
-                       if (sc.atLineEnd) {
+                       if (sc.ch == '\r' || sc.ch == '\n') {
                                sc.SetState(SCE_C_DEFAULT);
                                visibleChars = 0;
                        }
                                sc.SetState(SCE_C_DEFAULT);
                                visibleChars = 0;
                        }
@@ -235,7 +235,8 @@ static void ColouriseCppDoc(unsigned int startPos, int length, int initStyle, Wo
                                }
                                sc.Forward();   // Eat the * so it isn't used for the end of the comment
                        } else if (sc.Match('/', '/')) {
                                }
                                sc.Forward();   // Eat the * so it isn't used for the end of the comment
                        } else if (sc.Match('/', '/')) {
-                               if (sc.Match("///") || sc.Match("//!")) // Support of Qt/Doxygen doc. style
+                               if ((sc.Match("///") && !sc.Match("////")) || sc.Match("//!"))
+                                       // Support of Qt/Doxygen doc. style
                                        sc.SetState(SCE_C_COMMENTLINEDOC);
                                else
                                        sc.SetState(SCE_C_COMMENTLINE);
                                        sc.SetState(SCE_C_COMMENTLINEDOC);
                                else
                                        sc.SetState(SCE_C_COMMENTLINE);
@@ -252,7 +253,7 @@ static void ColouriseCppDoc(unsigned int startPos, int length, int initStyle, Wo
                                do {
                                        sc.Forward();
                                } while ((sc.ch == ' ' || sc.ch == '\t') && sc.More());
                                do {
                                        sc.Forward();
                                } while ((sc.ch == ' ' || sc.ch == '\t') && sc.More());
-                               if (sc.atLineEnd) {
+                               if (sc.ch == '\r' || sc.ch == '\n') {
                                        sc.SetState(SCE_C_DEFAULT);
                                }
                        } else if (isoperator(static_cast<char>(sc.ch))) {
                                        sc.SetState(SCE_C_DEFAULT);
                                }
                        } else if (isoperator(static_cast<char>(sc.ch))) {
index 11daa142388d83d3080f53c7b878d8a3b4a1a281..f45ce1cda4c656fedf11860b19e74be7b851765c 100644 (file)
@@ -1,7 +1,8 @@
 // Scintilla source code edit control
 /** @file LexCSS.cxx
 // Scintilla source code edit control
 /** @file LexCSS.cxx
- ** Lexer for Cascade Style Sheets
+ ** Lexer for Cascading Style Sheets
  ** Written by Jakub Vrána
  ** Written by Jakub Vrána
+ ** Improved by Philippe Lhoste (CSS2)
  **/
 // Copyright 1998-2002 by Neil Hodgson <neilh@scintilla.org>
 // The License.txt file describes the conditions under which this software may be distributed.
  **/
 // Copyright 1998-2002 by Neil Hodgson <neilh@scintilla.org>
 // The License.txt file describes the conditions under which this software may be distributed.
 #include "Scintilla.h"
 #include "SciLexer.h"
 
 #include "Scintilla.h"
 #include "SciLexer.h"
 
+
 static inline bool IsAWordChar(const unsigned int ch) {
        return (isalnum(ch) || ch == '-' || ch == '_' || ch >= 161); // _ is not in fact correct CSS word-character
 }
 
 inline bool IsCssOperator(const char ch) {
 static inline bool IsAWordChar(const unsigned int ch) {
        return (isalnum(ch) || ch == '-' || ch == '_' || ch >= 161); // _ is not in fact correct CSS word-character
 }
 
 inline bool IsCssOperator(const char ch) {
-       if (!isalnum(ch) && (ch == '{' || ch == '}' || ch == ':' || ch == ',' || ch == ';' || ch == '.' || ch == '#' || ch == '!' || ch == '@'))
+       if (!isalnum(ch) &&
+               (ch == '{' || ch == '}' || ch == ':' || ch == ',' || ch == ';' ||
+                ch == '.' || ch == '#' || ch == '!' || ch == '@' ||
+                /* CSS2 */
+                ch == '*' || ch == '>' || ch == '+' || ch == '=' || ch == '~' || ch == '|' ||
+                ch == '[' || ch == ']' || ch == '(' || ch == ')')) {
                return true;
                return true;
+       }
        return false;
 }
 
 static void ColouriseCssDoc(unsigned int startPos, int length, int initStyle, WordList *keywordlists[], Accessor &styler) {
        WordList &keywords = *keywordlists[0];
        WordList &pseudoClasses = *keywordlists[1];
        return false;
 }
 
 static void ColouriseCssDoc(unsigned int startPos, int length, int initStyle, WordList *keywordlists[], Accessor &styler) {
        WordList &keywords = *keywordlists[0];
        WordList &pseudoClasses = *keywordlists[1];
+       WordList &keywords2 = *keywordlists[2];
 
        StyleContext sc(startPos, length, initStyle, styler);
 
 
        StyleContext sc(startPos, length, initStyle, styler);
 
@@ -44,7 +53,8 @@ static void ColouriseCssDoc(unsigned int startPos, int length, int initStyle, Wo
        for (; sc.More(); sc.Forward()) {
                if (sc.state == SCE_CSS_COMMENT && sc.Match('*', '/')) {
                        if (lastStateC == -1) {
        for (; sc.More(); sc.Forward()) {
                if (sc.state == SCE_CSS_COMMENT && sc.Match('*', '/')) {
                        if (lastStateC == -1) {
-                               // backtrack to get last state
+                               // backtrack to get last state:
+                               // comments are like whitespace, so we must return to the previous state
                                unsigned int i = startPos;
                                for (; i > 0; i--) {
                                        if ((lastStateC = styler.StyleAt(i-1)) != SCE_CSS_COMMENT) {
                                unsigned int i = startPos;
                                for (; i > 0; i--) {
                                        if ((lastStateC = styler.StyleAt(i-1)) != SCE_CSS_COMMENT) {
@@ -104,14 +114,15 @@ static void ColouriseCssDoc(unsigned int startPos, int length, int initStyle, Wo
                                        sc.SetState(SCE_CSS_IDENTIFIER);
                                break;
                        case '}':
                                        sc.SetState(SCE_CSS_IDENTIFIER);
                                break;
                        case '}':
-                               if (lastState == SCE_CSS_DEFAULT || lastState == SCE_CSS_VALUE || lastState == SCE_CSS_IMPORTANT || lastState == SCE_CSS_IDENTIFIER)
+                               if (lastState == SCE_CSS_DEFAULT || lastState == SCE_CSS_VALUE || lastState == SCE_CSS_IMPORTANT ||
+                                       lastState == SCE_CSS_IDENTIFIER || lastState == SCE_CSS_IDENTIFIER2)
                                        sc.SetState(SCE_CSS_DEFAULT);
                                break;
                        case ':':
                                if (lastState == SCE_CSS_TAG || lastState == SCE_CSS_PSEUDOCLASS || lastState == SCE_CSS_DEFAULT ||
                                        lastState == SCE_CSS_CLASS || lastState == SCE_CSS_ID || lastState == SCE_CSS_UNKNOWN_PSEUDOCLASS)
                                        sc.SetState(SCE_CSS_PSEUDOCLASS);
                                        sc.SetState(SCE_CSS_DEFAULT);
                                break;
                        case ':':
                                if (lastState == SCE_CSS_TAG || lastState == SCE_CSS_PSEUDOCLASS || lastState == SCE_CSS_DEFAULT ||
                                        lastState == SCE_CSS_CLASS || lastState == SCE_CSS_ID || lastState == SCE_CSS_UNKNOWN_PSEUDOCLASS)
                                        sc.SetState(SCE_CSS_PSEUDOCLASS);
-                               else if (lastState == SCE_CSS_IDENTIFIER || lastState == SCE_CSS_UNKNOWN_IDENTIFIER)
+                               else if (lastState == SCE_CSS_IDENTIFIER || lastState == SCE_CSS_IDENTIFIER2 || lastState == SCE_CSS_UNKNOWN_IDENTIFIER)
                                        sc.SetState(SCE_CSS_VALUE);
                                break;
                        case '.':
                                        sc.SetState(SCE_CSS_VALUE);
                                break;
                        case '.':
@@ -146,7 +157,8 @@ static void ColouriseCssDoc(unsigned int startPos, int length, int initStyle, Wo
                }
 
                if (IsAWordChar(sc.chPrev) && (
                }
 
                if (IsAWordChar(sc.chPrev) && (
-                       sc.state == SCE_CSS_IDENTIFIER || sc.state == SCE_CSS_UNKNOWN_IDENTIFIER
+                       sc.state == SCE_CSS_IDENTIFIER || sc.state == SCE_CSS_IDENTIFIER2
+                       || sc.state == SCE_CSS_UNKNOWN_IDENTIFIER
                        || sc.state == SCE_CSS_PSEUDOCLASS || sc.state == SCE_CSS_UNKNOWN_PSEUDOCLASS
                        || sc.state == SCE_CSS_IMPORTANT
                )) {
                        || sc.state == SCE_CSS_PSEUDOCLASS || sc.state == SCE_CSS_UNKNOWN_PSEUDOCLASS
                        || sc.state == SCE_CSS_IMPORTANT
                )) {
@@ -157,12 +169,19 @@ static void ColouriseCssDoc(unsigned int startPos, int length, int initStyle, Wo
                                s2++;
                        switch (sc.state) {
                        case SCE_CSS_IDENTIFIER:
                                s2++;
                        switch (sc.state) {
                        case SCE_CSS_IDENTIFIER:
-                               if (!keywords.InList(s2))
-                                       sc.ChangeState(SCE_CSS_UNKNOWN_IDENTIFIER);
+                               if (!keywords.InList(s2)) {
+                                       if (keywords2.InList(s2)) {
+                                               sc.ChangeState(SCE_CSS_IDENTIFIER2);
+                                       } else {
+                                               sc.ChangeState(SCE_CSS_UNKNOWN_IDENTIFIER);
+                                       }
+                               }
                                break;
                        case SCE_CSS_UNKNOWN_IDENTIFIER:
                                if (keywords.InList(s2))
                                        sc.ChangeState(SCE_CSS_IDENTIFIER);
                                break;
                        case SCE_CSS_UNKNOWN_IDENTIFIER:
                                if (keywords.InList(s2))
                                        sc.ChangeState(SCE_CSS_IDENTIFIER);
+                               else if (keywords2.InList(s2))
+                                       sc.ChangeState(SCE_CSS_IDENTIFIER2);
                                break;
                        case SCE_CSS_PSEUDOCLASS:
                                if (!pseudoClasses.InList(s2))
                                break;
                        case SCE_CSS_PSEUDOCLASS:
                                if (!pseudoClasses.InList(s2))
@@ -253,8 +272,9 @@ static void FoldCSSDoc(unsigned int startPos, int length, int, WordList *[], Acc
 }
 
 static const char * const cssWordListDesc[] = {
 }
 
 static const char * const cssWordListDesc[] = {
-       "Keywords",
+       "CSS1 Keywords",
        "Pseudo classes",
        "Pseudo classes",
+       "CSS2 Keywords",
        0
 };
 
        0
 };
 
index d2cd30f60e2ee44335d3806f317b9cc63b51e755..e3546b436fdb6b1674a29fef85e44e92a3cedd71 100644 (file)
@@ -314,7 +314,7 @@ static void classifyWordHTPy(unsigned int start, unsigned int end, WordList &key
 // Called when in a PHP word
 static void classifyWordHTPHP(unsigned int start, unsigned int end, WordList &keywords, Accessor &styler) {
        char chAttr = SCE_HPHP_DEFAULT;
 // Called when in a PHP word
 static void classifyWordHTPHP(unsigned int start, unsigned int end, WordList &keywords, Accessor &styler) {
        char chAttr = SCE_HPHP_DEFAULT;
-       bool wordIsNumber = IsADigit(styler[start]);
+       bool wordIsNumber = IsADigit(styler[start]) || (styler[start] == '.' && start+1 <= end && IsADigit(styler[start+1]));
        if (wordIsNumber)
                chAttr = SCE_HPHP_NUMBER;
        else {
        if (wordIsNumber)
                chAttr = SCE_HPHP_NUMBER;
        else {
@@ -637,9 +637,10 @@ static void ColouriseHyperTextDoc(unsigned int startPos, int length, int initSty
                         (state != SCE_HPHP_COMMENT) &&
                         (ch == '<') &&
                         (chNext == '?')) {
                         (state != SCE_HPHP_COMMENT) &&
                         (ch == '<') &&
                         (chNext == '?')) {
+                       scriptLanguage = segIsScriptingIndicator(styler, styler.GetStartSegment() + 2, i + 10, eScriptPHP);
+                       if (scriptLanguage != eScriptPHP && isStringState(state)) continue;
                        styler.ColourTo(i - 1, StateToPrint);
                        beforePreProc = state;
                        styler.ColourTo(i - 1, StateToPrint);
                        beforePreProc = state;
-                       scriptLanguage = segIsScriptingIndicator(styler, styler.GetStartSegment() + 2, i + 10, eScriptPHP);
                        i++;
                        visibleChars++;
                        i += PrintScriptingIndicatorOffset(styler, styler.GetStartSegment() + 2, i + 10);
                        i++;
                        visibleChars++;
                        i += PrintScriptingIndicatorOffset(styler, styler.GetStartSegment() + 2, i + 10);
@@ -1495,7 +1496,7 @@ static void ColouriseHyperTextDoc(unsigned int startPos, int length, int initSty
                        }
                        break;
                case SCE_HPHP_NUMBER:
                        }
                        break;
                case SCE_HPHP_NUMBER:
-                       if (!IsADigit(ch)) {
+                       if (!IsADigit(ch) && ch != '.' && ch != 'e' && ch != 'E' && (ch != '-' || (chPrev != 'e' && chPrev != 'E'))) {
                                styler.ColourTo(i - 1, SCE_HPHP_NUMBER);
                                if (isoperator(ch))
                                        state = SCE_HPHP_OPERATOR;
                                styler.ColourTo(i - 1, SCE_HPHP_NUMBER);
                                if (isoperator(ch))
                                        state = SCE_HPHP_OPERATOR;
@@ -1567,7 +1568,7 @@ static void ColouriseHyperTextDoc(unsigned int startPos, int length, int initSty
                case SCE_HPHP_OPERATOR:
                case SCE_HPHP_DEFAULT:
                        styler.ColourTo(i - 1, StateToPrint);
                case SCE_HPHP_OPERATOR:
                case SCE_HPHP_DEFAULT:
                        styler.ColourTo(i - 1, StateToPrint);
-                       if (IsADigit(ch)) {
+                       if (IsADigit(ch) || (ch == '.' && IsADigit(chNext))) {
                                state = SCE_HPHP_NUMBER;
                        } else if (iswordstart(ch)) {
                                state = SCE_HPHP_WORD;
                                state = SCE_HPHP_NUMBER;
                        } else if (iswordstart(ch)) {
                                state = SCE_HPHP_WORD;
index 9cd5433c89630299cb796c5b1c9b464464483b62..549b573e2ed3275a31d97e9a5d1dfdbdadd7d01a 100644 (file)
@@ -66,9 +66,6 @@ static void ColouriseLispDoc(unsigned int startPos, int length, int initStyle, W
        styler.StartAt(startPos);
 
        int state = initStyle;
        styler.StartAt(startPos);
 
        int state = initStyle;
-       if (state == SCE_LISP_STRINGEOL)        // Does not leak onto next line
-               state = SCE_LISP_DEFAULT;
-       char chPrev = ' ';
        char chNext = styler[startPos];
        unsigned int lengthDoc = startPos + length;
        styler.StartSegment(startPos);
        char chNext = styler[startPos];
        unsigned int lengthDoc = startPos + length;
        styler.StartSegment(startPos);
@@ -77,19 +74,9 @@ static void ColouriseLispDoc(unsigned int startPos, int length, int initStyle, W
                chNext = styler.SafeGetCharAt(i + 1);
 
                bool atEOL = (ch == '\r' && chNext != '\n') || (ch == '\n');
                chNext = styler.SafeGetCharAt(i + 1);
 
                bool atEOL = (ch == '\r' && chNext != '\n') || (ch == '\n');
-               if (atEOL) {
-                       // Trigger on CR only (Mac style) or either on LF from CR+LF (Dos/Win) or on LF alone (Unix)
-                       // Avoid triggering two times on Dos/Win
-                       // End of line
-                       if (state == SCE_LISP_STRINGEOL) {
-                               styler.ColourTo(i, state);
-                               state = SCE_LISP_DEFAULT;
-                       }
-               }
 
                if (styler.IsLeadByte(ch)) {
                        chNext = styler.SafeGetCharAt(i + 2);
 
                if (styler.IsLeadByte(ch)) {
                        chNext = styler.SafeGetCharAt(i + 2);
-                       chPrev = ' ';
                        i += 1;
                        continue;
                }
                        i += 1;
                        continue;
                }
@@ -107,9 +94,9 @@ static void ColouriseLispDoc(unsigned int startPos, int length, int initStyle, W
                                styler.ColourTo(i - 1, state);
                                styler.ColourTo(i, SCE_LISP_OPERATOR);
                        }
                                styler.ColourTo(i - 1, state);
                                styler.ColourTo(i, SCE_LISP_OPERATOR);
                        }
-
                        else if (ch == '\"') {
                        else if (ch == '\"') {
-                                       state = SCE_LISP_STRING;
+                               styler.ColourTo(i - 1, state);
+                               state = SCE_LISP_STRING;
                        }
                } else if (state == SCE_LISP_IDENTIFIER) {
                        if (!isLispwordstart(ch)) {
                        }
                } else if (state == SCE_LISP_IDENTIFIER) {
                        if (!isLispwordstart(ch)) {
@@ -131,20 +118,15 @@ static void ColouriseLispDoc(unsigned int startPos, int length, int initStyle, W
                                if (ch == '\\') {
                                        if (chNext == '\"' || chNext == '\'' || chNext == '\\') {
                                                i++;
                                if (ch == '\\') {
                                        if (chNext == '\"' || chNext == '\'' || chNext == '\\') {
                                                i++;
-                                               ch = chNext;
                                                chNext = styler.SafeGetCharAt(i + 1);
                                        }
                                } else if (ch == '\"') {
                                        styler.ColourTo(i, state);
                                        state = SCE_LISP_DEFAULT;
                                                chNext = styler.SafeGetCharAt(i + 1);
                                        }
                                } else if (ch == '\"') {
                                        styler.ColourTo(i, state);
                                        state = SCE_LISP_DEFAULT;
-                               } else if ((chNext == '\r' || chNext == '\n') && (chPrev != '\\')) {
-                                       styler.ColourTo(i - 1, SCE_LISP_STRINGEOL);
-                                       state = SCE_LISP_STRINGEOL;
                                }
                        }
                }
 
                                }
                        }
                }
 
-               chPrev = ch;
        }
        styler.ColourTo(lengthDoc - 1, state);
 }
        }
        styler.ColourTo(lengthDoc - 1, state);
 }
index 3781eed83af5877c6dd18df13cdbe9a337526b07..3e4b25cb5e9acb3c600b0077ef09545673d0e900 100644 (file)
@@ -138,7 +138,7 @@ static void ColouriseLuaDoc(
                                sc.SetState(SCE_LUA_DEFAULT);
                        }
                } else if (sc.state == SCE_LUA_IDENTIFIER) {
                                sc.SetState(SCE_LUA_DEFAULT);
                        }
                } else if (sc.state == SCE_LUA_IDENTIFIER) {
-                       if (!IsAWordChar(sc.ch)) {
+                       if (!IsAWordChar(sc.ch) || sc.Match('.', '.')) {
                                char s[100];
                                sc.GetCurrent(s, sizeof(s));
                                if (keywords.InList(s)) {
                                char s[100];
                                sc.GetCurrent(s, sizeof(s));
                                if (keywords.InList(s)) {
index 1681ba5d4a6bd38c218d4ea4ad68cf1a90795d4b..f777e300fa24ec132a68137cc899bc81762a8a62 100644 (file)
@@ -330,6 +330,7 @@ static void FoldPropsDoc(unsigned int startPos, int length, int, WordList *[], A
        char chNext = styler[startPos];
        int styleNext = styler.StyleAt(startPos);
        bool headerPoint = false;
        char chNext = styler[startPos];
        int styleNext = styler.StyleAt(startPos);
        bool headerPoint = false;
+       int lev;
 
        for (unsigned int i = startPos; i < endPos; i++) {
                char ch = chNext;
 
        for (unsigned int i = startPos; i < endPos; i++) {
                char ch = chNext;
@@ -339,21 +340,32 @@ static void FoldPropsDoc(unsigned int startPos, int length, int, WordList *[], A
                styleNext = styler.StyleAt(i + 1);
                bool atEOL = (ch == '\r' && chNext != '\n') || (ch == '\n');
 
                styleNext = styler.StyleAt(i + 1);
                bool atEOL = (ch == '\r' && chNext != '\n') || (ch == '\n');
 
-               if (style==2) {
+               if (style == SCE_PROPS_SECTION) {
                        headerPoint = true;
                }
 
                if (atEOL) {
                        headerPoint = true;
                }
 
                if (atEOL) {
-                       int lev = SC_FOLDLEVELBASE+1;
-                       if (headerPoint)
-                               lev = SC_FOLDLEVELBASE;
+                       lev = SC_FOLDLEVELBASE;
+
+                       if (lineCurrent > 0) {
+                               int levelPrevious = styler.LevelAt(lineCurrent - 1);
 
 
+                               if (levelPrevious & SC_FOLDLEVELHEADERFLAG) {
+                                       lev = SC_FOLDLEVELBASE + 1;
+                               } else {
+                                       lev = levelPrevious & SC_FOLDLEVELNUMBERMASK;
+                               }
+                       }
+
+                       if (headerPoint) {
+                               lev = SC_FOLDLEVELBASE;
+                       }
                        if (visibleChars == 0 && foldCompact)
                                lev |= SC_FOLDLEVELWHITEFLAG;
 
                        if (visibleChars == 0 && foldCompact)
                                lev |= SC_FOLDLEVELWHITEFLAG;
 
-                       if (headerPoint)
+                       if (headerPoint) {
                                lev |= SC_FOLDLEVELHEADERFLAG;
                                lev |= SC_FOLDLEVELHEADERFLAG;
-
+                       }
                        if (lev != styler.LevelAt(lineCurrent)) {
                                styler.SetLevel(lineCurrent, lev);
                        }
                        if (lev != styler.LevelAt(lineCurrent)) {
                                styler.SetLevel(lineCurrent, lev);
                        }
@@ -366,9 +378,18 @@ static void FoldPropsDoc(unsigned int startPos, int length, int, WordList *[], A
                        visibleChars++;
        }
 
                        visibleChars++;
        }
 
-       int lev = headerPoint ? SC_FOLDLEVELBASE : SC_FOLDLEVELBASE+1;
-       int flagsNext = styler.LevelAt(lineCurrent) & ~SC_FOLDLEVELNUMBERMASK;
-       styler.SetLevel(lineCurrent, lev | flagsNext);
+       if (lineCurrent > 0) {
+               int levelPrevious = styler.LevelAt(lineCurrent - 1);
+               if (levelPrevious & SC_FOLDLEVELHEADERFLAG) {
+                       lev = SC_FOLDLEVELBASE + 1;
+               } else {
+                       lev = levelPrevious & SC_FOLDLEVELNUMBERMASK;
+               }
+       } else {
+               lev = SC_FOLDLEVELBASE;
+       }
+       int flagsNext = styler.LevelAt(lineCurrent);
+       styler.SetLevel(lineCurrent, lev | flagsNext & ~SC_FOLDLEVELNUMBERMASK);
 }
 
 static void ColouriseMakeLine(
 }
 
 static void ColouriseMakeLine(
@@ -523,6 +544,15 @@ static void ColouriseErrorListLine(
                strstr(lineBuffer, ", file ")) {
                // Essential Lahey Fortran error message
                styler.ColourTo(endPos, SCE_ERR_ELF);
                strstr(lineBuffer, ", file ")) {
                // Essential Lahey Fortran error message
                styler.ColourTo(endPos, SCE_ERR_ELF);
+       } else if (strstart(lineBuffer, "line ") &&
+                      strstr(lineBuffer, " column ")) {
+               // HTML tidy style: line 42 column 1
+               styler.ColourTo(endPos, SCE_ERR_TIDY);
+       } else if (strstart(lineBuffer, "\tat ") &&
+               strstr(lineBuffer, "(") &&
+               strstr(lineBuffer, ".java:")) {
+               // Java stack back trace
+               styler.ColourTo(endPos, SCE_ERR_JAVA_STACK);
        } else {
                // Look for GCC <filename>:<line>:message
                // Look for Microsoft <filename>(line) :message
        } else {
                // Look for GCC <filename>:<line>:message
                // Look for Microsoft <filename>(line) :message
index 775b5587257d750d34c214e05f6e1332b6b8f0d1..7878a6bf8f0667414782da52b28dc043f70ad1fc 100644 (file)
@@ -3,10 +3,32 @@
 // Lexer for PowerBasic by Roland Walter, roland@rowalt.de (for PowerBasic see www.powerbasic.com)
 //
 // Changes:
 // Lexer for PowerBasic by Roland Walter, roland@rowalt.de (for PowerBasic see www.powerbasic.com)
 //
 // Changes:
-// 17.10.2003 Toggling of subs/functions now until next sub/function - this gives better results
-// 29.10.2003 1. Bug: Toggling didn't work for subs/functions added in editor
-//            2. Own colors for PB constants and Inline Assembler SCE_B_CONSTANT and SCE_B_ASM
-//            3. Several smaller syntax coloring improvements and speed optimizations
+// 17.10.2003: Toggling of subs/functions now until next sub/function - this gives better results
+// 29.10.2003: 1. Bug: Toggling didn't work for subs/functions added in editor
+//             2. Own colors for PB constants and Inline Assembler SCE_B_CONSTANT and SCE_B_ASM
+//             3. Several smaller syntax coloring improvements and speed optimizations
+// 12.07.2004: 1. Toggling for macros added
+//             2. Further folding speed optimitations (for people dealing with very large listings)
+//
+// Necessary changes for the PB lexer in Scintilla project:
+//  - In SciLexer.h and Scintilla.iface:
+//
+//    #define SCLEX_POWERBASIC 51       //ID for PowerBasic lexer
+//    (...)
+//    #define SCE_B_DEFAULT 0           //in both VB and PB lexer
+//    #define SCE_B_COMMENT 1           //in both VB and PB lexer
+//    #define SCE_B_NUMBER 2            //in both VB and PB lexer
+//    #define SCE_B_KEYWORD 3           //in both VB and PB lexer
+//    #define SCE_B_STRING 4            //in both VB and PB lexer
+//    #define SCE_B_PREPROCESSOR 5      //VB lexer only, not in PB lexer
+//    #define SCE_B_OPERATOR 6          //in both VB and PB lexer
+//    #define SCE_B_IDENTIFIER 7        //in both VB and PB lexer
+//    #define SCE_B_DATE 8              //VB lexer only, not in PB lexer
+//    #define SCE_B_CONSTANT 13         //PB lexer only, not in VB lexer
+//    #define SCE_B_ASM 14              //PB lexer only, not in VB lexer
+
+//  - Statement added to KeyWords.cxx:      'LINK_LEXER(lmPB);'
+//  - Statement added to scintilla_vc6.mak: '$(DIR_O)\LexPB.obj: ...\src\LexPB.cxx $(LEX_HEADERS)'
 //
 // Copyright for Scintilla: 1998-2001 by Neil Hodgson <neilh@scintilla.org>
 // The License.txt file describes the conditions under which this software may be distributed.
 //
 // Copyright for Scintilla: 1998-2001 by Neil Hodgson <neilh@scintilla.org>
 // The License.txt file describes the conditions under which this software may be distributed.
@@ -171,6 +193,8 @@ static void FoldPBDoc(unsigned int startPos, int length, int, WordList *[], Acce
     char chNext = styler[startPos];
 
     bool fNewLine=true;
     char chNext = styler[startPos];
 
     bool fNewLine=true;
+    bool fMightBeMultiLineMacro=false;
+    bool fBeginOfCommentFound=false;
     for (unsigned int i = startPos; i < endPos; i++)
     {
         char ch = chNext;
     for (unsigned int i = startPos; i < endPos; i++)
     {
         char ch = chNext;
@@ -179,10 +203,11 @@ static void FoldPBDoc(unsigned int startPos, int length, int, WordList *[], Acce
         if (fNewLine)            //Begin of a new line (The Sub/Function/Macro keywords may occur at begin of line only)
         {
             fNewLine=false;
         if (fNewLine)            //Begin of a new line (The Sub/Function/Macro keywords may occur at begin of line only)
         {
             fNewLine=false;
-
+            fBeginOfCommentFound=false;
             switch (ch)
             {
             switch (ch)
             {
-            case ' ':      //Most lines start with space - so check this first
+            case ' ':      //Most lines start with space - so check this first, the code is the same as for 'default:'
+            case '\t':     //Handle tab too
                 {
                     int levelUse = levelCurrent;
                     int lev = levelUse | levelNext << 16;
                 {
                     int levelUse = levelCurrent;
                     int lev = levelUse | levelNext << 16;
@@ -190,37 +215,89 @@ static void FoldPBDoc(unsigned int startPos, int length, int, WordList *[], Acce
                     break;
                 }
             case 'F':
                     break;
                 }
             case 'F':
-            case 'S':
-            case 'C':
             case 'f':
             case 'f':
+                {
+                                       switch (chNext)
+                                       {
+                    case 'U':
+                    case 'u':
+                                               {
+                                                       if( MatchUpperCase(styler,i,"FUNCTION") )
+                                                       {
+                                                               styler.SetLevel(lineCurrent, (SC_FOLDLEVELBASE << 16) | SC_FOLDLEVELHEADERFLAG);
+                                                               levelNext=SC_FOLDLEVELBASE+1;
+                                                       }
+                                                       break;
+                                               }
+                                       }
+                break;
+                }
+            case 'S':
             case 's':
             case 's':
+                {
+                                       switch (chNext)
+                                       {
+                    case 'U':
+                    case 'u':
+                                               {
+                                                       if( MatchUpperCase(styler,i,"SUB") )
+                                                       {
+                                                               styler.SetLevel(lineCurrent, (SC_FOLDLEVELBASE << 16) | SC_FOLDLEVELHEADERFLAG);
+                                                               levelNext=SC_FOLDLEVELBASE+1;
+                                                       }
+                                                       break;
+                                               }
+                    case 'T':
+                    case 't':
+                                               {
+                                                       if( MatchUpperCase(styler,i,"STATIC FUNCTION") )
+                                                       {
+                                                               styler.SetLevel(lineCurrent, (SC_FOLDLEVELBASE << 16) | SC_FOLDLEVELHEADERFLAG);
+                                                               levelNext=SC_FOLDLEVELBASE+1;
+                                                       }
+                                                       else if( MatchUpperCase(styler,i,"STATIC SUB") )
+                                                       {
+                                                               styler.SetLevel(lineCurrent, (SC_FOLDLEVELBASE << 16) | SC_FOLDLEVELHEADERFLAG);
+                                                               levelNext=SC_FOLDLEVELBASE+1;
+                                                       }
+                                                       break;
+                                               }
+                                       }
+                break;
+                }
+            case 'C':
             case 'c':
                 {
             case 'c':
                 {
-                    if( MatchUpperCase(styler,i,"FUNCTION") )
-                    {
-                        styler.SetLevel(lineCurrent, (SC_FOLDLEVELBASE << 16) | SC_FOLDLEVELHEADERFLAG);
-                        levelNext=SC_FOLDLEVELBASE+1;
-                    }
-                else if( MatchUpperCase(styler,i,"SUB") )
-                    {
-                        styler.SetLevel(lineCurrent, (SC_FOLDLEVELBASE << 16) | SC_FOLDLEVELHEADERFLAG);
-                        levelNext=SC_FOLDLEVELBASE+1;
-                    }
-                else if( MatchUpperCase(styler,i,"CALLBACK FUNCTION") )
-                    {
-                        styler.SetLevel(lineCurrent, (SC_FOLDLEVELBASE << 16) | SC_FOLDLEVELHEADERFLAG);
-                        levelNext=SC_FOLDLEVELBASE+1;
-                    }
-                else if( MatchUpperCase(styler,i,"STATIC FUNCTION") )
-                    {
-                        styler.SetLevel(lineCurrent, (SC_FOLDLEVELBASE << 16) | SC_FOLDLEVELHEADERFLAG);
-                        levelNext=SC_FOLDLEVELBASE+1;
-                    }
-                else if( MatchUpperCase(styler,i,"STATIC SUB") )
-                    {
-                        styler.SetLevel(lineCurrent, (SC_FOLDLEVELBASE << 16) | SC_FOLDLEVELHEADERFLAG);
-                        levelNext=SC_FOLDLEVELBASE+1;
-                    }
+                                       switch (chNext)
+                                       {
+                    case 'A':
+                    case 'a':
+                                               {
+                                                       if( MatchUpperCase(styler,i,"CALLBACK FUNCTION") )
+                                                       {
+                                                               styler.SetLevel(lineCurrent, (SC_FOLDLEVELBASE << 16) | SC_FOLDLEVELHEADERFLAG);
+                                                               levelNext=SC_FOLDLEVELBASE+1;
+                                                       }
+                                                       break;
+                                               }
+                                       }
+                break;
+                }
+            case 'M':
+            case 'm':
+                {
+                                       switch (chNext)
+                                       {
+                    case 'A':
+                    case 'a':
+                                               {
+                                                       if( MatchUpperCase(styler,i,"MACRO") )
+                                                       {
+                                                               fMightBeMultiLineMacro=true;  //Set folder level at end of line, we have to check for single line macro
+                                                       }
+                                                       break;
+                                               }
+                                       }
                 break;
                 }
             default:
                 break;
                 }
             default:
@@ -235,8 +312,25 @@ static void FoldPBDoc(unsigned int startPos, int length, int, WordList *[], Acce
 
         switch (ch)
         {
 
         switch (ch)
         {
+            case '=':                              //To test single line macros
+            {
+                if (fBeginOfCommentFound==false)
+                    fMightBeMultiLineMacro=false;  //The found macro is a single line macro only;
+                break;
+            }
+            case '\'':                             //A comment starts
+            {
+                fBeginOfCommentFound=true;
+                break;
+            }
             case '\n':
             {
             case '\n':
             {
+                if (fMightBeMultiLineMacro)        //The current line is the begin of a multi line macro
+                {
+                    fMightBeMultiLineMacro=false;
+                    styler.SetLevel(lineCurrent, (SC_FOLDLEVELBASE << 16) | SC_FOLDLEVELHEADERFLAG);
+                    levelNext=SC_FOLDLEVELBASE+1;
+                }
                 lineCurrent++;
                 levelCurrent = levelNext;
                 fNewLine=true;
                 lineCurrent++;
                 levelCurrent = levelNext;
                 fNewLine=true;
index d4d4f46fedb436e41403995919a5abf698c39725..e13c6220d9c40be7efed0ef868639367a557ea5d 100644 (file)
@@ -265,7 +265,8 @@ static void ColourisePyDoc(unsigned int startPos, int length, int initStyle,
                        } else if (IsPyStringStart(sc.ch, sc.chNext, sc.GetRelative(2))) {
                                unsigned int nextIndex = 0;
                                sc.SetState(GetPyStringState(styler, sc.currentPos, &nextIndex));
                        } else if (IsPyStringStart(sc.ch, sc.chNext, sc.GetRelative(2))) {
                                unsigned int nextIndex = 0;
                                sc.SetState(GetPyStringState(styler, sc.currentPos, &nextIndex));
-                               while (nextIndex > (sc.currentPos + 1) && sc.More()) {                                  sc.Forward();
+                               while (nextIndex > (sc.currentPos + 1) && sc.More()) {
+                                       sc.Forward();
                                }
                        } else if (IsAWordStart(sc.ch)) {
                                sc.SetState(SCE_P_IDENTIFIER);
                                }
                        } else if (IsAWordStart(sc.ch)) {
                                sc.SetState(SCE_P_IDENTIFIER);
diff --git a/contrib/src/stc/scintilla/src/LexVHDL.cxx b/contrib/src/stc/scintilla/src/LexVHDL.cxx
new file mode 100644 (file)
index 0000000..0feef95
--- /dev/null
@@ -0,0 +1,473 @@
+// Scintilla source code edit control
+/** @file LexVHDL.cxx
+ ** Lexer for VHDL
+ ** Written by Phil Reid, 
+ ** Based on:
+ **  - The Verilog Lexer by Avi Yegudin 
+ **  - The Fortran Lexer by Chuan-jian Shen
+ **  - The C++ lexer by Neil Hodgson
+ **/
+// Copyright 1998-2002 by Neil Hodgson <neilh@scintilla.org>
+// The License.txt file describes the conditions under which this software may be distributed.
+
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <stdio.h>
+#include <stdarg.h>
+
+#include "Platform.h"
+
+#include "PropSet.h"
+#include "Accessor.h"
+#include "StyleContext.h"
+#include "KeyWords.h"
+#include "Scintilla.h"
+#include "SciLexer.h"
+
+static void ColouriseVHDLDoc(
+  unsigned int startPos,
+  int length,
+  int initStyle,
+  WordList *keywordlists[],
+  Accessor &styler);
+
+
+/***************************************/
+static inline bool IsAWordChar(const int ch) {
+  return (ch < 0x80) && (isalnum(ch) || ch == '.' || ch == '_' );
+}
+
+/***************************************/
+static inline bool IsAWordStart(const int ch) {
+  return (ch < 0x80) && (isalnum(ch) || ch == '_');
+}
+
+/***************************************/
+inline bool IsABlank(unsigned int ch) {
+    return (ch == ' ') || (ch == 0x09) || (ch == 0x0b) ;
+}
+
+/***************************************/
+static void ColouriseVHDLDoc(
+  unsigned int startPos,
+  int length,
+  int initStyle,
+  WordList *keywordlists[],
+  Accessor &styler)
+{
+  WordList &Keywords   = *keywordlists[0];
+  WordList &Operators  = *keywordlists[1];
+  WordList &Attributes = *keywordlists[2];
+  WordList &Functions  = *keywordlists[3];
+  WordList &Packages   = *keywordlists[4];
+  WordList &Types      = *keywordlists[5];
+  WordList &User       = *keywordlists[6];
+
+  StyleContext sc(startPos, length, initStyle, styler);
+
+  for (; sc.More(); sc.Forward())
+  {
+
+    // Determine if the current state should terminate.
+    if (sc.state == SCE_VHDL_OPERATOR) {
+      sc.SetState(SCE_VHDL_DEFAULT);
+    } else if (sc.state == SCE_VHDL_NUMBER) {
+      if (!IsAWordChar(sc.ch) && (sc.ch != '#')) {
+        sc.SetState(SCE_VHDL_DEFAULT);
+      }
+    } else if (sc.state == SCE_VHDL_IDENTIFIER) {
+      if (!IsAWordChar(sc.ch) || (sc.ch == '.')) {
+        char s[100];
+        sc.GetCurrentLowered(s, sizeof(s));
+        if (Keywords.InList(s)) {
+          sc.ChangeState(SCE_VHDL_KEYWORD);
+        } else if (Operators.InList(s)) {
+          sc.ChangeState(SCE_VHDL_STDOPERATOR);
+        } else if (Attributes.InList(s)) {
+          sc.ChangeState(SCE_VHDL_ATTRIBUTE);
+        } else if (Functions.InList(s)) {
+          sc.ChangeState(SCE_VHDL_STDFUNCTION);
+        } else if (Packages.InList(s)) {
+          sc.ChangeState(SCE_VHDL_STDPACKAGE);
+        } else if (Types.InList(s)) {
+          sc.ChangeState(SCE_VHDL_STDTYPE);
+        } else if (User.InList(s)) {
+          sc.ChangeState(SCE_VHDL_USERWORD);
+        }
+        sc.SetState(SCE_VHDL_DEFAULT);
+      }
+    } else if (sc.state == SCE_VHDL_COMMENT || sc.state == SCE_V_COMMENTLINEBANG) {
+      if (sc.atLineEnd) {
+        sc.SetState(SCE_VHDL_DEFAULT);
+      }
+    } else if (sc.state == SCE_VHDL_STRING) {
+      if (sc.ch == '\\') {
+        if (sc.chNext == '\"' || sc.chNext == '\'' || sc.chNext == '\\') {
+          sc.Forward();
+        }
+      } else if (sc.ch == '\"') {
+        sc.ForwardSetState(SCE_VHDL_DEFAULT);
+      } else if (sc.atLineEnd) {
+        sc.ChangeState(SCE_V_STRINGEOL);
+        sc.ForwardSetState(SCE_VHDL_DEFAULT);
+      }
+    }
+
+    // Determine if a new state should be entered.
+    if (sc.state == SCE_VHDL_DEFAULT) {
+      if (IsADigit(sc.ch) || (sc.ch == '.' && IsADigit(sc.chNext))) {
+        sc.SetState(SCE_VHDL_NUMBER);
+      } else if (IsAWordStart(sc.ch)) {
+        sc.SetState(SCE_VHDL_IDENTIFIER);
+      } else if (sc.Match('-', '-')) {
+        sc.SetState(SCE_VHDL_COMMENT);
+        sc.Forward(); 
+      } else if (sc.Match('-', '-')) {
+        if (sc.Match("--!"))  // Nice to have a different comment style
+          sc.SetState(SCE_VHDL_COMMENTLINEBANG);
+        else
+          sc.SetState(SCE_VHDL_COMMENT);
+      } else if (sc.ch == '\"') {
+        sc.SetState(SCE_VHDL_STRING);
+      } else if (isoperator(static_cast<char>(sc.ch))) {
+        sc.SetState(SCE_VHDL_OPERATOR);
+      }
+    }
+  }
+  sc.Complete();
+}
+//=============================================================================
+static bool IsCommentLine(int line, Accessor &styler) {
+       int pos = styler.LineStart(line);
+       int eol_pos = styler.LineStart(line + 1) - 1;
+       for (int i = pos; i < eol_pos; i++) {
+               char ch = styler[i];
+               char chNext = styler[i+1];
+               if ((ch == '-') && (chNext == '-'))
+                       return true;
+               else if (ch != ' ' && ch != '\t')
+                       return false;
+       }
+       return false;
+}
+
+//=============================================================================
+// Folding the code
+static void FoldNoBoxVHDLDoc(
+  unsigned int startPos,
+  int length,
+  int initStyle,
+  Accessor &styler)
+{
+  // Decided it would be smarter to have the lexer have all keywords included. Therefore I
+  // don't check if the style for the keywords that I use to adjust the levels.
+  char words[] =
+    "architecture begin case component else elsif end entity generate loop package process record then "
+    "procedure function when";
+  WordList keywords;
+  keywords.Set(words);
+
+  bool foldComment      = styler.GetPropertyInt("fold.comment", 1) != 0;
+  bool foldCompact      = styler.GetPropertyInt("fold.compact", 1) != 0;
+  bool foldAtElse       = styler.GetPropertyInt("fold.at.else", 1) != 0;
+  bool foldAtBegin      = styler.GetPropertyInt("fold.at.Begin", 1) != 0;
+  bool foldAtParenthese = styler.GetPropertyInt("fold.at.Parenthese", 1) != 0;
+  //bool foldAtWhen       = styler.GetPropertyInt("fold.at.When", 1) != 0;  //< fold at when in case statements
+
+  int  visibleChars     = 0;
+  unsigned int endPos   = startPos + length;
+
+  int lineCurrent       = styler.GetLine(startPos);
+  int levelCurrent      = SC_FOLDLEVELBASE;
+  if(lineCurrent > 0)
+    levelCurrent        = styler.LevelAt(lineCurrent-1) >> 16;
+  //int levelMinCurrent   = levelCurrent;
+  int levelMinCurrentElse = levelCurrent;   //< Used for folding at 'else'
+  int levelMinCurrentBegin = levelCurrent;  //< Used for folding at 'begin'
+  int levelNext         = levelCurrent;
+
+  /***************************************/
+  int lastStart         = 0;
+  char prevWord[32]     = "";
+
+  /***************************************/
+  // Find prev word
+  // The logic for going up or down a level depends on a the previous keyword
+  // This code could be cleaned up.
+  int end = 0;
+  unsigned int j;
+  for(j = startPos; j>0; j--)
+  {
+    char ch       = styler.SafeGetCharAt(j);
+    char chPrev   = styler.SafeGetCharAt(j-1);
+    int style     = styler.StyleAt(j);
+    int stylePrev = styler.StyleAt(j-1);
+    if ((stylePrev != SCE_VHDL_COMMENT) && (stylePrev != SCE_VHDL_STRING))
+    {
+      if(IsAWordChar(chPrev) && !IsAWordChar(ch))
+      {
+        end = j-1;
+      }
+    }
+    if ((style != SCE_VHDL_COMMENT) && (style != SCE_VHDL_STRING))
+    {
+      if(!IsAWordChar(chPrev) && IsAWordStart(ch) && (end != 0))
+      {
+        char s[32];
+        unsigned int k;
+        for(k=0; (k<31 ) && (k<end-j+1 ); k++) {
+          s[k] = static_cast<char>(tolower(styler[j+k]));
+        }
+        s[k] = '\0';
+
+        if(keywords.InList(s)) {
+          strcpy(prevWord, s);
+          break;
+        }
+      }
+    }
+  }
+  for(j=j+strlen(prevWord); j<endPos; j++)
+  {
+    char ch       = styler.SafeGetCharAt(j);
+    int style     = styler.StyleAt(j);
+    if ((style != SCE_VHDL_COMMENT) && (style != SCE_VHDL_STRING))
+    {
+      if((ch == ';') && (strcmp(prevWord, "end") == 0))
+      {
+        strcpy(prevWord, ";");
+      }
+    }
+  }
+
+  char  chNext          = styler[startPos];
+  char  chPrev          = '\0';
+  char  chNextNonBlank;
+  int   styleNext       = styler.StyleAt(startPos);
+  int   style           = initStyle;
+  //Platform::DebugPrintf("Line[%04d] Prev[%20s] ************************* Level[%x]\n", lineCurrent+1, prevWord, levelCurrent);
+
+  /***************************************/
+  for (unsigned int i = startPos; i < endPos; i++)
+  {
+    char ch         = chNext;
+    chNext          = styler.SafeGetCharAt(i + 1);
+    chPrev          = styler.SafeGetCharAt(i - 1);
+    chNextNonBlank  = chNext;
+    unsigned int j  = i+1;
+    while(IsABlank(chNextNonBlank) && j<endPos)
+    {
+      j ++ ;
+      chNextNonBlank = styler.SafeGetCharAt(j);
+    }
+    style           = styleNext;
+    styleNext       = styler.StyleAt(i + 1);
+    bool atEOL      = (ch == '\r' && chNext != '\n') || (ch == '\n');
+
+               if (foldComment && atEOL && IsCommentLine(lineCurrent, styler)) 
+    {
+      if(!IsCommentLine(lineCurrent-1, styler) && IsCommentLine(lineCurrent+1, styler))
+      {
+        levelNext++;
+      } 
+      else if(IsCommentLine(lineCurrent-1, styler) && !IsCommentLine(lineCurrent+1, styler))
+      {
+        levelNext--;
+      }
+    }
+
+    if ((style == SCE_VHDL_OPERATOR) && foldAtParenthese)
+    {
+      if(ch == '(') {
+        levelNext++;
+      } else if (ch == ')') {
+        levelNext--;
+      }
+    }
+
+    if ((style != SCE_VHDL_COMMENT) && (style != SCE_VHDL_STRING))
+    {
+      if((ch == ';') && (strcmp(prevWord, "end") == 0))
+      {
+        strcpy(prevWord, ";");
+      }
+
+      if(!IsAWordChar(chPrev) && IsAWordStart(ch))
+      {
+        lastStart = i;
+      }
+
+      if(iswordchar(ch) && !iswordchar(chNext)) {
+        char s[32];
+        unsigned int k;
+        for(k=0; (k<31 ) && (k<i-lastStart+1 ); k++) {
+          s[k] = static_cast<char>(tolower(styler[lastStart+k]));
+        }
+        s[k] = '\0';
+
+        if(keywords.InList(s))
+        {
+          if (
+            strcmp(s, "architecture") == 0  ||
+            strcmp(s, "case") == 0          ||
+            strcmp(s, "component") == 0     ||
+            strcmp(s, "entity") == 0        ||
+            strcmp(s, "generate") == 0      ||
+            strcmp(s, "loop") == 0          ||
+            strcmp(s, "package") ==0        ||
+            strcmp(s, "process") == 0       ||
+            strcmp(s, "record") == 0        ||
+            strcmp(s, "then") == 0)
+          {
+            if (strcmp(prevWord, "end") != 0)
+            {
+              if (levelMinCurrentElse > levelNext) {
+                levelMinCurrentElse = levelNext;
+              }
+              levelNext++;
+            }
+          } else if (
+            strcmp(s, "procedure") == 0     ||
+            strcmp(s, "function") == 0)
+          {
+            if (strcmp(prevWord, "end") != 0) // check for "end procedure" etc.
+            { // This code checks to see if the procedure / function is a definition within a "package"
+              // rather than the actual code in the body.
+              int BracketLevel = 0;
+              for(int j=i+1; j<styler.Length(); j++)
+              {
+                int LocalStyle = styler.StyleAt(j);
+                char LocalCh = styler.SafeGetCharAt(j);
+                if(LocalCh == '(') BracketLevel++;
+                if(LocalCh == ')') BracketLevel--;
+                if(
+                  (BracketLevel == 0) &&
+                  (LocalStyle != SCE_VHDL_COMMENT) &&
+                  (LocalStyle != SCE_VHDL_STRING) &&
+                  !iswordchar(styler.SafeGetCharAt(j-1)) &&
+                  styler.Match(j, "is") &&
+                  !iswordchar(styler.SafeGetCharAt(j+2)))
+                {
+                  if (levelMinCurrentElse > levelNext) {
+                    levelMinCurrentElse = levelNext;
+                  }
+                  levelNext++;
+                  break;
+                }
+                if((BracketLevel == 0) && (LocalCh == ';'))
+                {
+                  break;
+                }
+              }
+            }
+
+          } else if (strcmp(s, "end") == 0) {
+            levelNext--;
+          }  else if(strcmp(s, "elsif") == 0) { // elsif is followed by then so folding occurs correctly
+            levelNext--;
+          } else if (strcmp(s, "else") == 0) {
+            if(strcmp(prevWord, "when") != 0)  // ignore a <= x when y else z;
+            {
+              levelMinCurrentElse = levelNext - 1;  // VHDL else is all on its own so just dec. the min level
+            }
+          } else if(
+            ((strcmp(s, "begin") == 0) && (strcmp(prevWord, "architecture") == 0)) ||
+            ((strcmp(s, "begin") == 0) && (strcmp(prevWord, "function") == 0)) ||
+            ((strcmp(s, "begin") == 0) && (strcmp(prevWord, "procedure") == 0)))
+          {
+            levelMinCurrentBegin = levelNext - 1;  
+          }
+          //Platform::DebugPrintf("Line[%04d] Prev[%20s] Cur[%20s] Level[%x]\n", lineCurrent+1, prevWord, s, levelCurrent);
+          strcpy(prevWord, s);
+        }
+      }
+    }
+    if (atEOL) {
+      int levelUse = levelCurrent;
+
+      if (foldAtElse && (levelMinCurrentElse < levelUse)) {
+        levelUse = levelMinCurrentElse;
+      }
+      if (foldAtBegin && (levelMinCurrentBegin < levelUse)) {
+        levelUse = levelMinCurrentBegin;
+      }
+      int lev = levelUse | levelNext << 16;
+      if (visibleChars == 0 && foldCompact)
+        lev |= SC_FOLDLEVELWHITEFLAG;
+
+      if (levelUse < levelNext)
+        lev |= SC_FOLDLEVELHEADERFLAG;
+      if (lev != styler.LevelAt(lineCurrent)) {
+        styler.SetLevel(lineCurrent, lev);
+      }
+      //Platform::DebugPrintf("Line[%04d] ---------------------------------------------------- Level[%x]\n", lineCurrent+1, levelCurrent);
+      lineCurrent++;
+      levelCurrent = levelNext;
+      //levelMinCurrent = levelCurrent;
+      levelMinCurrentElse = levelCurrent;
+      levelMinCurrentBegin = levelCurrent;
+      visibleChars = 0;
+    }
+    /***************************************/
+    if (!isspacechar(ch)) visibleChars++;
+  }
+
+  /***************************************/
+//  Platform::DebugPrintf("Line[%04d] ---------------------------------------------------- Level[%x]\n", lineCurrent+1, levelCurrent);
+}
+
+//=============================================================================
+static void FoldVHDLDoc(unsigned int startPos, int length, int initStyle, WordList *[],
+                       Accessor &styler) {
+  FoldNoBoxVHDLDoc(startPos, length, initStyle, styler);
+}
+
+//=============================================================================
+static const char * const VHDLWordLists[] = {
+            "Keywords",
+            "Operators",
+            "Attributes",
+            "Standard Functions",
+            "Standard Packages",
+            "Standard Types",
+            "User Words",
+            0,
+        };
+
+
+LexerModule lmVHDL(SCLEX_VHDL, ColouriseVHDLDoc, "vhdl", FoldVHDLDoc, VHDLWordLists);
+
+
+// Keyword:
+//    access after alias all architecture array assert attribute begin block body buffer bus case component 
+//    configuration constant disconnect downto else elsif end entity exit file for function generate generic 
+//    group guarded if impure in inertial inout is label library linkage literal loop map new next null of 
+//    on open others out package port postponed procedure process pure range record register reject report 
+//    return select severity shared signal subtype then to transport type unaffected units until use variable 
+//    wait when while with
+//
+// Operators:
+//    abs and mod nand nor not or rem rol ror sla sll sra srl xnor xor
+//
+// Attributes:
+//    left right low high ascending image value pos val succ pred leftof rightof base range reverse_range 
+//    length delayed stable quiet transaction event active last_event last_active last_value driving 
+//    driving_value simple_name path_name instance_name
+//
+// Std Functions:
+//    now readline read writeline write endfile resolved to_bit to_bitvector to_stdulogic to_stdlogicvector 
+//    to_stdulogicvector to_x01 to_x01z to_UX01 rising_edge falling_edge is_x shift_left shift_right rotate_left 
+//    rotate_right resize to_integer to_unsigned to_signed std_match to_01
+//
+// Std Packages:
+//    std ieee work standard textio std_logic_1164 std_logic_arith std_logic_misc std_logic_signed 
+//    std_logic_textio std_logic_unsigned numeric_bit numeric_std math_complex math_real vital_primitives 
+//    vital_timing
+//
+// Std Types:
+//    boolean bit character severity_level integer real time delay_length natural positive string bit_vector 
+//    file_open_kind file_open_status line text side width std_ulogic std_ulogic_vector std_logic 
+//    std_logic_vector X01 X01Z UX01 UX01Z unsigned signed
+//
+
index d0a7f8b0f7f1c8ff6b69637e9a7d2aa7466d3b1f..1e9920d79c5a0400ef2f71d65f2c5acd99dcd182 100644 (file)
@@ -124,7 +124,7 @@ SString &SString::assign(const char *sOther, lenpos_t sSize_) {
                s = StringAllocate(sOther, sSize_);
                if (s) {
                        sSize = sSize_; // Allow buffer bigger than real string, thus providing space to grow
                s = StringAllocate(sOther, sSize_);
                if (s) {
                        sSize = sSize_; // Allow buffer bigger than real string, thus providing space to grow
-                       sLen = strlen(s);
+                       sLen = sSize_;
                } else {
                        sSize = sLen = 0;
                }
                } else {
                        sSize = sLen = 0;
                }
@@ -383,6 +383,33 @@ void PropSet::Set(const char *keyVal) {
        }
 }
 
        }
 }
 
+void PropSet::Unset(const char *key, int lenKey) {
+       if (!*key)      // Empty keys are not supported
+               return;
+       if (lenKey == -1)
+               lenKey = static_cast<int>(strlen(key));
+       unsigned int hash = HashString(key, lenKey);
+       Property *pPrev = NULL;
+       for (Property *p = props[hash % hashRoots]; p; p = p->next) {
+               if ((hash == p->hash) &&
+                       ((strlen(p->key) == static_cast<unsigned int>(lenKey)) &&
+                               (0 == strncmp(p->key, key, lenKey)))) {
+                       if (pPrev)
+                               pPrev->next = p->next;
+                       else
+                               props[hash % hashRoots] = p->next;
+                       if (p == enumnext)
+                               enumnext = p->next; // Not that anyone should mix enum and Set / Unset.
+                       delete [](p->key);
+                       delete [](p->val);
+                       delete p;
+                       return;
+               } else {
+                       pPrev = p;
+               }
+       }
+}
+
 void PropSet::SetMultiple(const char *s) {
        const char *eol = strchr(s, '\n');
        while (eol) {
 void PropSet::SetMultiple(const char *s) {
        const char *eol = strchr(s, '\n');
        while (eol) {
@@ -422,39 +449,71 @@ bool PropSet::IncludesVar(const char *value, const char *key) {
        return false;
 }
 
        return false;
 }
 
+
+// There is some inconsistency between GetExpanded("foo") and Expand("$(foo)").
+// A solution is to keep a stack of variables that have been expanded, so that
+// recursive expansions can be skipped.  For now I'll just use the C++ stack
+// for that, through a recursive function and a simple chain of pointers.
+
+struct VarChain {
+       VarChain(const char*var_=NULL, const VarChain *link_=NULL): var(var_), link(link_) {}
+
+       bool contains(const char *testVar) const {
+               return (var && (0 == strcmp(var, testVar))) 
+                       || (link && link->contains(testVar));
+       }
+
+       const char *var;
+       const VarChain *link;
+};
+
+static int ExpandAllInPlace(PropSet &props, SString &withVars, int maxExpands, const VarChain &blankVars = VarChain()) {
+       int varStart = withVars.search("$(");
+       while ((varStart >= 0) && (maxExpands > 0)) {
+               int varEnd = withVars.search(")", varStart+2);
+               if (varEnd < 0) {
+                       break;
+               }
+
+               // For consistency, when we see '$(ab$(cde))', expand the inner variable first,
+               // regardless whether there is actually a degenerate variable named 'ab$(cde'.
+               int innerVarStart = withVars.search("$(", varStart+2);
+               while ((innerVarStart > varStart) && (innerVarStart < varEnd)) {
+                       varStart = innerVarStart;
+                       innerVarStart = withVars.search("$(", varStart+2);
+               }
+
+               SString var(withVars.c_str(), varStart + 2, varEnd);
+               SString val = props.Get(var.c_str());
+
+               if (blankVars.contains(var.c_str())) {
+                       val.clear(); // treat blankVar as an empty string (e.g. to block self-reference)
+               }
+
+               if (--maxExpands >= 0) {
+                       maxExpands = ExpandAllInPlace(props, val, maxExpands, VarChain(var.c_str(), &blankVars));
+               }
+
+               withVars.remove(varStart, varEnd-varStart+1);
+               withVars.insert(varStart, val.c_str(), val.length());
+
+               varStart = withVars.search("$(");
+       }
+
+       return maxExpands;
+}
+
+
 SString PropSet::GetExpanded(const char *key) {
        SString val = Get(key);
 SString PropSet::GetExpanded(const char *key) {
        SString val = Get(key);
-       if (IncludesVar(val.c_str(), key))
-               return val;
-       return Expand(val.c_str());
+       ExpandAllInPlace(*this, val, 100, VarChain(key));
+       return val;
 }
 
 SString PropSet::Expand(const char *withVars, int maxExpands) {
 }
 
 SString PropSet::Expand(const char *withVars, int maxExpands) {
-       char *base = StringDup(withVars);
-       char *cpvar = strstr(base, "$(");
-       while (cpvar && (maxExpands > 0)) {
-               char *cpendvar = strchr(cpvar, ')');
-               if (!cpendvar)
-                       break;
-               int lenvar = cpendvar - cpvar - 2;      // Subtract the $()
-               char *var = StringDup(cpvar + 2, lenvar);
-               SString val = Get(var);
-               if (IncludesVar(val.c_str(), var))
-                       break;
-               size_t newlenbase = strlen(base) + val.length() - lenvar;
-               char *newbase = new char[newlenbase];
-               strncpy(newbase, base, cpvar - base);
-               strcpy(newbase + (cpvar - base), val.c_str());
-               strcpy(newbase + (cpvar - base) + val.length(), cpendvar + 1);
-               delete []var;
-               delete []base;
-               base = newbase;
-               cpvar = strstr(base, "$(");
-               maxExpands--;
-       }
-       SString sret = base;
-       delete []base;
-       return sret;
+       SString val = withVars;
+       ExpandAllInPlace(*this, val, maxExpands);
+       return val;
 }
 
 int PropSet::GetInt(const char *key, int defaultValue) {
 }
 
 int PropSet::GetInt(const char *key, int defaultValue) {
@@ -549,6 +608,8 @@ SString PropSet::GetWild(const char *keybase, const char *filename) {
        }
 }
 
        }
 }
 
+
+
 // GetNewExpand does not use Expand as it has to use GetWild with the filename for each
 // variable reference found.
 SString PropSet::GetNewExpand(const char *keybase, const char *filename) {
 // GetNewExpand does not use Expand as it has to use GetWild with the filename for each
 // variable reference found.
 SString PropSet::GetNewExpand(const char *keybase, const char *filename) {
@@ -561,6 +622,8 @@ SString PropSet::GetNewExpand(const char *keybase, const char *filename) {
                        int lenvar = cpendvar - cpvar - 2;      // Subtract the $()
                        char *var = StringDup(cpvar + 2, lenvar);
                        SString val = GetWild(var, filename);
                        int lenvar = cpendvar - cpvar - 2;      // Subtract the $()
                        char *var = StringDup(cpvar + 2, lenvar);
                        SString val = GetWild(var, filename);
+                       if (0 == strcmp(var, keybase))
+                               val.clear(); // Self-references evaluate to empty string
                        size_t newlenbase = strlen(base) + val.length() - lenvar;
                        char *newbase = new char[newlenbase];
                        strncpy(newbase, base, cpvar - base);
                        size_t newlenbase = strlen(base) + val.length() - lenvar;
                        char *newbase = new char[newlenbase];
                        strncpy(newbase, base, cpvar - base);
@@ -820,7 +883,7 @@ bool WordList::InList(const char *s) {
  * The length of the word to compare is passed too.
  * Letter case can be ignored or preserved (default).
  */
  * The length of the word to compare is passed too.
  * Letter case can be ignored or preserved (default).
  */
-const char *WordList::GetNearestWord(const char *wordStart, int searchLen /*= -1*/, bool ignoreCase /*= false*/, SString wordCharacters /*='/0' */, int wordIndex /*= -1 */) {
+const char *WordList::GetNearestWord(const char *wordStart, int searchLen, bool ignoreCase /*= false*/, SString wordCharacters /*='/0' */, int wordIndex /*= -1 */) {
        int start = 0; // lower bound of the api array block to search
        int end = len - 1; // upper bound of the api array block to search
        int pivot; // index of api array element just being compared
        int start = 0; // lower bound of the api array block to search
        int end = len - 1; // upper bound of the api array block to search
        int pivot; // index of api array element just being compared
@@ -838,36 +901,32 @@ const char *WordList::GetNearestWord(const char *wordStart, int searchLen /*= -1
                        pivot = (start + end) >> 1;
                        word = wordsNoCase[pivot];
                        cond = CompareNCaseInsensitive(wordStart, word, searchLen);
                        pivot = (start + end) >> 1;
                        word = wordsNoCase[pivot];
                        cond = CompareNCaseInsensitive(wordStart, word, searchLen);
-                       if (!cond && (!wordCharacters.contains(word[searchLen]))) {
-                               // Found a word in a binary fashion. Now checks if a specific index was requested
-                               if (wordIndex < 0)
-                                       return word; // result must not be freed with free()
-
+                       if (!cond) {
+                               // find first word
+                               start = pivot;
+                               while (start > 0 && !CompareNCaseInsensitive(wordStart, wordsNoCase[start-1], searchLen)) {
+                                       start--;
+                               }
+                               // find last word
+                               end = pivot;
+                               while (end < len-1 && !CompareNCaseInsensitive(wordStart, wordsNoCase[end+1], searchLen)) {
+                                       end++;
+                               }
+                               
                                // Finds first word in a series of equal words
                                // Finds first word in a series of equal words
-                               int first = pivot;
-                               end = pivot - 1;
-                               while (start <= end) {
-                                       pivot = (start + end) >> 1;
+                               for (pivot = start; pivot <= end; pivot++) {
                                        word = wordsNoCase[pivot];
                                        word = wordsNoCase[pivot];
-                                       cond = CompareNCaseInsensitive(wordStart, word, searchLen);
-                                       if (!cond && (!wordCharacters.contains(word[searchLen]))) {
-                                               // Found another word
-                                               first = pivot;
-                                               end = pivot - 1;
+                                       if (!wordCharacters.contains(word[searchLen])) {
+                                               if (wordIndex <= 0) // Checks if a specific index was requested
+                                                       return word; // result must not be freed with free()
+                                               wordIndex--;
                                        }
                                        }
-                                       else if (cond > 0)
-                                               start = pivot + 1;
-                                       else if (cond <= 0)
-                                               break;
                                }
                                }
-
-                               // Gets the word at the requested index
-                               word = wordsNoCase[first + wordIndex];
-                               return word;
+                               return NULL;
                        }
                        else if (cond > 0)
                                start = pivot + 1;
                        }
                        else if (cond > 0)
                                start = pivot + 1;
-                       else if (cond <= 0)
+                       else if (cond < 0)
                                end = pivot - 1;
                }
        } else { // preserve the letter case
                                end = pivot - 1;
                }
        } else { // preserve the letter case
@@ -875,36 +934,34 @@ const char *WordList::GetNearestWord(const char *wordStart, int searchLen /*= -1
                        pivot = (start + end) >> 1;
                        word = words[pivot];
                        cond = strncmp(wordStart, word, searchLen);
                        pivot = (start + end) >> 1;
                        word = words[pivot];
                        cond = strncmp(wordStart, word, searchLen);
-                       if (!cond && (!wordCharacters.contains(word[searchLen]))) {
-                               // Found a word in a binary fashion. Now checks if a specific index was requested
-                               if (wordIndex < 0)
-                                       return word; // result must not be freed with free()
-
+                       if (!cond) {
+                               // find first word
+                               start = pivot;
+                               while (start > 0 && !strncmp(wordStart, words[start-1], searchLen)) {
+                                       start--;
+                               }
+                               // find last word
+                               end = pivot;
+                               while (end < len-1 && !strncmp(wordStart, words[end+1], searchLen)) {
+                                       end++;
+                               }
+                               
                                // Finds first word in a series of equal words
                                // Finds first word in a series of equal words
-                               int first = pivot;
-                               end = pivot - 1;
-                               while (start <= end) {
-                                       pivot = (start + end) >> 1;
+                               pivot = start;
+                               while (pivot <= end) {
                                        word = words[pivot];
                                        word = words[pivot];
-                                       cond = strncmp(wordStart, word, searchLen);
-                                       if (!cond && (!wordCharacters.contains(word[searchLen]))) {
-                                               // Found another word
-                                               first = pivot;
-                                               end = pivot - 1;
+                                       if (!wordCharacters.contains(word[searchLen])) {
+                                               if (wordIndex <= 0) // Checks if a specific index was requested
+                                                       return word; // result must not be freed with free()
+                                               wordIndex--;
                                        }
                                        }
-                                       else if (cond > 0)
-                                               start = pivot + 1;
-                                       else if (cond <= 0)
-                                               break;
+                                       pivot++;
                                }
                                }
-
-                               // Gets the word at the requested index
-                               word = words[first + wordIndex];
-                               return word;
+                               return NULL;
                        }
                        else if (cond > 0)
                                start = pivot + 1;
                        }
                        else if (cond > 0)
                                start = pivot + 1;
-                       else if (cond <= 0)
+                       else if (cond < 0)
                                end = pivot - 1;
                }
        }
                                end = pivot - 1;
                }
        }
@@ -913,15 +970,13 @@ const char *WordList::GetNearestWord(const char *wordStart, int searchLen /*= -1
 
 /**
  * Find the length of a 'word' which is actually an identifier in a string
 
 /**
  * Find the length of a 'word' which is actually an identifier in a string
- * which looks like "identifier(..." or "identifier:" or "identifier" and where
+ * which looks like "identifier(..." or "identifier" and where
  * there may be extra spaces after the identifier that should not be
  * counted in the length.
  */
 static unsigned int LengthWord(const char *word, char otherSeparator) {
  * there may be extra spaces after the identifier that should not be
  * counted in the length.
  */
 static unsigned int LengthWord(const char *word, char otherSeparator) {
-       // Find a '(', or ':'. If that fails go to the end of the string.
+       // Find a '('. If that fails go to the end of the string.
        const char *endWord = strchr(word, '(');
        const char *endWord = strchr(word, '(');
-       if (!endWord)
-               endWord = strchr(word, ':');
        if (!endWord && otherSeparator)
                endWord = strchr(word, otherSeparator);
        if (!endWord)
        if (!endWord && otherSeparator)
                endWord = strchr(word, otherSeparator);
        if (!endWord)
@@ -930,7 +985,7 @@ static unsigned int LengthWord(const char *word, char otherSeparator) {
 
        // Drop any space characters.
        if (endWord > word) {
 
        // Drop any space characters.
        if (endWord > word) {
-               endWord--;      // Back from the '(', ':', or '\0'
+               endWord--;      // Back from the '(', otherSeparator, or '\0'
                // Move backwards over any spaces
                while ((endWord > word) && (IsASpace(*endWord))) {
                        endWord--;
                // Move backwards over any spaces
                while ((endWord > word) && (IsASpace(*endWord))) {
                        endWord--;
@@ -951,7 +1006,7 @@ static unsigned int LengthWord(const char *word, char otherSeparator) {
  */
 char *WordList::GetNearestWords(
     const char *wordStart,
  */
 char *WordList::GetNearestWords(
     const char *wordStart,
-    int searchLen /*= -1*/,
+    int searchLen,
     bool ignoreCase /*= false*/,
     char otherSeparator /*= '\0'*/,
     bool exactLen /*=false*/) {
     bool ignoreCase /*= false*/,
     char otherSeparator /*= '\0'*/,
     bool exactLen /*=false*/) {
@@ -985,10 +1040,10 @@ char *WordList::GetNearestWords(
                                        (0 == CompareNCaseInsensitive(wordStart,
                                                wordsNoCase[pivot], searchLen))) {
                                        wordlen = LengthWord(wordsNoCase[pivot], otherSeparator) + 1;
                                        (0 == CompareNCaseInsensitive(wordStart,
                                                wordsNoCase[pivot], searchLen))) {
                                        wordlen = LengthWord(wordsNoCase[pivot], otherSeparator) + 1;
-                                       if (exactLen && wordlen != LengthWord(wordStart, otherSeparator) + 1)
-                                               break;
-                                       wordsNear.append(wordsNoCase[pivot], wordlen, ' ');
                                        ++pivot;
                                        ++pivot;
+                                       if (exactLen && wordlen != LengthWord(wordStart, otherSeparator) + 1)
+                                               continue;
+                                       wordsNear.append(wordsNoCase[pivot-1], wordlen, ' ');
                                }
                                return wordsNear.detach();
                        } else if (cond < 0) {
                                }
                                return wordsNear.detach();
                        } else if (cond < 0) {
@@ -1013,10 +1068,10 @@ char *WordList::GetNearestWords(
                                        (0 == strncmp(wordStart,
                                                words[pivot], searchLen))) {
                                        wordlen = LengthWord(words[pivot], otherSeparator) + 1;
                                        (0 == strncmp(wordStart,
                                                words[pivot], searchLen))) {
                                        wordlen = LengthWord(words[pivot], otherSeparator) + 1;
-                                       if (exactLen && wordlen != LengthWord(wordStart, otherSeparator) + 1)
-                                               break;
-                                       wordsNear.append(words[pivot], wordlen, ' ');
                                        ++pivot;
                                        ++pivot;
+                                       if (exactLen && wordlen != LengthWord(wordStart, otherSeparator) + 1)
+                                               continue;
+                                       wordsNear.append(words[pivot-1], wordlen, ' ');
                                }
                                return wordsNear.detach();
                        } else if (cond < 0) {
                                }
                                return wordsNear.detach();
                        } else if (cond < 0) {
index cc02674b355995c6284b3b19579930c449420039..1d3867b7fe1510660dbfd4fa9a985f7ffc0202fa 100644 (file)
@@ -280,9 +280,9 @@ void ScintillaBase::AutoCompleteMoveToCurrentWord() {
        char wordCurrent[1000];
        int i;
        int startWord = ac.posStart - ac.startLen;
        char wordCurrent[1000];
        int i;
        int startWord = ac.posStart - ac.startLen;
-       for (i = startWord; i < currentPos; i++)
+       for (i = startWord; i < currentPos && i - startWord < 1000; i++)
                wordCurrent[i - startWord] = pdoc->CharAt(i);
                wordCurrent[i - startWord] = pdoc->CharAt(i);
-       wordCurrent[i - startWord] = '\0';
+       wordCurrent[Platform::Minimum(i - startWord, 999)] = '\0';
        ac.Select(wordCurrent);
 }
 
        ac.Select(wordCurrent);
 }
 
@@ -357,11 +357,12 @@ void ScintillaBase::CallTipShow(Point pt, const char *defn) {
        AutoCompleteCancel();
        pt.y += vs.lineHeight;
        PRectangle rc = ct.CallTipStart(currentPos, pt,
        AutoCompleteCancel();
        pt.y += vs.lineHeight;
        PRectangle rc = ct.CallTipStart(currentPos, pt,
-                                                                       defn,
-                                                                       vs.styles[STYLE_DEFAULT].fontName,
-                                                                       vs.styles[STYLE_DEFAULT].sizeZoomed,
-                                                                       IsUnicodeMode(),
-                                                                       wMain);
+               defn,
+               vs.styles[STYLE_DEFAULT].fontName,
+               vs.styles[STYLE_DEFAULT].sizeZoomed,
+               CodePage(),
+               vs.styles[STYLE_DEFAULT].characterSet,
+               wMain);
        // If the call-tip window would be out of the client
        // space, adjust so it displays above the text.
        PRectangle rcClient = GetClientRectangle();
        // If the call-tip window would be out of the client
        // space, adjust so it displays above the text.
        PRectangle rcClient = GetClientRectangle();
index 15cad6382969fb8070ac312b40547de47f3949bd..363db90f4528c5bfe3abda127f5e063b369d389f 100644 (file)
@@ -16,7 +16,7 @@ unsigned int UTF8Length(const wchar_t *uptr, unsigned int tlen) {
                if (uch < 0x80)
                        len++;
                else if (uch < 0x800)
                if (uch < 0x80)
                        len++;
                else if (uch < 0x800)
-                       len+=2;
+                       len += 2;
                else
                        len +=3;
        }
                else
                        len +=3;
        }
index b3b3cd2765934fc9eee85b8337c6c9b373f1dd6f..f534906177dad0be62b4d5de0003ff3049f25474 100644 (file)
@@ -2408,6 +2408,12 @@ void wxStyledTextCtrl::Allocate(int bytes) {
     SendMsg(2446, bytes, 0);
 }
 
     SendMsg(2446, bytes, 0);
 }
 
+// Find the position of a column on a line taking into account tabs and 
+// multi-byte characters. If beyond end of line, return line end position.
+int wxStyledTextCtrl::FindColumn(int line, int column) {
+    return SendMsg(2456, line, column);
+}
+
 // Start notifying the container of all key presses and commands.
 void wxStyledTextCtrl::StartRecord() {
     SendMsg(3001, 0, 0);
 // Start notifying the container of all key presses and commands.
 void wxStyledTextCtrl::StartRecord() {
     SendMsg(3001, 0, 0);
index 10519a61b70eae7cb25c17ed67b261c44da3d3af..b636753aa5267ae976e36852319e74db7b6a5068 100644 (file)
 #define wxSTC_LEX_AU3 60
 #define wxSTC_LEX_APDL 61
 #define wxSTC_LEX_BASH 62
 #define wxSTC_LEX_AU3 60
 #define wxSTC_LEX_APDL 61
 #define wxSTC_LEX_BASH 62
+#define wxSTC_LEX_ASN1 63
+#define wxSTC_LEX_VHDL 64
 
 // When a lexer specifies its language as SCLEX_AUTOMATIC it receives a
 // value assigned in sequence from SCLEX_AUTOMATIC+1.
 
 // When a lexer specifies its language as SCLEX_AUTOMATIC it receives a
 // value assigned in sequence from SCLEX_AUTOMATIC+1.
 #define wxSTC_ERR_IFORT 17
 #define wxSTC_ERR_ABSF 18
 #define wxSTC_ERR_TIDY 19
 #define wxSTC_ERR_IFORT 17
 #define wxSTC_ERR_ABSF 18
 #define wxSTC_ERR_TIDY 19
+#define wxSTC_ERR_JAVA_STACK 20
 
 // Lexical states for SCLEX_BATCH
 #define wxSTC_BAT_DEFAULT 0
 
 // Lexical states for SCLEX_BATCH
 #define wxSTC_BAT_DEFAULT 0
 #define wxSTC_CSS_DIRECTIVE 12
 #define wxSTC_CSS_DOUBLESTRING 13
 #define wxSTC_CSS_SINGLESTRING 14
 #define wxSTC_CSS_DIRECTIVE 12
 #define wxSTC_CSS_DOUBLESTRING 13
 #define wxSTC_CSS_SINGLESTRING 14
+#define wxSTC_CSS_IDENTIFIER2 15
 
 // Lexical states for SCLEX_POV
 #define wxSTC_POV_DEFAULT 0
 
 // Lexical states for SCLEX_POV
 #define wxSTC_POV_DEFAULT 0
 #define wxSTC_AU3_VARIABLE 9
 #define wxSTC_AU3_SENT 10
 #define wxSTC_AU3_PREPROCESSOR 11
 #define wxSTC_AU3_VARIABLE 9
 #define wxSTC_AU3_SENT 10
 #define wxSTC_AU3_PREPROCESSOR 11
+#define wxSTC_AU3_SPECIAL 12
 
 // Lexical states for SCLEX_APDL
 #define wxSTC_APDL_DEFAULT 0
 
 // Lexical states for SCLEX_APDL
 #define wxSTC_APDL_DEFAULT 0
 #define wxSTC_APDL_COMMENTBLOCK 2
 #define wxSTC_APDL_NUMBER 3
 #define wxSTC_APDL_STRING 4
 #define wxSTC_APDL_COMMENTBLOCK 2
 #define wxSTC_APDL_NUMBER 3
 #define wxSTC_APDL_STRING 4
-#define wxSTC_APDL_WORD 5
-#define wxSTC_APDL_COMMAND 6
+#define wxSTC_APDL_OPERATOR 5
+#define wxSTC_APDL_WORD 6
 #define wxSTC_APDL_PROCESSOR 7
 #define wxSTC_APDL_PROCESSOR 7
-#define wxSTC_APDL_FUNCTION 8
+#define wxSTC_APDL_COMMAND 8
+#define wxSTC_APDL_SLASHCOMMAND 9
+#define wxSTC_APDL_STARCOMMAND 10
+#define wxSTC_APDL_ARGUMENT 11
+#define wxSTC_APDL_FUNCTION 12
 
 // Lexical states for SCLEX_BASH
 #define wxSTC_SH_DEFAULT 0
 
 // Lexical states for SCLEX_BASH
 #define wxSTC_SH_DEFAULT 0
 #define wxSTC_SH_HERE_DELIM 12
 #define wxSTC_SH_HERE_Q 13
 
 #define wxSTC_SH_HERE_DELIM 12
 #define wxSTC_SH_HERE_Q 13
 
+// Lexical states for SCLEX_ASN1
+#define wxSTC_ASN1_DEFAULT 0
+#define wxSTC_ASN1_COMMENT 1
+#define wxSTC_ASN1_IDENTIFIER 2
+#define wxSTC_ASN1_STRING 3
+#define wxSTC_ASN1_OID 4
+#define wxSTC_ASN1_SCALAR 5
+#define wxSTC_ASN1_KEYWORD 6
+#define wxSTC_ASN1_ATTRIBUTE 7
+#define wxSTC_ASN1_DESCRIPTOR 8
+#define wxSTC_ASN1_TYPE 9
+#define wxSTC_ASN1_OPERATOR 10
+
+// Lexical states for SCLEX_VHDL
+#define wxSTC_VHDL_DEFAULT 0
+#define wxSTC_VHDL_COMMENT 1
+#define wxSTC_VHDL_COMMENTLINEBANG 2
+#define wxSTC_VHDL_NUMBER 3
+#define wxSTC_VHDL_STRING 4
+#define wxSTC_VHDL_OPERATOR 5
+#define wxSTC_VHDL_IDENTIFIER 6
+#define wxSTC_VHDL_STRINGEOL 7
+#define wxSTC_VHDL_KEYWORD 8
+#define wxSTC_VHDL_STDOPERATOR 9
+#define wxSTC_VHDL_ATTRIBUTE 10
+#define wxSTC_VHDL_STDFUNCTION 11
+#define wxSTC_VHDL_STDPACKAGE 12
+#define wxSTC_VHDL_STDTYPE 13
+#define wxSTC_VHDL_USERWORD 14
+
 
 //-----------------------------------------
 // Commands that can be bound to keystrokes
 
 //-----------------------------------------
 // Commands that can be bound to keystrokes
@@ -2737,6 +2776,10 @@ public:
     // Enlarge the document to a particular size of text bytes.
     void Allocate(int bytes);
 
     // Enlarge the document to a particular size of text bytes.
     void Allocate(int bytes);
 
+    // Find the position of a column on a line taking into account tabs and 
+    // multi-byte characters. If beyond end of line, return line end position.
+    int FindColumn(int line, int column);
+
     // Start notifying the container of all key presses and commands.
     void StartRecord();
 
     // Start notifying the container of all key presses and commands.
     void StartRecord();
 
index 77751156071d72bec2ea565054aea9e7e9f11947..385a300f1211e48dac3a99969651c88ec5b55e66 100644 (file)
@@ -1,6 +1,6 @@
 # =========================================================================
 #     This makefile was generated by
 # =========================================================================
 #     This makefile was generated by
-#     Bakefile 0.1.4 (http://bakefile.sourceforge.net)
+#     Bakefile 0.1.6 (http://bakefile.sourceforge.net)
 #     Do not modify, all changes will be overwritten!
 # =========================================================================
 
 #     Do not modify, all changes will be overwritten!
 # =========================================================================
 
@@ -49,8 +49,8 @@ HOST_SUFFIX = @HOST_SUFFIX@
 DESTDIR = 
 WX_RELEASE = 2.5
 WX_RELEASE_NODOT = 25
 DESTDIR = 
 WX_RELEASE = 2.5
 WX_RELEASE_NODOT = 25
-WX_VERSION = $(WX_RELEASE).3
-WX_VERSION_NODOT = $(WX_RELEASE_NODOT)3
+WX_VERSION = $(WX_RELEASE).4
+WX_VERSION_NODOT = $(WX_RELEASE_NODOT)4
 LIBDIRNAME = $(top_builddir)lib
 STCDLL_CXXFLAGS = -D__WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p) \
        -I$(srcdir)/../../include -I$(srcdir)/scintilla/include \
 LIBDIRNAME = $(top_builddir)lib
 STCDLL_CXXFLAGS = -D__WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p) \
        -I$(srcdir)/../../include -I$(srcdir)/scintilla/include \
@@ -64,8 +64,8 @@ STCDLL_OBJECTS =  \
        stcdll_CallTip.o \
        stcdll_CellBuffer.o \
        stcdll_ContractionState.o \
        stcdll_CallTip.o \
        stcdll_CellBuffer.o \
        stcdll_ContractionState.o \
-       stcdll_DocumentAccessor.o \
        stcdll_Document.o \
        stcdll_Document.o \
+       stcdll_DocumentAccessor.o \
        stcdll_Editor.o \
        stcdll_ExternalLexer.o \
        stcdll_Indicator.o \
        stcdll_Editor.o \
        stcdll_ExternalLexer.o \
        stcdll_Indicator.o \
@@ -76,6 +76,7 @@ STCDLL_OBJECTS =  \
        stcdll_LexAVE.o \
        stcdll_LexAda.o \
        stcdll_LexAsm.o \
        stcdll_LexAVE.o \
        stcdll_LexAda.o \
        stcdll_LexAsm.o \
+       stcdll_LexAsn1.o \
        stcdll_LexBaan.o \
        stcdll_LexBash.o \
        stcdll_LexBullant.o \
        stcdll_LexBaan.o \
        stcdll_LexBash.o \
        stcdll_LexBullant.o \
@@ -114,14 +115,15 @@ STCDLL_OBJECTS =  \
        stcdll_LexSpecman.o \
        stcdll_LexTeX.o \
        stcdll_LexVB.o \
        stcdll_LexSpecman.o \
        stcdll_LexTeX.o \
        stcdll_LexVB.o \
+       stcdll_LexVHDL.o \
        stcdll_LexVerilog.o \
        stcdll_LexYAML.o \
        stcdll_LineMarker.o \
        stcdll_PropSet.o \
        stcdll_RESearch.o \
        stcdll_ScintillaBase.o \
        stcdll_LexVerilog.o \
        stcdll_LexYAML.o \
        stcdll_LineMarker.o \
        stcdll_PropSet.o \
        stcdll_RESearch.o \
        stcdll_ScintillaBase.o \
-       stcdll_StyleContext.o \
        stcdll_Style.o \
        stcdll_Style.o \
+       stcdll_StyleContext.o \
        stcdll_UniConversion.o \
        stcdll_ViewStyle.o \
        stcdll_WindowAccessor.o \
        stcdll_UniConversion.o \
        stcdll_ViewStyle.o \
        stcdll_WindowAccessor.o \
@@ -138,8 +140,8 @@ STCLIB_OBJECTS =  \
        stclib_CallTip.o \
        stclib_CellBuffer.o \
        stclib_ContractionState.o \
        stclib_CallTip.o \
        stclib_CellBuffer.o \
        stclib_ContractionState.o \
-       stclib_DocumentAccessor.o \
        stclib_Document.o \
        stclib_Document.o \
+       stclib_DocumentAccessor.o \
        stclib_Editor.o \
        stclib_ExternalLexer.o \
        stclib_Indicator.o \
        stclib_Editor.o \
        stclib_ExternalLexer.o \
        stclib_Indicator.o \
@@ -150,6 +152,7 @@ STCLIB_OBJECTS =  \
        stclib_LexAVE.o \
        stclib_LexAda.o \
        stclib_LexAsm.o \
        stclib_LexAVE.o \
        stclib_LexAda.o \
        stclib_LexAsm.o \
+       stclib_LexAsn1.o \
        stclib_LexBaan.o \
        stclib_LexBash.o \
        stclib_LexBullant.o \
        stclib_LexBaan.o \
        stclib_LexBash.o \
        stclib_LexBullant.o \
@@ -188,14 +191,15 @@ STCLIB_OBJECTS =  \
        stclib_LexSpecman.o \
        stclib_LexTeX.o \
        stclib_LexVB.o \
        stclib_LexSpecman.o \
        stclib_LexTeX.o \
        stclib_LexVB.o \
+       stclib_LexVHDL.o \
        stclib_LexVerilog.o \
        stclib_LexYAML.o \
        stclib_LineMarker.o \
        stclib_PropSet.o \
        stclib_RESearch.o \
        stclib_ScintillaBase.o \
        stclib_LexVerilog.o \
        stclib_LexYAML.o \
        stclib_LineMarker.o \
        stclib_PropSet.o \
        stclib_RESearch.o \
        stclib_ScintillaBase.o \
-       stclib_StyleContext.o \
        stclib_Style.o \
        stclib_Style.o \
+       stclib_StyleContext.o \
        stclib_UniConversion.o \
        stclib_ViewStyle.o \
        stclib_WindowAccessor.o \
        stclib_UniConversion.o \
        stclib_ViewStyle.o \
        stclib_WindowAccessor.o \
@@ -238,14 +242,14 @@ COND_PLATFORM_WIN32_1___stcdll___importlib = \
        -Wl,--out-implib,$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
 @COND_PLATFORM_WIN32_1@__stcdll___importlib = $(COND_PLATFORM_WIN32_1___stcdll___importlib)
 @COND_PLATFORM_MACOSX_0_USE_SOVERSION_1@__stcdll___targetsuf2 \
        -Wl,--out-implib,$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
 @COND_PLATFORM_WIN32_1@__stcdll___importlib = $(COND_PLATFORM_WIN32_1___stcdll___importlib)
 @COND_PLATFORM_MACOSX_0_USE_SOVERSION_1@__stcdll___targetsuf2 \
-@COND_PLATFORM_MACOSX_0_USE_SOVERSION_1@       = .$(SO_SUFFIX).3
+@COND_PLATFORM_MACOSX_0_USE_SOVERSION_1@       = .$(SO_SUFFIX).4
 @COND_PLATFORM_MACOSX_1_USE_SOVERSION_1@__stcdll___targetsuf2 \
 @COND_PLATFORM_MACOSX_1_USE_SOVERSION_1@__stcdll___targetsuf2 \
-@COND_PLATFORM_MACOSX_1_USE_SOVERSION_1@       = .3.$(SO_SUFFIX)
+@COND_PLATFORM_MACOSX_1_USE_SOVERSION_1@       = .4.$(SO_SUFFIX)
 @COND_USE_SOVERSION_0@__stcdll___targetsuf2 = .$(SO_SUFFIX)
 @COND_PLATFORM_MACOSX_0_USE_SOVERSION_1@__stcdll___targetsuf3 \
 @COND_USE_SOVERSION_0@__stcdll___targetsuf2 = .$(SO_SUFFIX)
 @COND_PLATFORM_MACOSX_0_USE_SOVERSION_1@__stcdll___targetsuf3 \
-@COND_PLATFORM_MACOSX_0_USE_SOVERSION_1@       = .$(SO_SUFFIX).3.0.0
+@COND_PLATFORM_MACOSX_0_USE_SOVERSION_1@       = .$(SO_SUFFIX).4.0.0
 @COND_PLATFORM_MACOSX_1_USE_SOVERSION_1@__stcdll___targetsuf3 \
 @COND_PLATFORM_MACOSX_1_USE_SOVERSION_1@__stcdll___targetsuf3 \
-@COND_PLATFORM_MACOSX_1_USE_SOVERSION_1@       = .3.0.0.$(SO_SUFFIX)
+@COND_PLATFORM_MACOSX_1_USE_SOVERSION_1@       = .4.0.0.$(SO_SUFFIX)
 @COND_USE_SOVERSION_0@__stcdll___targetsuf3 = .$(SO_SUFFIX)
 COND_USE_SOVERLINUX_1___stcdll___soname_flags = \
        $(SONAME_FLAG)$(DLLPREFIX)$(WXDLLNAMEPREFIXGUI)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG)$(__stcdll___targetsuf2)
 @COND_USE_SOVERSION_0@__stcdll___targetsuf3 = .$(SO_SUFFIX)
 COND_USE_SOVERLINUX_1___stcdll___soname_flags = \
        $(SONAME_FLAG)$(DLLPREFIX)$(WXDLLNAMEPREFIXGUI)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG)$(__stcdll___targetsuf2)
@@ -336,7 +340,7 @@ clean:
        rm -f $(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc-$(WX_RELEASE)$(HOST_SUFFIX)$(LIBEXT)
 
 distclean: clean
        rm -f $(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc-$(WX_RELEASE)$(HOST_SUFFIX)$(LIBEXT)
 
 distclean: clean
-       rm -f configure config.cache config.log config.status bk-deps bk-make-pch shared-ld-sh Makefile
+       rm -f config.cache config.log config.status bk-deps bk-make-pch shared-ld-sh Makefile
 
 @COND_SHARED_1@$(LIBDIRNAME)/$(DLLPREFIX)$(WXDLLNAMEPREFIXGUI)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG)$(__stcdll___targetsuf3): $(STCDLL_OBJECTS)
 @COND_SHARED_1@        $(SHARED_LD_CXX) $@ $(STCDLL_OBJECTS) $(LDFLAGS)   -L$(LIBDIRNAME) $(__stcdll___macinstnamecmd) $(__stcdll___importlib) $(__stcdll___soname_flags) $(__stcdll___macver)  $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) $(__LIB_ZLIB_p) $(__LIB_ODBC_p) $(__LIB_REGEX_p) $(__LIB_EXPAT_p) $(EXTRALIBS_FOR_BASE) $(EXTRALIBS_FOR_GUI) $(__WXLIB_CORE_p)  $(__WXLIB_BASE_p)
 
 @COND_SHARED_1@$(LIBDIRNAME)/$(DLLPREFIX)$(WXDLLNAMEPREFIXGUI)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG)$(__stcdll___targetsuf3): $(STCDLL_OBJECTS)
 @COND_SHARED_1@        $(SHARED_LD_CXX) $@ $(STCDLL_OBJECTS) $(LDFLAGS)   -L$(LIBDIRNAME) $(__stcdll___macinstnamecmd) $(__stcdll___importlib) $(__stcdll___soname_flags) $(__stcdll___macver)  $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) $(__LIB_ZLIB_p) $(__LIB_ODBC_p) $(__LIB_REGEX_p) $(__LIB_EXPAT_p) $(EXTRALIBS_FOR_BASE) $(EXTRALIBS_FOR_GUI) $(__WXLIB_CORE_p)  $(__WXLIB_BASE_p)
@@ -359,418 +363,430 @@ distclean: clean
 @COND_SHARED_0@        $(INSTALL_DATA) $(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc-$(WX_RELEASE)$(HOST_SUFFIX)$(LIBEXT) $(DESTDIR)$(libdir)
 
 stcdll_PlatWX.o: $(srcdir)/PlatWX.cpp
 @COND_SHARED_0@        $(INSTALL_DATA) $(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc-$(WX_RELEASE)$(HOST_SUFFIX)$(LIBEXT) $(DESTDIR)$(libdir)
 
 stcdll_PlatWX.o: $(srcdir)/PlatWX.cpp
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/PlatWX.cpp
 
 stcdll_ScintillaWX.o: $(srcdir)/ScintillaWX.cpp
 
 stcdll_ScintillaWX.o: $(srcdir)/ScintillaWX.cpp
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/ScintillaWX.cpp
 
 stcdll_stc.o: $(srcdir)/stc.cpp
 
 stcdll_stc.o: $(srcdir)/stc.cpp
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/stc.cpp
 
 stcdll_AutoComplete.o: $(srcdir)/scintilla/src/AutoComplete.cxx
 
 stcdll_AutoComplete.o: $(srcdir)/scintilla/src/AutoComplete.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/AutoComplete.cxx
 
 stcdll_CallTip.o: $(srcdir)/scintilla/src/CallTip.cxx
 
 stcdll_CallTip.o: $(srcdir)/scintilla/src/CallTip.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/CallTip.cxx
 
 stcdll_CellBuffer.o: $(srcdir)/scintilla/src/CellBuffer.cxx
 
 stcdll_CellBuffer.o: $(srcdir)/scintilla/src/CellBuffer.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/CellBuffer.cxx
 
 stcdll_ContractionState.o: $(srcdir)/scintilla/src/ContractionState.cxx
 
 stcdll_ContractionState.o: $(srcdir)/scintilla/src/ContractionState.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
-
-stcdll_DocumentAccessor.o: $(srcdir)/scintilla/src/DocumentAccessor.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/ContractionState.cxx
 
 stcdll_Document.o: $(srcdir)/scintilla/src/Document.cxx
 
 stcdll_Document.o: $(srcdir)/scintilla/src/Document.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/Document.cxx
+
+stcdll_DocumentAccessor.o: $(srcdir)/scintilla/src/DocumentAccessor.cxx
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/DocumentAccessor.cxx
 
 stcdll_Editor.o: $(srcdir)/scintilla/src/Editor.cxx
 
 stcdll_Editor.o: $(srcdir)/scintilla/src/Editor.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/Editor.cxx
 
 stcdll_ExternalLexer.o: $(srcdir)/scintilla/src/ExternalLexer.cxx
 
 stcdll_ExternalLexer.o: $(srcdir)/scintilla/src/ExternalLexer.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/ExternalLexer.cxx
 
 stcdll_Indicator.o: $(srcdir)/scintilla/src/Indicator.cxx
 
 stcdll_Indicator.o: $(srcdir)/scintilla/src/Indicator.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/Indicator.cxx
 
 stcdll_KeyMap.o: $(srcdir)/scintilla/src/KeyMap.cxx
 
 stcdll_KeyMap.o: $(srcdir)/scintilla/src/KeyMap.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/KeyMap.cxx
 
 stcdll_KeyWords.o: $(srcdir)/scintilla/src/KeyWords.cxx
 
 stcdll_KeyWords.o: $(srcdir)/scintilla/src/KeyWords.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/KeyWords.cxx
 
 stcdll_LexAPDL.o: $(srcdir)/scintilla/src/LexAPDL.cxx
 
 stcdll_LexAPDL.o: $(srcdir)/scintilla/src/LexAPDL.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexAPDL.cxx
 
 stcdll_LexAU3.o: $(srcdir)/scintilla/src/LexAU3.cxx
 
 stcdll_LexAU3.o: $(srcdir)/scintilla/src/LexAU3.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexAU3.cxx
 
 stcdll_LexAVE.o: $(srcdir)/scintilla/src/LexAVE.cxx
 
 stcdll_LexAVE.o: $(srcdir)/scintilla/src/LexAVE.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexAVE.cxx
 
 stcdll_LexAda.o: $(srcdir)/scintilla/src/LexAda.cxx
 
 stcdll_LexAda.o: $(srcdir)/scintilla/src/LexAda.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexAda.cxx
 
 stcdll_LexAsm.o: $(srcdir)/scintilla/src/LexAsm.cxx
 
 stcdll_LexAsm.o: $(srcdir)/scintilla/src/LexAsm.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexAsm.cxx
+
+stcdll_LexAsn1.o: $(srcdir)/scintilla/src/LexAsn1.cxx
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexAsn1.cxx
 
 stcdll_LexBaan.o: $(srcdir)/scintilla/src/LexBaan.cxx
 
 stcdll_LexBaan.o: $(srcdir)/scintilla/src/LexBaan.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexBaan.cxx
 
 stcdll_LexBash.o: $(srcdir)/scintilla/src/LexBash.cxx
 
 stcdll_LexBash.o: $(srcdir)/scintilla/src/LexBash.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexBash.cxx
 
 stcdll_LexBullant.o: $(srcdir)/scintilla/src/LexBullant.cxx
 
 stcdll_LexBullant.o: $(srcdir)/scintilla/src/LexBullant.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexBullant.cxx
 
 stcdll_LexCLW.o: $(srcdir)/scintilla/src/LexCLW.cxx
 
 stcdll_LexCLW.o: $(srcdir)/scintilla/src/LexCLW.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexCLW.cxx
 
 stcdll_LexCPP.o: $(srcdir)/scintilla/src/LexCPP.cxx
 
 stcdll_LexCPP.o: $(srcdir)/scintilla/src/LexCPP.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexCPP.cxx
 
 stcdll_LexCSS.o: $(srcdir)/scintilla/src/LexCSS.cxx
 
 stcdll_LexCSS.o: $(srcdir)/scintilla/src/LexCSS.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexCSS.cxx
 
 stcdll_LexConf.o: $(srcdir)/scintilla/src/LexConf.cxx
 
 stcdll_LexConf.o: $(srcdir)/scintilla/src/LexConf.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexConf.cxx
 
 stcdll_LexCrontab.o: $(srcdir)/scintilla/src/LexCrontab.cxx
 
 stcdll_LexCrontab.o: $(srcdir)/scintilla/src/LexCrontab.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexCrontab.cxx
 
 stcdll_LexEScript.o: $(srcdir)/scintilla/src/LexEScript.cxx
 
 stcdll_LexEScript.o: $(srcdir)/scintilla/src/LexEScript.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexEScript.cxx
 
 stcdll_LexEiffel.o: $(srcdir)/scintilla/src/LexEiffel.cxx
 
 stcdll_LexEiffel.o: $(srcdir)/scintilla/src/LexEiffel.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexEiffel.cxx
 
 stcdll_LexErlang.o: $(srcdir)/scintilla/src/LexErlang.cxx
 
 stcdll_LexErlang.o: $(srcdir)/scintilla/src/LexErlang.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexErlang.cxx
 
 stcdll_LexForth.o: $(srcdir)/scintilla/src/LexForth.cxx
 
 stcdll_LexForth.o: $(srcdir)/scintilla/src/LexForth.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexForth.cxx
 
 stcdll_LexFortran.o: $(srcdir)/scintilla/src/LexFortran.cxx
 
 stcdll_LexFortran.o: $(srcdir)/scintilla/src/LexFortran.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexFortran.cxx
 
 stcdll_LexGui4Cli.o: $(srcdir)/scintilla/src/LexGui4Cli.cxx
 
 stcdll_LexGui4Cli.o: $(srcdir)/scintilla/src/LexGui4Cli.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexGui4Cli.cxx
 
 stcdll_LexHTML.o: $(srcdir)/scintilla/src/LexHTML.cxx
 
 stcdll_LexHTML.o: $(srcdir)/scintilla/src/LexHTML.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexHTML.cxx
 
 stcdll_LexKix.o: $(srcdir)/scintilla/src/LexKix.cxx
 
 stcdll_LexKix.o: $(srcdir)/scintilla/src/LexKix.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexKix.cxx
 
 stcdll_LexLisp.o: $(srcdir)/scintilla/src/LexLisp.cxx
 
 stcdll_LexLisp.o: $(srcdir)/scintilla/src/LexLisp.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexLisp.cxx
 
 stcdll_LexLout.o: $(srcdir)/scintilla/src/LexLout.cxx
 
 stcdll_LexLout.o: $(srcdir)/scintilla/src/LexLout.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexLout.cxx
 
 stcdll_LexLua.o: $(srcdir)/scintilla/src/LexLua.cxx
 
 stcdll_LexLua.o: $(srcdir)/scintilla/src/LexLua.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexLua.cxx
 
 stcdll_LexMMIXAL.o: $(srcdir)/scintilla/src/LexMMIXAL.cxx
 
 stcdll_LexMMIXAL.o: $(srcdir)/scintilla/src/LexMMIXAL.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexMMIXAL.cxx
 
 stcdll_LexMPT.o: $(srcdir)/scintilla/src/LexMPT.cxx
 
 stcdll_LexMPT.o: $(srcdir)/scintilla/src/LexMPT.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexMPT.cxx
 
 stcdll_LexMSSQL.o: $(srcdir)/scintilla/src/LexMSSQL.cxx
 
 stcdll_LexMSSQL.o: $(srcdir)/scintilla/src/LexMSSQL.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexMSSQL.cxx
 
 stcdll_LexMatlab.o: $(srcdir)/scintilla/src/LexMatlab.cxx
 
 stcdll_LexMatlab.o: $(srcdir)/scintilla/src/LexMatlab.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexMatlab.cxx
 
 stcdll_LexMetapost.o: $(srcdir)/scintilla/src/LexMetapost.cxx
 
 stcdll_LexMetapost.o: $(srcdir)/scintilla/src/LexMetapost.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexMetapost.cxx
 
 stcdll_LexNsis.o: $(srcdir)/scintilla/src/LexNsis.cxx
 
 stcdll_LexNsis.o: $(srcdir)/scintilla/src/LexNsis.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexNsis.cxx
 
 stcdll_LexOthers.o: $(srcdir)/scintilla/src/LexOthers.cxx
 
 stcdll_LexOthers.o: $(srcdir)/scintilla/src/LexOthers.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexOthers.cxx
 
 stcdll_LexPB.o: $(srcdir)/scintilla/src/LexPB.cxx
 
 stcdll_LexPB.o: $(srcdir)/scintilla/src/LexPB.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexPB.cxx
 
 stcdll_LexPOV.o: $(srcdir)/scintilla/src/LexPOV.cxx
 
 stcdll_LexPOV.o: $(srcdir)/scintilla/src/LexPOV.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexPOV.cxx
 
 stcdll_LexPS.o: $(srcdir)/scintilla/src/LexPS.cxx
 
 stcdll_LexPS.o: $(srcdir)/scintilla/src/LexPS.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexPS.cxx
 
 stcdll_LexPascal.o: $(srcdir)/scintilla/src/LexPascal.cxx
 
 stcdll_LexPascal.o: $(srcdir)/scintilla/src/LexPascal.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexPascal.cxx
 
 stcdll_LexPerl.o: $(srcdir)/scintilla/src/LexPerl.cxx
 
 stcdll_LexPerl.o: $(srcdir)/scintilla/src/LexPerl.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexPerl.cxx
 
 stcdll_LexPython.o: $(srcdir)/scintilla/src/LexPython.cxx
 
 stcdll_LexPython.o: $(srcdir)/scintilla/src/LexPython.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexPython.cxx
 
 stcdll_LexRuby.o: $(srcdir)/scintilla/src/LexRuby.cxx
 
 stcdll_LexRuby.o: $(srcdir)/scintilla/src/LexRuby.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexRuby.cxx
 
 stcdll_LexSQL.o: $(srcdir)/scintilla/src/LexSQL.cxx
 
 stcdll_LexSQL.o: $(srcdir)/scintilla/src/LexSQL.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexSQL.cxx
 
 stcdll_LexScriptol.o: $(srcdir)/scintilla/src/LexScriptol.cxx
 
 stcdll_LexScriptol.o: $(srcdir)/scintilla/src/LexScriptol.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexScriptol.cxx
 
 stcdll_LexSpecman.o: $(srcdir)/scintilla/src/LexSpecman.cxx
 
 stcdll_LexSpecman.o: $(srcdir)/scintilla/src/LexSpecman.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexSpecman.cxx
 
 stcdll_LexTeX.o: $(srcdir)/scintilla/src/LexTeX.cxx
 
 stcdll_LexTeX.o: $(srcdir)/scintilla/src/LexTeX.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexTeX.cxx
 
 stcdll_LexVB.o: $(srcdir)/scintilla/src/LexVB.cxx
 
 stcdll_LexVB.o: $(srcdir)/scintilla/src/LexVB.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexVB.cxx
+
+stcdll_LexVHDL.o: $(srcdir)/scintilla/src/LexVHDL.cxx
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexVHDL.cxx
 
 stcdll_LexVerilog.o: $(srcdir)/scintilla/src/LexVerilog.cxx
 
 stcdll_LexVerilog.o: $(srcdir)/scintilla/src/LexVerilog.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexVerilog.cxx
 
 stcdll_LexYAML.o: $(srcdir)/scintilla/src/LexYAML.cxx
 
 stcdll_LexYAML.o: $(srcdir)/scintilla/src/LexYAML.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LexYAML.cxx
 
 stcdll_LineMarker.o: $(srcdir)/scintilla/src/LineMarker.cxx
 
 stcdll_LineMarker.o: $(srcdir)/scintilla/src/LineMarker.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/LineMarker.cxx
 
 stcdll_PropSet.o: $(srcdir)/scintilla/src/PropSet.cxx
 
 stcdll_PropSet.o: $(srcdir)/scintilla/src/PropSet.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/PropSet.cxx
 
 stcdll_RESearch.o: $(srcdir)/scintilla/src/RESearch.cxx
 
 stcdll_RESearch.o: $(srcdir)/scintilla/src/RESearch.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/RESearch.cxx
 
 stcdll_ScintillaBase.o: $(srcdir)/scintilla/src/ScintillaBase.cxx
 
 stcdll_ScintillaBase.o: $(srcdir)/scintilla/src/ScintillaBase.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
-
-stcdll_StyleContext.o: $(srcdir)/scintilla/src/StyleContext.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/ScintillaBase.cxx
 
 stcdll_Style.o: $(srcdir)/scintilla/src/Style.cxx
 
 stcdll_Style.o: $(srcdir)/scintilla/src/Style.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/Style.cxx
+
+stcdll_StyleContext.o: $(srcdir)/scintilla/src/StyleContext.cxx
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/StyleContext.cxx
 
 stcdll_UniConversion.o: $(srcdir)/scintilla/src/UniConversion.cxx
 
 stcdll_UniConversion.o: $(srcdir)/scintilla/src/UniConversion.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/UniConversion.cxx
 
 stcdll_ViewStyle.o: $(srcdir)/scintilla/src/ViewStyle.cxx
 
 stcdll_ViewStyle.o: $(srcdir)/scintilla/src/ViewStyle.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/ViewStyle.cxx
 
 stcdll_WindowAccessor.o: $(srcdir)/scintilla/src/WindowAccessor.cxx
 
 stcdll_WindowAccessor.o: $(srcdir)/scintilla/src/WindowAccessor.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/WindowAccessor.cxx
 
 stcdll_XPM.o: $(srcdir)/scintilla/src/XPM.cxx
 
 stcdll_XPM.o: $(srcdir)/scintilla/src/XPM.cxx
-       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCDLL_CXXFLAGS) $(srcdir)/scintilla/src/XPM.cxx
 
 stclib_PlatWX.o: $(srcdir)/PlatWX.cpp
 
 stclib_PlatWX.o: $(srcdir)/PlatWX.cpp
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/PlatWX.cpp
 
 stclib_ScintillaWX.o: $(srcdir)/ScintillaWX.cpp
 
 stclib_ScintillaWX.o: $(srcdir)/ScintillaWX.cpp
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/ScintillaWX.cpp
 
 stclib_stc.o: $(srcdir)/stc.cpp
 
 stclib_stc.o: $(srcdir)/stc.cpp
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/stc.cpp
 
 stclib_AutoComplete.o: $(srcdir)/scintilla/src/AutoComplete.cxx
 
 stclib_AutoComplete.o: $(srcdir)/scintilla/src/AutoComplete.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/AutoComplete.cxx
 
 stclib_CallTip.o: $(srcdir)/scintilla/src/CallTip.cxx
 
 stclib_CallTip.o: $(srcdir)/scintilla/src/CallTip.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/CallTip.cxx
 
 stclib_CellBuffer.o: $(srcdir)/scintilla/src/CellBuffer.cxx
 
 stclib_CellBuffer.o: $(srcdir)/scintilla/src/CellBuffer.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/CellBuffer.cxx
 
 stclib_ContractionState.o: $(srcdir)/scintilla/src/ContractionState.cxx
 
 stclib_ContractionState.o: $(srcdir)/scintilla/src/ContractionState.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
-
-stclib_DocumentAccessor.o: $(srcdir)/scintilla/src/DocumentAccessor.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/ContractionState.cxx
 
 stclib_Document.o: $(srcdir)/scintilla/src/Document.cxx
 
 stclib_Document.o: $(srcdir)/scintilla/src/Document.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/Document.cxx
+
+stclib_DocumentAccessor.o: $(srcdir)/scintilla/src/DocumentAccessor.cxx
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/DocumentAccessor.cxx
 
 stclib_Editor.o: $(srcdir)/scintilla/src/Editor.cxx
 
 stclib_Editor.o: $(srcdir)/scintilla/src/Editor.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/Editor.cxx
 
 stclib_ExternalLexer.o: $(srcdir)/scintilla/src/ExternalLexer.cxx
 
 stclib_ExternalLexer.o: $(srcdir)/scintilla/src/ExternalLexer.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/ExternalLexer.cxx
 
 stclib_Indicator.o: $(srcdir)/scintilla/src/Indicator.cxx
 
 stclib_Indicator.o: $(srcdir)/scintilla/src/Indicator.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/Indicator.cxx
 
 stclib_KeyMap.o: $(srcdir)/scintilla/src/KeyMap.cxx
 
 stclib_KeyMap.o: $(srcdir)/scintilla/src/KeyMap.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/KeyMap.cxx
 
 stclib_KeyWords.o: $(srcdir)/scintilla/src/KeyWords.cxx
 
 stclib_KeyWords.o: $(srcdir)/scintilla/src/KeyWords.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/KeyWords.cxx
 
 stclib_LexAPDL.o: $(srcdir)/scintilla/src/LexAPDL.cxx
 
 stclib_LexAPDL.o: $(srcdir)/scintilla/src/LexAPDL.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexAPDL.cxx
 
 stclib_LexAU3.o: $(srcdir)/scintilla/src/LexAU3.cxx
 
 stclib_LexAU3.o: $(srcdir)/scintilla/src/LexAU3.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexAU3.cxx
 
 stclib_LexAVE.o: $(srcdir)/scintilla/src/LexAVE.cxx
 
 stclib_LexAVE.o: $(srcdir)/scintilla/src/LexAVE.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexAVE.cxx
 
 stclib_LexAda.o: $(srcdir)/scintilla/src/LexAda.cxx
 
 stclib_LexAda.o: $(srcdir)/scintilla/src/LexAda.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexAda.cxx
 
 stclib_LexAsm.o: $(srcdir)/scintilla/src/LexAsm.cxx
 
 stclib_LexAsm.o: $(srcdir)/scintilla/src/LexAsm.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexAsm.cxx
+
+stclib_LexAsn1.o: $(srcdir)/scintilla/src/LexAsn1.cxx
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexAsn1.cxx
 
 stclib_LexBaan.o: $(srcdir)/scintilla/src/LexBaan.cxx
 
 stclib_LexBaan.o: $(srcdir)/scintilla/src/LexBaan.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexBaan.cxx
 
 stclib_LexBash.o: $(srcdir)/scintilla/src/LexBash.cxx
 
 stclib_LexBash.o: $(srcdir)/scintilla/src/LexBash.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexBash.cxx
 
 stclib_LexBullant.o: $(srcdir)/scintilla/src/LexBullant.cxx
 
 stclib_LexBullant.o: $(srcdir)/scintilla/src/LexBullant.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexBullant.cxx
 
 stclib_LexCLW.o: $(srcdir)/scintilla/src/LexCLW.cxx
 
 stclib_LexCLW.o: $(srcdir)/scintilla/src/LexCLW.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexCLW.cxx
 
 stclib_LexCPP.o: $(srcdir)/scintilla/src/LexCPP.cxx
 
 stclib_LexCPP.o: $(srcdir)/scintilla/src/LexCPP.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexCPP.cxx
 
 stclib_LexCSS.o: $(srcdir)/scintilla/src/LexCSS.cxx
 
 stclib_LexCSS.o: $(srcdir)/scintilla/src/LexCSS.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexCSS.cxx
 
 stclib_LexConf.o: $(srcdir)/scintilla/src/LexConf.cxx
 
 stclib_LexConf.o: $(srcdir)/scintilla/src/LexConf.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexConf.cxx
 
 stclib_LexCrontab.o: $(srcdir)/scintilla/src/LexCrontab.cxx
 
 stclib_LexCrontab.o: $(srcdir)/scintilla/src/LexCrontab.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexCrontab.cxx
 
 stclib_LexEScript.o: $(srcdir)/scintilla/src/LexEScript.cxx
 
 stclib_LexEScript.o: $(srcdir)/scintilla/src/LexEScript.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexEScript.cxx
 
 stclib_LexEiffel.o: $(srcdir)/scintilla/src/LexEiffel.cxx
 
 stclib_LexEiffel.o: $(srcdir)/scintilla/src/LexEiffel.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexEiffel.cxx
 
 stclib_LexErlang.o: $(srcdir)/scintilla/src/LexErlang.cxx
 
 stclib_LexErlang.o: $(srcdir)/scintilla/src/LexErlang.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexErlang.cxx
 
 stclib_LexForth.o: $(srcdir)/scintilla/src/LexForth.cxx
 
 stclib_LexForth.o: $(srcdir)/scintilla/src/LexForth.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexForth.cxx
 
 stclib_LexFortran.o: $(srcdir)/scintilla/src/LexFortran.cxx
 
 stclib_LexFortran.o: $(srcdir)/scintilla/src/LexFortran.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexFortran.cxx
 
 stclib_LexGui4Cli.o: $(srcdir)/scintilla/src/LexGui4Cli.cxx
 
 stclib_LexGui4Cli.o: $(srcdir)/scintilla/src/LexGui4Cli.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexGui4Cli.cxx
 
 stclib_LexHTML.o: $(srcdir)/scintilla/src/LexHTML.cxx
 
 stclib_LexHTML.o: $(srcdir)/scintilla/src/LexHTML.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexHTML.cxx
 
 stclib_LexKix.o: $(srcdir)/scintilla/src/LexKix.cxx
 
 stclib_LexKix.o: $(srcdir)/scintilla/src/LexKix.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexKix.cxx
 
 stclib_LexLisp.o: $(srcdir)/scintilla/src/LexLisp.cxx
 
 stclib_LexLisp.o: $(srcdir)/scintilla/src/LexLisp.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexLisp.cxx
 
 stclib_LexLout.o: $(srcdir)/scintilla/src/LexLout.cxx
 
 stclib_LexLout.o: $(srcdir)/scintilla/src/LexLout.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexLout.cxx
 
 stclib_LexLua.o: $(srcdir)/scintilla/src/LexLua.cxx
 
 stclib_LexLua.o: $(srcdir)/scintilla/src/LexLua.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexLua.cxx
 
 stclib_LexMMIXAL.o: $(srcdir)/scintilla/src/LexMMIXAL.cxx
 
 stclib_LexMMIXAL.o: $(srcdir)/scintilla/src/LexMMIXAL.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexMMIXAL.cxx
 
 stclib_LexMPT.o: $(srcdir)/scintilla/src/LexMPT.cxx
 
 stclib_LexMPT.o: $(srcdir)/scintilla/src/LexMPT.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexMPT.cxx
 
 stclib_LexMSSQL.o: $(srcdir)/scintilla/src/LexMSSQL.cxx
 
 stclib_LexMSSQL.o: $(srcdir)/scintilla/src/LexMSSQL.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexMSSQL.cxx
 
 stclib_LexMatlab.o: $(srcdir)/scintilla/src/LexMatlab.cxx
 
 stclib_LexMatlab.o: $(srcdir)/scintilla/src/LexMatlab.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexMatlab.cxx
 
 stclib_LexMetapost.o: $(srcdir)/scintilla/src/LexMetapost.cxx
 
 stclib_LexMetapost.o: $(srcdir)/scintilla/src/LexMetapost.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexMetapost.cxx
 
 stclib_LexNsis.o: $(srcdir)/scintilla/src/LexNsis.cxx
 
 stclib_LexNsis.o: $(srcdir)/scintilla/src/LexNsis.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexNsis.cxx
 
 stclib_LexOthers.o: $(srcdir)/scintilla/src/LexOthers.cxx
 
 stclib_LexOthers.o: $(srcdir)/scintilla/src/LexOthers.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexOthers.cxx
 
 stclib_LexPB.o: $(srcdir)/scintilla/src/LexPB.cxx
 
 stclib_LexPB.o: $(srcdir)/scintilla/src/LexPB.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexPB.cxx
 
 stclib_LexPOV.o: $(srcdir)/scintilla/src/LexPOV.cxx
 
 stclib_LexPOV.o: $(srcdir)/scintilla/src/LexPOV.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexPOV.cxx
 
 stclib_LexPS.o: $(srcdir)/scintilla/src/LexPS.cxx
 
 stclib_LexPS.o: $(srcdir)/scintilla/src/LexPS.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexPS.cxx
 
 stclib_LexPascal.o: $(srcdir)/scintilla/src/LexPascal.cxx
 
 stclib_LexPascal.o: $(srcdir)/scintilla/src/LexPascal.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexPascal.cxx
 
 stclib_LexPerl.o: $(srcdir)/scintilla/src/LexPerl.cxx
 
 stclib_LexPerl.o: $(srcdir)/scintilla/src/LexPerl.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexPerl.cxx
 
 stclib_LexPython.o: $(srcdir)/scintilla/src/LexPython.cxx
 
 stclib_LexPython.o: $(srcdir)/scintilla/src/LexPython.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexPython.cxx
 
 stclib_LexRuby.o: $(srcdir)/scintilla/src/LexRuby.cxx
 
 stclib_LexRuby.o: $(srcdir)/scintilla/src/LexRuby.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexRuby.cxx
 
 stclib_LexSQL.o: $(srcdir)/scintilla/src/LexSQL.cxx
 
 stclib_LexSQL.o: $(srcdir)/scintilla/src/LexSQL.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexSQL.cxx
 
 stclib_LexScriptol.o: $(srcdir)/scintilla/src/LexScriptol.cxx
 
 stclib_LexScriptol.o: $(srcdir)/scintilla/src/LexScriptol.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexScriptol.cxx
 
 stclib_LexSpecman.o: $(srcdir)/scintilla/src/LexSpecman.cxx
 
 stclib_LexSpecman.o: $(srcdir)/scintilla/src/LexSpecman.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexSpecman.cxx
 
 stclib_LexTeX.o: $(srcdir)/scintilla/src/LexTeX.cxx
 
 stclib_LexTeX.o: $(srcdir)/scintilla/src/LexTeX.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexTeX.cxx
 
 stclib_LexVB.o: $(srcdir)/scintilla/src/LexVB.cxx
 
 stclib_LexVB.o: $(srcdir)/scintilla/src/LexVB.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexVB.cxx
+
+stclib_LexVHDL.o: $(srcdir)/scintilla/src/LexVHDL.cxx
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexVHDL.cxx
 
 stclib_LexVerilog.o: $(srcdir)/scintilla/src/LexVerilog.cxx
 
 stclib_LexVerilog.o: $(srcdir)/scintilla/src/LexVerilog.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexVerilog.cxx
 
 stclib_LexYAML.o: $(srcdir)/scintilla/src/LexYAML.cxx
 
 stclib_LexYAML.o: $(srcdir)/scintilla/src/LexYAML.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LexYAML.cxx
 
 stclib_LineMarker.o: $(srcdir)/scintilla/src/LineMarker.cxx
 
 stclib_LineMarker.o: $(srcdir)/scintilla/src/LineMarker.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/LineMarker.cxx
 
 stclib_PropSet.o: $(srcdir)/scintilla/src/PropSet.cxx
 
 stclib_PropSet.o: $(srcdir)/scintilla/src/PropSet.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/PropSet.cxx
 
 stclib_RESearch.o: $(srcdir)/scintilla/src/RESearch.cxx
 
 stclib_RESearch.o: $(srcdir)/scintilla/src/RESearch.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/RESearch.cxx
 
 stclib_ScintillaBase.o: $(srcdir)/scintilla/src/ScintillaBase.cxx
 
 stclib_ScintillaBase.o: $(srcdir)/scintilla/src/ScintillaBase.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
-
-stclib_StyleContext.o: $(srcdir)/scintilla/src/StyleContext.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/ScintillaBase.cxx
 
 stclib_Style.o: $(srcdir)/scintilla/src/Style.cxx
 
 stclib_Style.o: $(srcdir)/scintilla/src/Style.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/Style.cxx
+
+stclib_StyleContext.o: $(srcdir)/scintilla/src/StyleContext.cxx
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/StyleContext.cxx
 
 stclib_UniConversion.o: $(srcdir)/scintilla/src/UniConversion.cxx
 
 stclib_UniConversion.o: $(srcdir)/scintilla/src/UniConversion.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/UniConversion.cxx
 
 stclib_ViewStyle.o: $(srcdir)/scintilla/src/ViewStyle.cxx
 
 stclib_ViewStyle.o: $(srcdir)/scintilla/src/ViewStyle.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/ViewStyle.cxx
 
 stclib_WindowAccessor.o: $(srcdir)/scintilla/src/WindowAccessor.cxx
 
 stclib_WindowAccessor.o: $(srcdir)/scintilla/src/WindowAccessor.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/WindowAccessor.cxx
 
 stclib_XPM.o: $(srcdir)/scintilla/src/XPM.cxx
 
 stclib_XPM.o: $(srcdir)/scintilla/src/XPM.cxx
-       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $<
+       $(CXXC) -c -o $@ $(STCLIB_CXXFLAGS) $(srcdir)/scintilla/src/XPM.cxx
 
 
 # Include dependency info, if present:
 
 
 # Include dependency info, if present:
index 41b3a5a06d089c654d50d4dcf3aa2fbb86a6b92b..796f06e0c8f03ac927b8e2fa36f0763a9d507fbb 100644 (file)
@@ -539,7 +539,8 @@ long ScintillaWX::WndProc(unsigned int iMessage, unsigned long wParam, long lPar
                                           defn,
                                           vs.styles[STYLE_DEFAULT].fontName,
                                           vs.styles[STYLE_DEFAULT].sizeZoomed,
                                           defn,
                                           vs.styles[STYLE_DEFAULT].fontName,
                                           vs.styles[STYLE_DEFAULT].sizeZoomed,
-                                          IsUnicodeMode(),
+                                          CodePage(),
+                                          vs.styles[STYLE_DEFAULT].characterSet,
                                           wMain);
           // If the call-tip window would be out of the client
           // space, adjust so it displays above the text.
                                           wMain);
           // If the call-tip window would be out of the client
           // space, adjust so it displays above the text.
index 541dd96ee880dd3408e108f3587da8380e891b5b..6e0a0aee90770c073644b161bfde18d911844b91 100644 (file)
@@ -501,6 +501,11 @@ methodOverrideMap = {
          return SendMsg(%s, strlen(buf), (long)(const char*)buf);''',
      0),
 
          return SendMsg(%s, strlen(buf), (long)(const char*)buf);''',
      0),
 
+    # not sure what to do about these yet
+    'TargetAsUTF8' :       ( None, 0, 0, 0),
+    'SetLengthForEncode' : ( None, 0, 0, 0),
+    'EncodedFromUTF8' :    ( None, 0, 0, 0),
+    
 
     'GetDocPointer' :
     (0,
 
     'GetDocPointer' :
     (0,
index 25dca357b17b24068edf3ed461726ca16dc43c80..fce427d5d11dfc75b6bf312ea3f3198f8b021914 100644 (file)
@@ -3,5 +3,5 @@ scintilla/include directories from the Scintilla/SCiTE source
 distribution.  All other code needed to implement Scintilla on top of
 wxWindows is located in the directory above this one.
 
 distribution.  All other code needed to implement Scintilla on top of
 wxWindows is located in the directory above this one.
 
-The current version of the Scintilla code is 1.61
+The current version of the Scintilla code is 1.62
 
 
index e6385da71ddf818c245c11d665e81a64e35ffbb0..f0c0b84d17103be352a5aeac065191dff1568870 100644 (file)
@@ -69,7 +69,7 @@ public:
        int x;
        int y;
 
        int x;
        int y;
 
-       Point(int x_=0, int y_=0) : x(x_), y(y_) {
+       explicit Point(int x_=0, int y_=0) : x(x_), y(y_) {
        }
 
        // Other automatically defined methods (assignment, copy constructor, destructor) are fine
        }
 
        // Other automatically defined methods (assignment, copy constructor, destructor) are fine
index 0b4c2f58de2046a4a95d06e9769ff79cae2f187d..32aea8a0c7f59ce6b7f7873d3d47593e44c9e060 100644 (file)
@@ -39,12 +39,14 @@ protected:
                return ret;
        }
        static bool IncludesVar(const char *value, const char *key);
                return ret;
        }
        static bool IncludesVar(const char *value, const char *key);
+
 public:
        PropSet *superPS;
        PropSet();
        ~PropSet();
        void Set(const char *key, const char *val, int lenKey=-1, int lenVal=-1);
        void Set(const char *keyVal);
 public:
        PropSet *superPS;
        PropSet();
        ~PropSet();
        void Set(const char *key, const char *val, int lenKey=-1, int lenVal=-1);
        void Set(const char *keyVal);
+       void Unset(const char *key, int lenKey=-1);
        void SetMultiple(const char *s);
        SString Get(const char *key);
        SString GetExpanded(const char *key);
        void SetMultiple(const char *s);
        SString Get(const char *key);
        SString GetExpanded(const char *key);
@@ -85,9 +87,9 @@ public:
        char *Allocate(int size);
        void SetFromAllocated();
        bool InList(const char *s);
        char *Allocate(int size);
        void SetFromAllocated();
        bool InList(const char *s);
-       const char *GetNearestWord(const char *wordStart, int searchLen = -1,
+       const char *GetNearestWord(const char *wordStart, int searchLen,
                bool ignoreCase = false, SString wordCharacters="", int wordIndex = -1);
                bool ignoreCase = false, SString wordCharacters="", int wordIndex = -1);
-       char *GetNearestWords(const char *wordStart, int searchLen=-1,
+       char *GetNearestWords(const char *wordStart, int searchLen,
                bool ignoreCase=false, char otherSeparator='\0', bool exactLen=false);
 };
 
                bool ignoreCase=false, char otherSeparator='\0', bool exactLen=false);
 };
 
index 5c8307a59551bbbc805a5d6142a57ee9d6abf81f..ce50a7fab5fed63a4140a473e85a4ee23f01af68 100644 (file)
@@ -77,6 +77,8 @@
 #define SCLEX_AU3 60
 #define SCLEX_APDL 61
 #define SCLEX_BASH 62
 #define SCLEX_AU3 60
 #define SCLEX_APDL 61
 #define SCLEX_BASH 62
+#define SCLEX_ASN1 63
+#define SCLEX_VHDL 64
 #define SCLEX_AUTOMATIC 1000
 #define SCE_P_DEFAULT 0
 #define SCE_P_COMMENTLINE 1
 #define SCLEX_AUTOMATIC 1000
 #define SCE_P_DEFAULT 0
 #define SCE_P_COMMENTLINE 1
 #define SCE_ERR_IFORT 17
 #define SCE_ERR_ABSF 18
 #define SCE_ERR_TIDY 19
 #define SCE_ERR_IFORT 17
 #define SCE_ERR_ABSF 18
 #define SCE_ERR_TIDY 19
+#define SCE_ERR_JAVA_STACK 20
 #define SCE_BAT_DEFAULT 0
 #define SCE_BAT_COMMENT 1
 #define SCE_BAT_WORD 2
 #define SCE_BAT_DEFAULT 0
 #define SCE_BAT_COMMENT 1
 #define SCE_BAT_WORD 2
 #define SCE_CSS_DIRECTIVE 12
 #define SCE_CSS_DOUBLESTRING 13
 #define SCE_CSS_SINGLESTRING 14
 #define SCE_CSS_DIRECTIVE 12
 #define SCE_CSS_DOUBLESTRING 13
 #define SCE_CSS_SINGLESTRING 14
+#define SCE_CSS_IDENTIFIER2 15
 #define SCE_POV_DEFAULT 0
 #define SCE_POV_COMMENT 1
 #define SCE_POV_COMMENTLINE 2
 #define SCE_POV_DEFAULT 0
 #define SCE_POV_COMMENT 1
 #define SCE_POV_COMMENTLINE 2
 #define SCE_AU3_VARIABLE 9
 #define SCE_AU3_SENT 10
 #define SCE_AU3_PREPROCESSOR 11
 #define SCE_AU3_VARIABLE 9
 #define SCE_AU3_SENT 10
 #define SCE_AU3_PREPROCESSOR 11
+#define SCE_AU3_SPECIAL 12
 #define SCE_APDL_DEFAULT 0
 #define SCE_APDL_COMMENT 1
 #define SCE_APDL_COMMENTBLOCK 2
 #define SCE_APDL_NUMBER 3
 #define SCE_APDL_STRING 4
 #define SCE_APDL_DEFAULT 0
 #define SCE_APDL_COMMENT 1
 #define SCE_APDL_COMMENTBLOCK 2
 #define SCE_APDL_NUMBER 3
 #define SCE_APDL_STRING 4
-#define SCE_APDL_WORD 5
-#define SCE_APDL_COMMAND 6
+#define SCE_APDL_OPERATOR 5
+#define SCE_APDL_WORD 6
 #define SCE_APDL_PROCESSOR 7
 #define SCE_APDL_PROCESSOR 7
-#define SCE_APDL_FUNCTION 8
+#define SCE_APDL_COMMAND 8
+#define SCE_APDL_SLASHCOMMAND 9
+#define SCE_APDL_STARCOMMAND 10
+#define SCE_APDL_ARGUMENT 11
+#define SCE_APDL_FUNCTION 12
 #define SCE_SH_DEFAULT 0
 #define SCE_SH_ERROR 1
 #define SCE_SH_COMMENTLINE 2
 #define SCE_SH_DEFAULT 0
 #define SCE_SH_ERROR 1
 #define SCE_SH_COMMENTLINE 2
 #define SCE_SH_BACKTICKS 11
 #define SCE_SH_HERE_DELIM 12
 #define SCE_SH_HERE_Q 13
 #define SCE_SH_BACKTICKS 11
 #define SCE_SH_HERE_DELIM 12
 #define SCE_SH_HERE_Q 13
+#define SCE_ASN1_DEFAULT 0
+#define SCE_ASN1_COMMENT 1
+#define SCE_ASN1_IDENTIFIER 2
+#define SCE_ASN1_STRING 3
+#define SCE_ASN1_OID 4
+#define SCE_ASN1_SCALAR 5
+#define SCE_ASN1_KEYWORD 6
+#define SCE_ASN1_ATTRIBUTE 7
+#define SCE_ASN1_DESCRIPTOR 8
+#define SCE_ASN1_TYPE 9
+#define SCE_ASN1_OPERATOR 10
+#define SCE_VHDL_DEFAULT 0
+#define SCE_VHDL_COMMENT 1
+#define SCE_VHDL_COMMENTLINEBANG 2
+#define SCE_VHDL_NUMBER 3
+#define SCE_VHDL_STRING 4
+#define SCE_VHDL_OPERATOR 5
+#define SCE_VHDL_IDENTIFIER 6
+#define SCE_VHDL_STRINGEOL 7
+#define SCE_VHDL_KEYWORD 8
+#define SCE_VHDL_STDOPERATOR 9
+#define SCE_VHDL_ATTRIBUTE 10
+#define SCE_VHDL_STDFUNCTION 11
+#define SCE_VHDL_STDPACKAGE 12
+#define SCE_VHDL_STDTYPE 13
+#define SCE_VHDL_USERWORD 14
 //--Autogenerated -- end of section automatically generated from Scintilla.iface
 
 #endif
 //--Autogenerated -- end of section automatically generated from Scintilla.iface
 
 #endif
index 1a4e4887228a2be9a0b17b771d3746e7e6cf7dd6..f20f0de22dec345a0545f6bc95a0958a3b545bc4 100644 (file)
@@ -583,6 +583,10 @@ typedef sptr_t (*SciFnDirect)(sptr_t ptr, unsigned int iMessage, uptr_t wParam,
 #define SCI_SETCHARSDEFAULT 2444
 #define SCI_AUTOCGETCURRENT 2445
 #define SCI_ALLOCATE 2446
 #define SCI_SETCHARSDEFAULT 2444
 #define SCI_AUTOCGETCURRENT 2445
 #define SCI_ALLOCATE 2446
+#define SCI_TARGETASUTF8 2447
+#define SCI_SETLENGTHFORENCODE 2448
+#define SCI_ENCODEDFROMUTF8 2449
+#define SCI_FINDCOLUMN 2456
 #define SCI_STARTRECORD 3001
 #define SCI_STOPRECORD 3002
 #define SCI_SETLEXER 4001
 #define SCI_STARTRECORD 3001
 #define SCI_STOPRECORD 3002
 #define SCI_SETLEXER 4001
index fef371328ce7b64432bec109d8ee0f8724968cce..5be763f258d78f748efb24c8dc1469a6ac43e3be 100644 (file)
@@ -1583,6 +1583,23 @@ fun int AutoCGetCurrent=2445(,)
 # Enlarge the document to a particular size of text bytes.
 fun void Allocate=2446(int bytes,)
 
 # Enlarge the document to a particular size of text bytes.
 fun void Allocate=2446(int bytes,)
 
+# Returns the target converted to UTF8.
+# Return the length in bytes.
+fun int TargetAsUTF8=2447(, stringresult s)
+
+# Set the length of the utf8 argument for calling EncodedFromUTF8.
+# Set to 0 and the string will be measured to the first nul.
+fun void SetLengthForEncode=2448(int bytes,)
+
+# Translates a UTF8 string into the document encoding.
+# Return the length of the result in bytes.
+# On error return 0.
+fun int EncodedFromUTF8=2449(string utf8, stringresult encoded)
+
+# Find the position of a column on a line taking into account tabs and 
+# multi-byte characters. If beyond end of line, return line end position.
+fun int FindColumn=2456(int line, int column)
+
 # Start notifying the container of all key presses and commands.
 fun void StartRecord=3001(,)
 
 # Start notifying the container of all key presses and commands.
 fun void StartRecord=3001(,)
 
@@ -1733,6 +1750,8 @@ val SCLEX_SPECMAN=59
 val SCLEX_AU3=60
 val SCLEX_APDL=61
 val SCLEX_BASH=62
 val SCLEX_AU3=60
 val SCLEX_APDL=61
 val SCLEX_BASH=62
+val SCLEX_ASN1=63
+val SCLEX_VHDL=64
 
 # When a lexer specifies its language as SCLEX_AUTOMATIC it receives a
 # value assigned in sequence from SCLEX_AUTOMATIC+1.
 
 # When a lexer specifies its language as SCLEX_AUTOMATIC it receives a
 # value assigned in sequence from SCLEX_AUTOMATIC+1.
@@ -2017,6 +2036,7 @@ val SCE_ERR_IFC=16
 val SCE_ERR_IFORT=17
 val SCE_ERR_ABSF=18
 val SCE_ERR_TIDY=19
 val SCE_ERR_IFORT=17
 val SCE_ERR_ABSF=18
 val SCE_ERR_TIDY=19
+val SCE_ERR_JAVA_STACK=20
 # Lexical states for SCLEX_BATCH
 lex Batch=SCLEX_BATCH SCE_BAT_
 val SCE_BAT_DEFAULT=0
 # Lexical states for SCLEX_BATCH
 lex Batch=SCLEX_BATCH SCE_BAT_
 val SCE_BAT_DEFAULT=0
@@ -2232,6 +2252,7 @@ val SCE_CSS_IMPORTANT=11
 val SCE_CSS_DIRECTIVE=12
 val SCE_CSS_DOUBLESTRING=13
 val SCE_CSS_SINGLESTRING=14
 val SCE_CSS_DIRECTIVE=12
 val SCE_CSS_DOUBLESTRING=13
 val SCE_CSS_SINGLESTRING=14
+val SCE_CSS_IDENTIFIER2=15
 # Lexical states for SCLEX_POV
 lex POV=SCLEX_POV SCE_POV_
 val SCE_POV_DEFAULT=0
 # Lexical states for SCLEX_POV
 lex POV=SCLEX_POV SCE_POV_
 val SCE_POV_DEFAULT=0
@@ -2496,6 +2517,7 @@ val SCE_AU3_OPERATOR=8
 val SCE_AU3_VARIABLE=9
 val SCE_AU3_SENT=10
 val SCE_AU3_PREPROCESSOR=11
 val SCE_AU3_VARIABLE=9
 val SCE_AU3_SENT=10
 val SCE_AU3_PREPROCESSOR=11
+val SCE_AU3_SPECIAL=12
 # Lexical states for SCLEX_APDL
 lex APDL=SCLEX_APDL SCE_APDL_
 val SCE_APDL_DEFAULT=0
 # Lexical states for SCLEX_APDL
 lex APDL=SCLEX_APDL SCE_APDL_
 val SCE_APDL_DEFAULT=0
@@ -2503,10 +2525,14 @@ val SCE_APDL_COMMENT=1
 val SCE_APDL_COMMENTBLOCK=2
 val SCE_APDL_NUMBER=3
 val SCE_APDL_STRING=4
 val SCE_APDL_COMMENTBLOCK=2
 val SCE_APDL_NUMBER=3
 val SCE_APDL_STRING=4
-val SCE_APDL_WORD=5
-val SCE_APDL_COMMAND=6
+val SCE_APDL_OPERATOR=5
+val SCE_APDL_WORD=6
 val SCE_APDL_PROCESSOR=7
 val SCE_APDL_PROCESSOR=7
-val SCE_APDL_FUNCTION=8
+val SCE_APDL_COMMAND=8
+val SCE_APDL_SLASHCOMMAND=9
+val SCE_APDL_STARCOMMAND=10
+val SCE_APDL_ARGUMENT=11
+val SCE_APDL_FUNCTION=12
 # Lexical states for SCLEX_BASH
 lex Bash=SCLEX_BASH SCE_SH_
 val SCE_SH_DEFAULT=0
 # Lexical states for SCLEX_BASH
 lex Bash=SCLEX_BASH SCE_SH_
 val SCE_SH_DEFAULT=0
@@ -2523,6 +2549,37 @@ val SCE_SH_PARAM=10
 val SCE_SH_BACKTICKS=11
 val SCE_SH_HERE_DELIM=12
 val SCE_SH_HERE_Q=13
 val SCE_SH_BACKTICKS=11
 val SCE_SH_HERE_DELIM=12
 val SCE_SH_HERE_Q=13
+# Lexical states for SCLEX_ASN1
+lex Asn1=SCLEX_ASN1 SCE_ASN1_
+val SCE_ASN1_DEFAULT=0
+val SCE_ASN1_COMMENT=1
+val SCE_ASN1_IDENTIFIER=2
+val SCE_ASN1_STRING=3
+val SCE_ASN1_OID=4
+val SCE_ASN1_SCALAR=5
+val SCE_ASN1_KEYWORD=6
+val SCE_ASN1_ATTRIBUTE=7
+val SCE_ASN1_DESCRIPTOR=8
+val SCE_ASN1_TYPE=9
+val SCE_ASN1_OPERATOR=10
+# Lexical states for SCLEX_VHDL
+lex VHDL=SCLEX_VHDL SCE_VHDL_
+val SCE_VHDL_DEFAULT=0
+val SCE_VHDL_COMMENT=1
+val SCE_VHDL_COMMENTLINEBANG=2
+val SCE_VHDL_NUMBER=3
+val SCE_VHDL_STRING=4
+val SCE_VHDL_OPERATOR=5
+val SCE_VHDL_IDENTIFIER=6
+val SCE_VHDL_STRINGEOL=7
+val SCE_VHDL_KEYWORD=8
+val SCE_VHDL_STDOPERATOR=9
+val SCE_VHDL_ATTRIBUTE=10
+val SCE_VHDL_STDFUNCTION=11
+val SCE_VHDL_STDPACKAGE=12
+val SCE_VHDL_STDTYPE=13
+val SCE_VHDL_USERWORD=14
+
 # Events
 
 evt void StyleNeeded=2000(int position)
 # Events
 
 evt void StyleNeeded=2000(int position)
index 93e888d0e6b9f77f7a9d202d8130e806f074df20..003284c12df5f14e8ef85a4669f8d50c2f7b71f7 100644 (file)
@@ -214,7 +214,7 @@ void CallTip::MouseClick(Point pt) {
 
 PRectangle CallTip::CallTipStart(int pos, Point pt, const char *defn,
                                  const char *faceName, int size,
 
 PRectangle CallTip::CallTipStart(int pos, Point pt, const char *defn,
                                  const char *faceName, int size,
-                                 int codePage_, Window &wParent) {
+                                 int codePage_, int characterSet, Window &wParent) {
        clickPlace = 0;
        if (val)
                delete []val;
        clickPlace = 0;
        if (val)
                delete []val;
@@ -234,7 +234,7 @@ PRectangle CallTip::CallTipStart(int pos, Point pt, const char *defn,
        inCallTipMode = true;
        posStartCallTip = pos;
        int deviceHeight = surfaceMeasure->DeviceHeightFont(size);
        inCallTipMode = true;
        posStartCallTip = pos;
        int deviceHeight = surfaceMeasure->DeviceHeightFont(size);
-       font.Create(faceName, SC_CHARSET_DEFAULT, deviceHeight, false, false);
+       font.Create(faceName, characterSet, deviceHeight, false, false);
        // Look for multiple lines in the text
        // Only support \n here - simply means container must avoid \r!
        int numLines = 1;
        // Look for multiple lines in the text
        // Only support \n here - simply means container must avoid \r!
        int numLines = 1;
index ffaedb0771b746a40b1f4ac647b6adb26d993607..feff7ea0b1ef4355e9a65efdd6f62e538a85dfd4 100644 (file)
@@ -52,7 +52,8 @@ public:
 
        /// Setup the calltip and return a rectangle of the area required.
        PRectangle CallTipStart(int pos, Point pt, const char *defn,
 
        /// Setup the calltip and return a rectangle of the area required.
        PRectangle CallTipStart(int pos, Point pt, const char *defn,
-               const char *faceName, int size, int codePage_, Window &wParent);
+               const char *faceName, int size, int codePage_, 
+               int characterSet, Window &wParent);
 
        void CallTipCancel();
 
 
        void CallTipCancel();
 
index 27e62ac61c1aedbd5ea11b4e4affbe8a7862e196..8183e4d8d3ca9fffc41ddbc983c85cb1b8557146 100644 (file)
@@ -96,17 +96,20 @@ void MarkerHandleSet::RemoveHandle(int handle) {
        }
 }
 
        }
 }
 
-void MarkerHandleSet::RemoveNumber(int markerNum) {
+bool MarkerHandleSet::RemoveNumber(int markerNum) {
+       bool performedDeletion = false;
        MarkerHandleNumber **pmhn = &root;
        while (*pmhn) {
                MarkerHandleNumber *mhn = *pmhn;
                if (mhn->number == markerNum) {
                        *pmhn = mhn->next;
                        delete mhn;
        MarkerHandleNumber **pmhn = &root;
        while (*pmhn) {
                MarkerHandleNumber *mhn = *pmhn;
                if (mhn->number == markerNum) {
                        *pmhn = mhn->next;
                        delete mhn;
+                       performedDeletion = true;
                } else {
                        pmhn = &((*pmhn)->next);
                }
        }
                } else {
                        pmhn = &((*pmhn)->next);
                }
        }
+       return performedDeletion;
 }
 
 void MarkerHandleSet::CombineWith(MarkerHandleSet *other) {
 }
 
 void MarkerHandleSet::CombineWith(MarkerHandleSet *other) {
@@ -306,13 +309,18 @@ void LineVector::MergeMarkers(int pos) {
        }
 }
 
        }
 }
 
-void LineVector::DeleteMark(int line, int markerNum) {
+void LineVector::DeleteMark(int line, int markerNum, bool all) {
        if (linesData[line].handleSet) {
                if (markerNum == -1) {
                        delete linesData[line].handleSet;
                        linesData[line].handleSet = 0;
                } else {
        if (linesData[line].handleSet) {
                if (markerNum == -1) {
                        delete linesData[line].handleSet;
                        linesData[line].handleSet = 0;
                } else {
-                       linesData[line].handleSet->RemoveNumber(markerNum);
+                       bool performedDeletion = 
+                               linesData[line].handleSet->RemoveNumber(markerNum);
+                       while (all && performedDeletion) {
+                               performedDeletion = 
+                                       linesData[line].handleSet->RemoveNumber(markerNum);
+                       }
                        if (linesData[line].handleSet->Length() == 0) {
                                delete linesData[line].handleSet;
                                linesData[line].handleSet = 0;
                        if (linesData[line].handleSet->Length() == 0) {
                                delete linesData[line].handleSet;
                                linesData[line].handleSet = 0;
@@ -442,6 +450,9 @@ void UndoHistory::AppendAction(actionType at, int position, char *data, int leng
        //Platform::DebugPrintf("%% %d action %d %d %d\n", at, position, lengthData, currentAction);
        //Platform::DebugPrintf("^ %d action %d %d\n", actions[currentAction - 1].at,
        //      actions[currentAction - 1].position, actions[currentAction - 1].lenData);
        //Platform::DebugPrintf("%% %d action %d %d %d\n", at, position, lengthData, currentAction);
        //Platform::DebugPrintf("^ %d action %d %d\n", actions[currentAction - 1].at,
        //      actions[currentAction - 1].position, actions[currentAction - 1].lenData);
+       if (currentAction < savePoint) {
+               savePoint = -1;
+       }
        if (currentAction >= 1) {
                if (0 == undoSequenceDepth) {
                        // Top level actions may not always be coalesced
        if (currentAction >= 1) {
                if (0 == undoSequenceDepth) {
                        // Top level actions may not always be coalesced
@@ -833,7 +844,7 @@ int CellBuffer::AddMark(int line, int markerNum) {
 
 void CellBuffer::DeleteMark(int line, int markerNum) {
        if ((line >= 0) && (line < lv.lines)) {
 
 void CellBuffer::DeleteMark(int line, int markerNum) {
        if ((line >= 0) && (line < lv.lines)) {
-               lv.DeleteMark(line, markerNum);
+               lv.DeleteMark(line, markerNum, false);
        }
 }
 
        }
 }
 
@@ -849,7 +860,7 @@ int CellBuffer::GetMark(int line) {
 
 void CellBuffer::DeleteAllMarks(int markerNum) {
        for (int line = 0; line < lv.lines; line++) {
 
 void CellBuffer::DeleteAllMarks(int markerNum) {
        for (int line = 0; line < lv.lines; line++) {
-               lv.DeleteMark(line, markerNum);
+               lv.DeleteMark(line, markerNum, true);
        }
 }
 
        }
 }
 
index bf4a102f2268ea418e1d6199ca260d6a0a3d382a..b16eef5e51a745f92ed3ae10d5098fd9b0c2818c 100644 (file)
@@ -33,7 +33,7 @@ public:
        bool Contains(int handle);
        bool InsertHandle(int handle, int markerNum);
        void RemoveHandle(int handle);
        bool Contains(int handle);
        bool InsertHandle(int handle, int markerNum);
        void RemoveHandle(int handle);
-       void RemoveNumber(int markerNum);
+       bool RemoveNumber(int markerNum);
        void CombineWith(MarkerHandleSet *other);
 };
 
        void CombineWith(MarkerHandleSet *other);
 };
 
@@ -77,7 +77,7 @@ public:
 
        int AddMark(int line, int marker);
        void MergeMarkers(int pos);
 
        int AddMark(int line, int marker);
        void MergeMarkers(int pos);
-       void DeleteMark(int line, int markerNum);
+       void DeleteMark(int line, int markerNum, bool all);
        void DeleteMarkFromHandle(int markerHandle);
        int LineFromHandle(int markerHandle);
 };
        void DeleteMarkFromHandle(int markerHandle);
        int LineFromHandle(int markerHandle);
 };
index 97abd6254600de6e2a835c2c1ab93344b116c565..76fa456ccb613e44366b2205081e91d4bac74150 100644 (file)
@@ -653,7 +653,7 @@ int Document::FindColumn(int line, int column) {
        int position = LineStart(line);
        int columnCurrent = 0;
        if ((line >= 0) && (line < LinesTotal())) {
        int position = LineStart(line);
        int columnCurrent = 0;
        if ((line >= 0) && (line < LinesTotal())) {
-               while (columnCurrent < column) {
+               while ((columnCurrent < column) && (position < Length())) {
                        char ch = cb.CharAt(position);
                        if (ch == '\t') {
                                columnCurrent = NextTab(columnCurrent, tabInChars);
                        char ch = cb.CharAt(position);
                        if (ch == '\t') {
                                columnCurrent = NextTab(columnCurrent, tabInChars);
@@ -682,43 +682,73 @@ void Document::Indent(bool forwards, int lineBottom, int lineTop) {
        }
 }
 
        }
 }
 
+// Convert line endings for a piece of text to a particular mode.
+// Stop at len or when a NUL is found.
+// Caller must delete the returned pointer.
+char *Document::TransformLineEnds(int *pLenOut, const char *s, size_t len, int eolMode) {
+       char *dest = new char[2 * len + 1];
+       const char *sptr = s;
+       char *dptr = dest;
+       for (size_t i = 0; (i < len) && (*sptr != '\0'); i++) {
+               if (*sptr == '\n' || *sptr == '\r') {
+                       if (eolMode == SC_EOL_CR) {
+                               *dptr++ = '\r';
+                       } else if (eolMode == SC_EOL_LF) {
+                               *dptr++ = '\n';
+                       } else { // eolMode == SC_EOL_CRLF
+                               *dptr++ = '\r';
+                               *dptr++ = '\n';
+                       }
+                       if ((*sptr == '\r') && (i+1 < len) && (*(sptr+1) == '\n')) {
+                               i++;
+                               sptr++;
+                       }
+                       sptr++;
+               } else {
+                       *dptr++ = *sptr++;
+               }
+       }
+       *dptr++ = '\0';
+       *pLenOut = (dptr - dest) - 1;
+       return dest;
+}
+
 void Document::ConvertLineEnds(int eolModeSet) {
        BeginUndoAction();
 void Document::ConvertLineEnds(int eolModeSet) {
        BeginUndoAction();
+
        for (int pos = 0; pos < Length(); pos++) {
                if (cb.CharAt(pos) == '\r') {
        for (int pos = 0; pos < Length(); pos++) {
                if (cb.CharAt(pos) == '\r') {
-                       if (cb.CharAt(pos + 1) == '\n') {
-                               if (eolModeSet != SC_EOL_CRLF) {
-                                       DeleteChars(pos, 2);
-                                       if (eolModeSet == SC_EOL_CR)
-                                               InsertString(pos, "\r", 1);
-                                       else
-                                               InsertString(pos, "\n", 1);
+                       if (cb.CharAt(pos + 1) == '\n') { 
+                               // CRLF
+                               if (eolModeSet == SC_EOL_CR) {
+                                       DeleteChars(pos + 1, 1); // Delete the LF
+                               } else if (eolModeSet == SC_EOL_LF) {
+                                       DeleteChars(pos, 1); // Delete the CR
                                } else {
                                        pos++;
                                }
                                } else {
                                        pos++;
                                }
-                       } else {
-                               if (eolModeSet != SC_EOL_CR) {
-                                       DeleteChars(pos, 1);
-                                       if (eolModeSet == SC_EOL_CRLF) {
-                                               InsertString(pos, "\r\n", 2);
-                                               pos++;
-                                       } else {
-                                               InsertString(pos, "\n", 1);
-                                       }
-                               }
-                       }
-               } else if (cb.CharAt(pos) == '\n') {
-                       if (eolModeSet != SC_EOL_LF) {
-                               DeleteChars(pos, 1);
+                       } else { 
+                               // CR
                                if (eolModeSet == SC_EOL_CRLF) {
                                if (eolModeSet == SC_EOL_CRLF) {
-                                       InsertString(pos, "\r\n", 2);
+                                       InsertString(pos + 1, "\n", 1); // Insert LF
                                        pos++;
                                        pos++;
-                               } else {
-                                       InsertString(pos, "\r", 1);
+                               } else if (eolModeSet == SC_EOL_LF) {
+                                       InsertString(pos, "\n", 1); // Insert LF
+                                       DeleteChars(pos + 1, 1); // Delete CR
                                }
                        }
                                }
                        }
+               } else if (cb.CharAt(pos) == '\n') {
+                       // LF
+                       if (eolModeSet == SC_EOL_CRLF) {
+                               InsertString(pos, "\r", 1); // Insert CR
+                               pos++;
+                       } else if (eolModeSet == SC_EOL_CR) {
+                               InsertString(pos, "\r", 1); // Insert CR
+                               DeleteChars(pos + 1, 1); // Delete LF
+                       }
                }
        }
                }
        }
+
        EndUndoAction();
 }
 
        EndUndoAction();
 }
 
@@ -854,7 +884,7 @@ bool Document::IsWordStartAt(int pos) {
  * the next character is of a different character class.
  */
 bool Document::IsWordEndAt(int pos) {
  * the next character is of a different character class.
  */
 bool Document::IsWordEndAt(int pos) {
-       if (pos < Length() - 1) {
+       if (pos < Length()) {
                charClassification ccPrev = WordCharClass(CharAt(pos-1));
                return (ccPrev == ccWord || ccPrev == ccPunctuation) &&
                        (ccPrev != WordCharClass(CharAt(pos)));
                charClassification ccPrev = WordCharClass(CharAt(pos-1));
                return (ccPrev == ccWord || ccPrev == ccPunctuation) &&
                        (ccPrev != WordCharClass(CharAt(pos)));
index 54ecadb004535e261d6cabeaca8ca5d024ab6c0a..ce27ffc47611e638e8365ef78285abd5e0d05df8 100644 (file)
@@ -156,6 +156,7 @@ public:
        int GetColumn(int position);
        int FindColumn(int line, int column);
        void Indent(bool forwards, int lineBottom, int lineTop);
        int GetColumn(int position);
        int FindColumn(int line, int column);
        void Indent(bool forwards, int lineBottom, int lineTop);
+       static char *TransformLineEnds(int *pLenOut, const char *s, size_t len, int eolMode);
        void ConvertLineEnds(int eolModeSet);
        void SetReadOnly(bool set) { cb.SetReadOnly(set); }
        bool IsReadOnly() { return cb.IsReadOnly(); }
        void ConvertLineEnds(int eolModeSet);
        void SetReadOnly(bool set) { cb.SetReadOnly(set); }
        bool IsReadOnly() { return cb.IsReadOnly(); }
index 591125dda678210237b9f13107977f3f8c6362f1..399e6597645e2133d345499dc1455ee099f5deda 100644 (file)
@@ -361,6 +361,8 @@ Editor::Editor() {
        topLine = 0;
        posTopLine = 0;
 
        topLine = 0;
        posTopLine = 0;
 
+       lengthForEncode = 0;
+
        needUpdateUI = true;
        braces[0] = invalidPosition;
        braces[1] = invalidPosition;
        needUpdateUI = true;
        braces[0] = invalidPosition;
        braces[1] = invalidPosition;
@@ -670,7 +672,7 @@ int Editor::LineFromLocation(Point pt) {
 
 void Editor::SetTopLine(int topLineNew) {
        topLine = topLineNew;
 
 void Editor::SetTopLine(int topLineNew) {
        topLine = topLineNew;
-       posTopLine = pdoc->LineStart(topLine);
+       posTopLine = pdoc->LineStart(cs.DocFromDisplay(topLine));
 }
 
 static inline bool IsEOLChar(char ch) {
 }
 
 static inline bool IsEOLChar(char ch) {
@@ -1392,6 +1394,7 @@ void Editor::EnsureCaretVisible(bool useMargin, bool vert, bool horiz) {
                        Redraw();
                }
        }
                        Redraw();
                }
        }
+       UpdateSystemCaret();
 }
 
 void Editor::ShowCaretAtCurrentPosition() {
 }
 
 void Editor::ShowCaretAtCurrentPosition() {
@@ -1416,6 +1419,10 @@ void Editor::InvalidateCaret() {
                InvalidateRange(posDrag, posDrag + 1);
        else
                InvalidateRange(currentPos, currentPos + 1);
                InvalidateRange(posDrag, posDrag + 1);
        else
                InvalidateRange(currentPos, currentPos + 1);
+       UpdateSystemCaret();
+}
+
+void Editor::UpdateSystemCaret() {
 }
 
 void Editor::NeedWrapping(int docLineStartWrapping, int docLineEndWrapping) {
 }
 
 void Editor::NeedWrapping(int docLineStartWrapping, int docLineEndWrapping) {
@@ -2206,8 +2213,9 @@ void Editor::DrawLine(Surface *surface, ViewStyle &vsDraw, int line, int lineVis
        // See if something overrides the line background color:  Either if caret is on the line
        // and background color is set for that, or if a marker is defined that forces its background
        // color onto the line, or if a marker is defined but has no selection margin in which to
        // See if something overrides the line background color:  Either if caret is on the line
        // and background color is set for that, or if a marker is defined that forces its background
        // color onto the line, or if a marker is defined but has no selection margin in which to
-       // display itself.  These are checked in order with the earlier taking precedence.  When
-       // multiple markers cause background override, the color for the highest numbered one is used.
+       // display itself (as long as it's not an SC_MARK_EMPTY marker).  These are checked in order
+       // with the earlier taking precedence.  When multiple markers cause background override,
+       // the color for the highest numbered one is used.
        bool overrideBackground = false;
        ColourAllocated background;
        if (caret.active && vsDraw.showCaretLineBackground && ll->containsCaret) {
        bool overrideBackground = false;
        ColourAllocated background;
        if (caret.active && vsDraw.showCaretLineBackground && ll->containsCaret) {
@@ -2228,9 +2236,9 @@ void Editor::DrawLine(Surface *surface, ViewStyle &vsDraw, int line, int lineVis
                if (vsDraw.maskInLine) {
                        int marks = pdoc->GetMark(line) & vsDraw.maskInLine;
                        if (marks) {
                if (vsDraw.maskInLine) {
                        int marks = pdoc->GetMark(line) & vsDraw.maskInLine;
                        if (marks) {
-                               overrideBackground = true;
                                for (int markBit = 0; (markBit < 32) && marks; markBit++) {
                                for (int markBit = 0; (markBit < 32) && marks; markBit++) {
-                                       if (marks & 1) {
+                                       if ((marks & 1) && (vsDraw.markers[markBit].markType != SC_MARK_EMPTY)) {
+                                               overrideBackground = true;
                                                background = vsDraw.markers[markBit].back.allocated;
                                        }
                                        marks >>= 1;
                                                background = vsDraw.markers[markBit].back.allocated;
                                        }
                                        marks >>= 1;
@@ -2523,10 +2531,11 @@ void Editor::DrawLine(Surface *surface, ViewStyle &vsDraw, int line, int lineVis
                indStart[indica] = 0;
 
        for (int indicPos = lineStart; indicPos <= lineEnd; indicPos++) {
                indStart[indica] = 0;
 
        for (int indicPos = lineStart; indicPos <= lineEnd; indicPos++) {
-               if ((indicPos == lineEnd) || (ll->indicators[indicPos] != ll->indicators[indicPos + 1])) {
+               if ((indicPos == lineStart) || (indicPos == lineEnd) ||
+                       (ll->indicators[indicPos] != ll->indicators[indicPos + 1])) {
                        int mask = 1 << pdoc->stylingBits;
                        for (int indicnum = 0; mask < 0x100; indicnum++) {
                        int mask = 1 << pdoc->stylingBits;
                        for (int indicnum = 0; mask < 0x100; indicnum++) {
-                               if ((indicPos == lineEnd)) {
+                               if ((indicPos == lineStart) || (indicPos == lineEnd)) {
                                        indStart[indicnum] = ll->positions[indicPos];
                                } else if ((ll->indicators[indicPos + 1] & mask) && !(ll->indicators[indicPos] & mask)) {
                                        indStart[indicnum] = ll->positions[indicPos + 1];
                                        indStart[indicnum] = ll->positions[indicPos];
                                } else if ((ll->indicators[indicPos + 1] & mask) && !(ll->indicators[indicPos] & mask)) {
                                        indStart[indicnum] = ll->positions[indicPos + 1];
@@ -3283,7 +3292,6 @@ void Editor::ClearAll() {
        currentPos = 0;
        SetTopLine(0);
        SetVerticalScrollPos();
        currentPos = 0;
        SetTopLine(0);
        SetVerticalScrollPos();
-        InvalidateStyleRedraw();
 }
 
 void Editor::ClearDocumentStyle() {
 }
 
 void Editor::ClearDocumentStyle() {
@@ -4154,16 +4162,20 @@ int Editor::KeyCommand(unsigned int iMessage) {
                break;
        case SCI_LINEENDWRAP: {
                        int endPos = MovePositionSoVisible(StartEndDisplayLine(currentPos, false), 1);
                break;
        case SCI_LINEENDWRAP: {
                        int endPos = MovePositionSoVisible(StartEndDisplayLine(currentPos, false), 1);
-                       if (currentPos >= endPos)
-                               endPos = pdoc->LineEndPosition(currentPos);
+                       int realEndPos = pdoc->LineEndPosition(currentPos);
+                       if (endPos > realEndPos      // if moved past visible EOLs
+                               || currentPos >= endPos) // if at end of display line already
+                               endPos = realEndPos;
                        MovePositionTo(endPos);
                        SetLastXChosen();
                }
                break;
        case SCI_LINEENDWRAPEXTEND: {
                        int endPos = MovePositionSoVisible(StartEndDisplayLine(currentPos, false), 1);
                        MovePositionTo(endPos);
                        SetLastXChosen();
                }
                break;
        case SCI_LINEENDWRAPEXTEND: {
                        int endPos = MovePositionSoVisible(StartEndDisplayLine(currentPos, false), 1);
-                       if (currentPos >= endPos)
-                               endPos = pdoc->LineEndPosition(currentPos);
+                       int realEndPos = pdoc->LineEndPosition(currentPos);
+                       if (endPos > realEndPos      // if moved past visible EOLs
+                               || currentPos >= endPos) // if at end of display line already
+                               endPos = realEndPos;
                        MovePositionTo(endPos, selStream);
                        SetLastXChosen();
                }
                        MovePositionTo(endPos, selStream);
                        SetLastXChosen();
                }
@@ -4929,7 +4941,7 @@ void Editor::ButtonDown(Point pt, unsigned int curTime, bool shift, bool ctrl, b
                //Platform::DebugPrintf("Double click: %d - %d\n", anchor, currentPos);
                if (doubleClick) {
                        NotifyDoubleClick(pt, shift);
                //Platform::DebugPrintf("Double click: %d - %d\n", anchor, currentPos);
                if (doubleClick) {
                        NotifyDoubleClick(pt, shift);
-                       if (PointIsHotspot(newPos))
+                       if (PositionIsHotspot(newPos))
                                NotifyHotSpotDoubleClicked(newPos, shift, ctrl, alt);
                }
        } else {        // Single click
                                NotifyHotSpotDoubleClicked(newPos, shift, ctrl, alt);
                }
        } else {        // Single click
@@ -6301,6 +6313,9 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
        case SCI_GETCOLUMN:
                return pdoc->GetColumn(wParam);
 
        case SCI_GETCOLUMN:
                return pdoc->GetColumn(wParam);
 
+       case SCI_FINDCOLUMN:
+               return pdoc->FindColumn(wParam, lParam);
+
        case SCI_SETHSCROLLBAR :
                if (horizontalScrollBarVisible != (wParam != 0)) {
                        horizontalScrollBarVisible = wParam != 0;
        case SCI_SETHSCROLLBAR :
                if (horizontalScrollBarVisible != (wParam != 0)) {
                        horizontalScrollBarVisible = wParam != 0;
@@ -6949,6 +6964,10 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
                SetSelection(currentPos, anchor);       // Ensure selection inside document
                return 0;
 
                SetSelection(currentPos, anchor);       // Ensure selection inside document
                return 0;
 
+       case SCI_SETLENGTHFORENCODE:
+               lengthForEncode = wParam;
+               return 0;
+
        case SCI_SELECTIONISRECTANGLE:
                return selType == selRectangle ? 1 : 0;
 
        case SCI_SELECTIONISRECTANGLE:
                return selType == selRectangle ? 1 : 0;
 
index b9bda04ab4678c4ec19ed761a5bdfd4f688bc436..e14cb5ed95c125891c6a4f16cea35c3365ebaa47 100644 (file)
@@ -127,7 +127,7 @@ public:
 
 /**
  * Hold a piece of text selected for copying or dragging.
 
 /**
  * Hold a piece of text selected for copying or dragging.
- * The text is expected to hold a terminating '\0'.
+ * The text is expected to hold a terminating '\0' and this is counted in len.
  */
 class SelectionText {
 public:
  */
 class SelectionText {
 public:
@@ -257,6 +257,7 @@ protected:  // ScintillaBase subclass needs access to much of Editor
        int searchFlags;
        int topLine;
        int posTopLine;
        int searchFlags;
        int topLine;
        int posTopLine;
+       int lengthForEncode;
 
        bool needUpdateUI;
        Position braces[2];
 
        bool needUpdateUI;
        Position braces[2];
@@ -368,6 +369,7 @@ protected:  // ScintillaBase subclass needs access to much of Editor
        void ShowCaretAtCurrentPosition();
        void DropCaret();
        void InvalidateCaret();
        void ShowCaretAtCurrentPosition();
        void DropCaret();
        void InvalidateCaret();
+       virtual void UpdateSystemCaret();
 
        void NeedWrapping(int docLineStartWrapping = 0, int docLineEndWrapping = 0x7ffffff);
        bool WrapLines(bool fullWrap, int priorityWrapLineStart);
 
        void NeedWrapping(int docLineStartWrapping = 0, int docLineEndWrapping = 0x7ffffff);
        bool WrapLines(bool fullWrap, int priorityWrapLineStart);
index def79f6ecdce17cfe32c1801e71064bbfb300a65..67e52ec11ad312874d7947bec42730176016b43d 100644 (file)
@@ -132,6 +132,7 @@ int Scintilla_LinkLexers() {
        LINK_LEXER(lmAda);
        LINK_LEXER(lmAPDL);
        LINK_LEXER(lmAsm);
        LINK_LEXER(lmAda);
        LINK_LEXER(lmAPDL);
        LINK_LEXER(lmAsm);
+       LINK_LEXER(lmAsn1);
        LINK_LEXER(lmAU3);
        LINK_LEXER(lmAVE);
        LINK_LEXER(lmBaan);
        LINK_LEXER(lmAU3);
        LINK_LEXER(lmAVE);
        LINK_LEXER(lmBaan);
@@ -189,6 +190,7 @@ int Scintilla_LinkLexers() {
        LINK_LEXER(lmVB);
        LINK_LEXER(lmVBScript);
        LINK_LEXER(lmVerilog);
        LINK_LEXER(lmVB);
        LINK_LEXER(lmVBScript);
        LINK_LEXER(lmVerilog);
+       LINK_LEXER(lmVHDL);
        LINK_LEXER(lmYAML);
 
 //--Autogenerated -- end of automatically generated section
        LINK_LEXER(lmYAML);
 
 //--Autogenerated -- end of automatically generated section
index b739e9a7cb562845ad58855044131c8eff494566..1cf263e5018a9eef4ba08258943ca595834583df 100644 (file)
@@ -1,3 +1,10 @@
+// Scintilla source code edit control
+/** @file LexAPDL.cxx
+ ** Lexer for APDL. Based on the lexer for Assembler by The Black Horus.
+ ** By Hadar Raz.
+ **/
+// Copyright 1998-2003 by Neil Hodgson <neilh@scintilla.org>
+// The License.txt file describes the conditions under which this software may be distributed.
 
 #include <stdlib.h>
 #include <string.h>
 
 #include <stdlib.h>
 #include <string.h>
 
 
 static inline bool IsAWordChar(const int ch) {
 
 
 static inline bool IsAWordChar(const int ch) {
-       return (ch < 0x80) && (isalnum(ch) || ch == '_');
+       return (ch < 0x80 && (isalnum(ch) || ch == '_'));
 }
 
 }
 
-static inline bool IsAWordStart(const int ch) {
-       return (ch < 0x80) && (isalnum(ch) || ch == '/' || ch == '*');
+static inline bool IsAnOperator(char ch) {
+       // '.' left out as it is used to make up numbers
+       if (ch == '*' || ch == '/' || ch == '-' || ch == '+' ||
+               ch == '(' || ch == ')' || ch == '=' || ch == '^' ||
+               ch == '[' || ch == ']' || ch == '<' || ch == '&' ||
+               ch == '>' || ch == ',' || ch == '|' || ch == '~' ||
+               ch == '$' || ch == ':' || ch == '%')
+               return true;
+       return false;
 }
 
 }
 
-inline bool IsABlank(unsigned int ch) {
-    return (ch == ' ') || (ch == 0x09) || (ch == 0x0b) ;
-}
-
-
-
-static void ColouriseAPDLDoc(unsigned int startPos, int length, int initStyle,
-                              WordList *keywordlists[], Accessor &styler)
-{
-
-    //~ FILE *fp;
-    //~ fp = fopen("myoutput.txt", "w");
-
-    WordList &commands = *keywordlists[0];
-    WordList &processors = *keywordlists[1];
-    WordList &functions = *keywordlists[2];
-
-
-    // backtrack to the beginning of the document, this may be slow for big documents.
-    initStyle = SCE_APDL_DEFAULT;
-    StyleContext sc(0, startPos+length, initStyle, styler);
-
-    // backtrack to the nearest keyword
-    //~ while ((startPos > 1) && (styler.StyleAt(startPos) != SCE_APDL_WORD)) {
-            //~ startPos--;
-    //~ }
-    //~ startPos = styler.LineStart(styler.GetLine(startPos));
-    //~ initStyle = styler.StyleAt(startPos - 1);
-    //~ StyleContext sc(startPos, endPos-startPos, initStyle, styler);
-
-    bool firstInLine = true;
-    bool atEOL;
-
-    for (; sc.More(); sc.Forward()) {
-
-        atEOL = (sc.ch == '\r' && sc.chNext == '\n') || (sc.ch == '\n');
-
-        //~ if (sc.ch == '\r') {
-            //~ fprintf(fp,"CR\t%d\t%d", atEOL, firstInLine);
-        //~ } else if (sc.ch == '\n') {
-            //~ fprintf(fp,"LF\t%d\t%d", atEOL, firstInLine);
-        //~ } else {
-            //~ fprintf(fp,"%c\t%d\t%d", sc.ch, atEOL, firstInLine);
-        //~ }
-
-        // Determine if the current state should terminate.
-        if (sc.state == SCE_APDL_COMMENT) {
-            //~ fprintf(fp,"\tCOMMENT");
-            if (atEOL) {
-                sc.SetState(SCE_APDL_DEFAULT);
-            }
-        } else if (sc.state == SCE_APDL_COMMENTBLOCK) {
-            //~ fprintf(fp,"\tCOMMENTBLOCK");
-            if (atEOL) {
-                if (sc.ch == '\r') {
-                    sc.Forward();
-                }
-                sc.ForwardSetState(SCE_APDL_DEFAULT);
-            }
-        } else if (sc.state == SCE_APDL_NUMBER) {
-            //~ fprintf(fp,"\tNUMBER");
-            if (isdigit(sc.ch)) {
-            } else if ((sc.ch == 'e' || sc.ch == 'E') && (isdigit(sc.chNext) || sc.chNext == '+' || sc.chNext == '-')) {
-            } else if (sc.ch == '.') {
-            } else if ((sc.ch == '+' || sc.ch == '-') && (sc.chPrev == 'e' || sc.chPrev == 'E')) {
-            } else {
-                sc.SetState(SCE_APDL_DEFAULT);
-            }
-        } else if (sc.state == SCE_APDL_STRING) {
-            //~ fprintf(fp,"\tSTRING");
-            if (sc.ch == '\"') {
-                //~ sc.ForwardSetState(SCE_APDL_DEFAULT);
-                sc.Forward();
-                atEOL = (sc.ch == '\r' && sc.chNext == '\n') || (sc.ch == '\n');
-                if (atEOL) {
-                    firstInLine = true;
-                }
-                sc.SetState(SCE_APDL_DEFAULT);
-            }
-        } else if (sc.state == SCE_APDL_WORD) {
-            //~ fprintf(fp,"\tWORD");
-            if (!IsAWordChar(sc.ch) || sc.ch == '%') {
-                char s[100];
-                sc.GetCurrentLowered(s, sizeof(s));
-                if (commands.InList(s) && firstInLine) {
-                    if (IsABlank(sc.ch) || sc.ch == ',' || atEOL) {
-                        sc.ChangeState(SCE_APDL_COMMAND);
-                    }
-                    if (sc.ch != '\n') {
-                        firstInLine = false;
-                    }
-                } else if (processors.InList(s)) {
-                    if (IsABlank(sc.ch) || atEOL) {
-                        sc.ChangeState(SCE_APDL_PROCESSOR);
-                        while (sc.ch != '\n') {
-                            sc.Forward();
-                        }
-                        sc.Forward();
-                    }
-                } else if (functions.InList(s)) {
-                    sc.ChangeState(SCE_APDL_FUNCTION);
-                    if (sc.ch != '\n') {
-                        firstInLine = false;
-                    }
-                } else {
-                    if (sc.ch != '\n') {
-                        firstInLine = false;
-                    }
-                }
-                sc.SetState(SCE_APDL_DEFAULT);
-            }
-        }
-
-        // Determine if a new state should be entered.
-        if (sc.state == SCE_APDL_DEFAULT) {
-            if (sc.ch == '!' && sc.chNext != '!') {
-                sc.SetState(SCE_APDL_COMMENT);
-            } else if (sc.ch == '!' && sc.chNext == '!') {
-                sc.SetState(SCE_APDL_COMMENTBLOCK);
-            } else if (IsADigit(sc.ch) && !IsAWordChar(sc.chPrev)) {
-                sc.SetState(SCE_APDL_NUMBER);
-            } else if (sc.ch == '.' && (isoperator(static_cast<char>(sc.chPrev)) ||
-               IsABlank(sc.chPrev) || sc.chPrev == '\n' || sc.chPrev == '\r')) {
-                sc.SetState(SCE_APDL_NUMBER);
-            } else if (sc.ch == '\"') {
-                sc.SetState(SCE_APDL_STRING);
-            } else if (IsAWordStart(sc.ch) && (!IsADigit(sc.chPrev))) {
-                sc.SetState(SCE_APDL_WORD);
-            }
-
-        }
-        //~ fprintf(fp,"\n");
-
-        if (atEOL) {
-            firstInLine = true;
-        }
-
-    }
-    sc.Complete();
+static void ColouriseAPDLDoc(unsigned int startPos, int length, int initStyle, WordList *keywordlists[],
+                            Accessor &styler) {
+
+       int stringStart = ' ';
+
+       WordList &processors = *keywordlists[0];
+       WordList &commands = *keywordlists[1];
+       WordList &slashcommands = *keywordlists[2];
+       WordList &starcommands = *keywordlists[3];
+       WordList &arguments = *keywordlists[4];
+       WordList &functions = *keywordlists[5];
+
+       // Do not leak onto next line
+       initStyle = SCE_APDL_DEFAULT;
+       StyleContext sc(startPos, length, initStyle, styler);
+
+       for (; sc.More(); sc.Forward()) {
+               // Determine if the current state should terminate.
+               if (sc.state == SCE_APDL_NUMBER) {
+                       if (!(IsADigit(sc.ch) || sc.ch == '.' || (sc.ch == 'e' || sc.ch == 'E') ||
+                               ((sc.ch == '+' || sc.ch == '-') && (sc.chPrev == 'e' || sc.chPrev == 'E')))) {
+                               sc.SetState(SCE_APDL_DEFAULT);
+                       }
+               } else if (sc.state == SCE_APDL_COMMENT) {
+                       if (sc.atLineEnd) {
+                               sc.SetState(SCE_APDL_DEFAULT);
+                       }
+               } else if (sc.state == SCE_APDL_COMMENTBLOCK) {
+                       if (sc.atLineEnd) {
+                               if (sc.ch == '\r') {
+                               sc.Forward();
+                               }
+                               sc.ForwardSetState(SCE_APDL_DEFAULT);
+                       }
+               } else if (sc.state == SCE_APDL_STRING) {
+                       if (sc.atLineEnd) {
+                               sc.SetState(SCE_APDL_DEFAULT);
+                       } else if ((sc.ch == '\'' && stringStart == '\'') || (sc.ch == '\"' && stringStart == '\"')) {
+                               sc.ForwardSetState(SCE_APDL_DEFAULT);
+                       }
+               } else if (sc.state == SCE_APDL_WORD) {
+                       if (!IsAWordChar(sc.ch)) {
+                               char s[100];
+                               sc.GetCurrentLowered(s, sizeof(s));
+                               if (processors.InList(s)) {
+                                       sc.ChangeState(SCE_APDL_PROCESSOR);
+                               } else if (slashcommands.InList(s)) {
+                                       sc.ChangeState(SCE_APDL_SLASHCOMMAND);
+                               } else if (starcommands.InList(s)) {
+                                       sc.ChangeState(SCE_APDL_STARCOMMAND);
+                               } else if (commands.InList(s)) {
+                                       sc.ChangeState(SCE_APDL_COMMAND);
+                               } else if (arguments.InList(s)) {
+                                       sc.ChangeState(SCE_APDL_ARGUMENT);
+                               } else if (functions.InList(s)) {
+                                       sc.ChangeState(SCE_APDL_FUNCTION);
+                               }
+                               sc.SetState(SCE_APDL_DEFAULT);
+                       }
+               } else if (sc.state == SCE_APDL_OPERATOR) {
+                       if (!IsAnOperator(static_cast<char>(sc.ch))) {
+                           sc.SetState(SCE_APDL_DEFAULT);
+                       }
+               }
+
+               // Determine if a new state should be entered.
+               if (sc.state == SCE_APDL_DEFAULT) {
+                       if (sc.ch == '!' && sc.chNext == '!') {
+                               sc.SetState(SCE_APDL_COMMENTBLOCK);
+                       } else if (sc.ch == '!') {
+                               sc.SetState(SCE_APDL_COMMENT);
+                       } else if (IsADigit(sc.ch) || (sc.ch == '.' && IsADigit(sc.chNext))) {
+                               sc.SetState(SCE_APDL_NUMBER);
+                       } else if (sc.ch == '\'' || sc.ch == '\"') {
+                               sc.SetState(SCE_APDL_STRING);
+                               stringStart = sc.ch;
+                       } else if (IsAWordChar(sc.ch) || ((sc.ch == '*' || sc.ch == '/') && !isgraph(sc.chPrev))) {
+                               sc.SetState(SCE_APDL_WORD);
+                       } else if (IsAnOperator(static_cast<char>(sc.ch))) {
+                               sc.SetState(SCE_APDL_OPERATOR);
+                       }
+               }
+       }
+       sc.Complete();
 }
 
 static const char * const apdlWordListDesc[] = {
 }
 
 static const char * const apdlWordListDesc[] = {
-    "Commands",
-    "Processors",
-    "Functions",
+    "processors",
+    "commands",
+    "slashommands",
+    "starcommands",
+    "arguments",
+    "functions",
     0
 };
 
     0
 };
 
index 8bc1f062eb473016f9a680ffe762a280c328de5a..31e4ee52d2d78be5a5ce611d5e1cd1702eca52ed 100644 (file)
 //                  Fixed "#comments_end" -> "#comments-end"  
 //                  Fixed Sendkeys in Strings when not terminated with }
 //                  Added support for Sendkey strings that have second parameter e.g. {UP 5} or {a down}
 //                  Fixed "#comments_end" -> "#comments-end"  
 //                  Fixed Sendkeys in Strings when not terminated with }
 //                  Added support for Sendkey strings that have second parameter e.g. {UP 5} or {a down}
-// April 26, 2004   Fixed # pre-processor statement inside of comment block would invalidly change the color.
+// April 26, 2004 - Fixed # pre-processor statement inside of comment block would invalidly change the color.
 //                  Added logic for #include <xyz.au3> to treat the <> as string
 //                  Added underscore to IsAOperator.
 //                  Added logic for #include <xyz.au3> to treat the <> as string
 //                  Added underscore to IsAOperator.
+// May 17, 2004   - Changed the folding logic from indent to keyword folding.
+//                  Added Folding logic for blocks of single-commentlines or commentblock.
+//                        triggered by: fold.comment=1
+//                  Added Folding logic for preprocessor blocks triggered by fold.preprocessor=1
+//                  Added Special for #region - #endregion syntax highlight and folding.
+// May 30, 2004   - Fixed issue with continuation lines on If statements.
+// June 5, 2004   - Added comma to Operators for better readability.
+//                  Added fold.compact support set with fold.compact=1
+//                  Changed folding inside of #cs-#ce. Default is no keyword folding inside comment blocks when fold.comment=1
+//                        it will now only happen when fold.comment=2.
+// 
 // Copyright for Scintilla: 1998-2001 by Neil Hodgson <neilh@scintilla.org>
 // The License.txt file describes the conditions under which this software may be distributed.
 // Scintilla source code edit control
 // Copyright for Scintilla: 1998-2001 by Neil Hodgson <neilh@scintilla.org>
 // The License.txt file describes the conditions under which this software may be distributed.
 // Scintilla source code edit control
 #include "Scintilla.h"
 #include "SciLexer.h"
 
 #include "Scintilla.h"
 #include "SciLexer.h"
 
-static bool IsAU3Comment(Accessor &styler, int pos, int len) {
-       return len>0 && styler[pos]==';';
-}
-
 static inline bool IsTypeCharacter(const int ch)
 {
     return ch == '$';
 }
 static inline bool IsAWordChar(const int ch)
 {
 static inline bool IsTypeCharacter(const int ch)
 {
     return ch == '$';
 }
 static inline bool IsAWordChar(const int ch)
 {
-    return (ch < 0x80) && (isalnum(ch) || ch == '_' || ch == '-');
+    return (ch < 0x80) && (isalnum(ch) || ch == '_');
 }
 
 static inline bool IsAWordStart(const int ch)
 }
 
 static inline bool IsAWordStart(const int ch)
@@ -57,7 +64,7 @@ static inline bool IsAOperator(char ch) {
                return false;
        if (ch == '+' || ch == '-' || ch == '*' || ch == '/' ||
            ch == '&' || ch == '^' || ch == '=' || ch == '<' || ch == '>' ||
                return false;
        if (ch == '+' || ch == '-' || ch == '*' || ch == '/' ||
            ch == '&' || ch == '^' || ch == '=' || ch == '<' || ch == '>' ||
-           ch == '(' || ch == ')' || ch == '[' || ch == ']' || ch == '_' )
+           ch == '(' || ch == ')' || ch == '[' || ch == ']' || ch == ',' )
                return true;
        return false;
 }
                return true;
        return false;
 }
@@ -111,9 +118,9 @@ static int GetSendKey(const char *szLine, char *szKey)
        // Check if the second portion is either a number or one of these keywords
        szKey[nKeyPos] = '\0';
        szSpecial[nSpecPos] = '\0';
        // Check if the second portion is either a number or one of these keywords
        szKey[nKeyPos] = '\0';
        szSpecial[nSpecPos] = '\0';
-       if (strcmp(szSpecial,"down")==0    || strcmp(szSpecial,"up")==0  ||
-               strcmp(szSpecial,"on")==0      || strcmp(szSpecial,"off")==0 || 
-               strcmp(szSpecial,"toggle")==0  || nSpecNum == 1 )
+       if (strcmp(szSpecial,"down")== 0    || strcmp(szSpecial,"up")== 0  ||
+               strcmp(szSpecial,"on")== 0      || strcmp(szSpecial,"off")== 0 || 
+               strcmp(szSpecial,"toggle")== 0  || nSpecNum == 1 )
        {
                nFlag = 0;
        }
        {
                nFlag = 0;
        }
@@ -121,9 +128,9 @@ static int GetSendKey(const char *szLine, char *szKey)
        {
                nFlag = 1;
        }
        {
                nFlag = 1;
        }
-       return nFlag;  // 1 is bad, 0 is good
+       return nFlag;  // 1 is bad, 0 is good 
 
 
-} // GetSendKey()
+} // GetSendKey() 
 
 static void ColouriseAU3Doc(unsigned int startPos, 
                                                        int length, int initStyle,
 
 static void ColouriseAU3Doc(unsigned int startPos, 
                                                        int length, int initStyle,
@@ -135,6 +142,7 @@ static void ColouriseAU3Doc(unsigned int startPos,
     WordList &keywords3 = *keywordlists[2];
     WordList &keywords4 = *keywordlists[3];
     WordList &keywords5 = *keywordlists[4];
     WordList &keywords3 = *keywordlists[2];
     WordList &keywords4 = *keywordlists[3];
     WordList &keywords5 = *keywordlists[4];
+    WordList &keywords6 = *keywordlists[5];
     styler.StartAt(startPos);
 
     StyleContext sc(startPos, length, initStyle, styler);
     styler.StartAt(startPos);
 
     StyleContext sc(startPos, length, initStyle, styler);
@@ -148,9 +156,9 @@ static void ColouriseAU3Doc(unsigned int startPos,
         {
             case SCE_AU3_COMMENTBLOCK:
             {
         {
             case SCE_AU3_COMMENTBLOCK:
             {
-                               if (!IsAWordChar(sc.ch))
+                               if (!(IsAWordChar(sc.ch) || (sc.ch == '-' && strcmp(s, "#comments") == 0)))
                                {
                                {
-                                       if ((strcmp(s, "#ce")==0 || strcmp(s, "#comments-end")==0)) 
+                                       if ((strcmp(s, "#ce")== 0 || strcmp(s, "#comments-end")== 0)) 
                                        {sc.SetState(SCE_AU3_COMMENT);}  // set to comment line for the rest of the line
                                        else
                                        {sc.SetState(SCE_AU3_COMMENTBLOCK);}
                                        {sc.SetState(SCE_AU3_COMMENT);}  // set to comment line for the rest of the line
                                        else
                                        {sc.SetState(SCE_AU3_COMMENTBLOCK);}
@@ -167,13 +175,18 @@ static void ColouriseAU3Doc(unsigned int startPos,
                 sc.SetState(SCE_AU3_DEFAULT);
                 break;
             }
                 sc.SetState(SCE_AU3_DEFAULT);
                 break;
             }
+            case SCE_AU3_SPECIAL:
+            {
+                if (sc.atLineEnd) {sc.SetState(SCE_AU3_DEFAULT);}
+                break;
+            }
             case SCE_AU3_KEYWORD:
             {
             case SCE_AU3_KEYWORD:
             {
-                if (!IsAWordChar(sc.ch))
+                if (!(IsAWordChar(sc.ch) || (sc.ch == '-' && (strcmp(s, "#comments") == 0 || strcmp(s, "#include") == 0))))
                 {
                     if (!IsTypeCharacter(sc.ch))
                     {
                 {
                     if (!IsTypeCharacter(sc.ch))
                     {
-                                               if (strcmp(s, "#cs")==0 || strcmp(s, "#comments-start")==0 )
+                                               if (strcmp(s, "#cs")== 0 || strcmp(s, "#comments-start")== 0 )
                                                {
                                                        sc.ChangeState(SCE_AU3_COMMENTBLOCK);
                                                        sc.SetState(SCE_AU3_COMMENTBLOCK);
                                                {
                                                        sc.ChangeState(SCE_AU3_COMMENTBLOCK);
                                                        sc.SetState(SCE_AU3_COMMENTBLOCK);
@@ -193,11 +206,19 @@ static void ColouriseAU3Doc(unsigned int startPos,
                                                else if (keywords5.InList(s)) {
                                                        sc.ChangeState(SCE_AU3_PREPROCESSOR);
                                                        sc.SetState(SCE_AU3_DEFAULT);
                                                else if (keywords5.InList(s)) {
                                                        sc.ChangeState(SCE_AU3_PREPROCESSOR);
                                                        sc.SetState(SCE_AU3_DEFAULT);
-                                                       if (strcmp(s, "#include")==0)
+                                                       if (strcmp(s, "#include")== 0)
                                                        {
                                                                si = 3;   // use to determine string start for #inlude <>
                                                        }
                                                }
                                                        {
                                                                si = 3;   // use to determine string start for #inlude <>
                                                        }
                                                }
+                                               else if (keywords6.InList(s)) {
+                                                       sc.ChangeState(SCE_AU3_SPECIAL);
+                                                       sc.SetState(SCE_AU3_SPECIAL);
+                                               }
+                                               else if (strcmp(s, "_") == 0) {
+                                                       sc.ChangeState(SCE_AU3_OPERATOR);
+                                                       sc.SetState(SCE_AU3_DEFAULT);
+                                               }
                                                else if (!IsAWordChar(sc.ch)) {
                                                        sc.ChangeState(SCE_AU3_DEFAULT);
                                                        sc.SetState(SCE_AU3_DEFAULT);
                                                else if (!IsAWordChar(sc.ch)) {
                                                        sc.ChangeState(SCE_AU3_DEFAULT);
                                                        sc.SetState(SCE_AU3_DEFAULT);
@@ -302,8 +323,8 @@ static void ColouriseAU3Doc(unsigned int startPos,
                                sc.SetState(SCE_AU3_STRING);
                                si = 2; }
             else if (IsADigit(sc.ch) || (sc.ch == '.' && IsADigit(sc.chNext))) {sc.SetState(SCE_AU3_NUMBER);}
                                sc.SetState(SCE_AU3_STRING);
                                si = 2; }
             else if (IsADigit(sc.ch) || (sc.ch == '.' && IsADigit(sc.chNext))) {sc.SetState(SCE_AU3_NUMBER);}
-            else if (IsAOperator(static_cast<char>(sc.ch))) {sc.SetState(SCE_AU3_OPERATOR);}
             else if (IsAWordStart(sc.ch)) {sc.SetState(SCE_AU3_KEYWORD);}
             else if (IsAWordStart(sc.ch)) {sc.SetState(SCE_AU3_KEYWORD);}
+            else if (IsAOperator(static_cast<char>(sc.ch))) {sc.SetState(SCE_AU3_OPERATOR);}
                        else if (sc.atLineEnd) {sc.SetState(SCE_AU3_DEFAULT);}
         }
     }      //for (; sc.More(); sc.Forward())
                        else if (sc.atLineEnd) {sc.SetState(SCE_AU3_DEFAULT);}
         }
     }      //for (; sc.More(); sc.Forward())
@@ -311,11 +332,62 @@ static void ColouriseAU3Doc(unsigned int startPos,
 }
 
 //
 }
 
 //
+static bool IsStreamCommentStyle(int style) {
+       return style == SCE_AU3_COMMENT || style == SCE_AU3_COMMENTBLOCK;
+}
+
 //
 //
-static void FoldAU3Doc(unsigned int startPos, int length, int, WordList *[], Accessor &styler)
+// Routine to find first none space on the current line and return its Style
+// needed for comment lines not starting on pos 1 
+static int GetStyleFirstWord(unsigned int szLine, Accessor &styler)
 {
 {
-               int endPos = startPos + length;
+       int nsPos = styler.LineStart(szLine);
+       int nePos = styler.LineStart(szLine+1) - 1;
+       while (isspacechar(styler.SafeGetCharAt(nsPos)) && nsPos < nePos)
+       {
+               nsPos++; // skip to next char
+
+       } // End While
+       return styler.StyleAt(nsPos);
 
 
+} // GetStyleFirstWord()
+
+//
+// Routine to check the last "none comment" character on a line to see if its a continuation
+// 
+static bool IsContinuationLine(unsigned int szLine, Accessor &styler)
+{
+       int nsPos = styler.LineStart(szLine);
+       int nePos = styler.LineStart(szLine+1) - 2;
+       //int stylech = styler.StyleAt(nsPos);
+       while (nsPos < nePos)
+       {
+               //stylech = styler.StyleAt(nePos);
+               int stylech = styler.StyleAt(nsPos);
+               if (!(stylech == SCE_AU3_COMMENT)) {
+                       char ch = styler.SafeGetCharAt(nePos);
+                       if (!isspacechar(ch)) {
+                               if (ch == '_')
+                                       return true;
+                               else
+                                       return false;
+                       }
+               }
+               nePos--; // skip to next char
+       } // End While
+       return false;
+} // IsContinuationLine()
+
+
+//
+static void FoldAU3Doc(unsigned int startPos, int length, int, WordList *[], Accessor &styler)
+{
+       int endPos = startPos + length;
+       // get settings from the config files for folding comments and preprocessor lines
+       bool foldComment = styler.GetPropertyInt("fold.comment") != 0;
+       bool foldInComment = styler.GetPropertyInt("fold.comment") == 2;
+       bool foldCompact = styler.GetPropertyInt("fold.compact", 1) != 0;
+       bool foldpreprocessor = styler.GetPropertyInt("fold.preprocessor") != 0;
        // Backtrack to previous line in case need to fix its fold status
        int lineCurrent = styler.GetLine(startPos);
        if (startPos > 0) {
        // Backtrack to previous line in case need to fix its fold status
        int lineCurrent = styler.GetLine(startPos);
        if (startPos > 0) {
@@ -324,35 +396,207 @@ static void FoldAU3Doc(unsigned int startPos, int length, int, WordList *[], Acc
                        startPos = styler.LineStart(lineCurrent);
                }
        }
                        startPos = styler.LineStart(lineCurrent);
                }
        }
-       int spaceFlags = 0;
-       int indentCurrent = styler.IndentAmount(lineCurrent, &spaceFlags, IsAU3Comment);
-       char chNext = styler[startPos];
+       // vars for style of previous/current/next lines 
+       int style = GetStyleFirstWord(lineCurrent,styler);
+       int stylePrev = 0;
+       // find the first previous line without continuation character at the end
+       while ((lineCurrent > 0 && IsContinuationLine(lineCurrent,styler)) ||
+              (lineCurrent > 1 && IsContinuationLine(lineCurrent-1,styler))) {
+               lineCurrent--;
+               startPos = styler.LineStart(lineCurrent);
+       }
+       if (lineCurrent > 0) {
+               stylePrev = GetStyleFirstWord(lineCurrent-1,styler);
+       }
+       // vars for getting first word to check for keywords
+       bool FirstWordStart = false;
+       bool FirstWordEnd = false;
+       char szKeyword[10]="";
+       int      szKeywordlen = 0;
+       char szThen[5]="";
+       int      szThenlen = 0;
+       bool ThenFoundLast = false;
+       // var for indentlevel
+       int levelCurrent = SC_FOLDLEVELBASE;
+       if (lineCurrent > 0)
+               levelCurrent = styler.LevelAt(lineCurrent-1) >> 16;
+       int levelNext = levelCurrent;
+       //  
+       int     visibleChars = 0;
+       char chNext = styler.SafeGetCharAt(startPos);
+       char chPrev = ' ';
+       //
        for (int i = startPos; i < endPos; i++) {
                char ch = chNext;
                chNext = styler.SafeGetCharAt(i + 1);
        for (int i = startPos; i < endPos; i++) {
                char ch = chNext;
                chNext = styler.SafeGetCharAt(i + 1);
-
-               if ((ch == '\r' && chNext != '\n') || (ch == '\n') || (i == endPos)) {
-                       int lev = indentCurrent;
-                       int indentNext = styler.IndentAmount(lineCurrent + 1, &spaceFlags, IsAU3Comment);
-                       if (!(indentCurrent & SC_FOLDLEVELWHITEFLAG)) {
-                               // Only non whitespace lines can be headers
-                               if ((indentCurrent & SC_FOLDLEVELNUMBERMASK) < (indentNext & SC_FOLDLEVELNUMBERMASK)) {
-                                       lev |= SC_FOLDLEVELHEADERFLAG;
-                               } else if (indentNext & SC_FOLDLEVELWHITEFLAG) {
-                                       // Line after is blank so check the next - maybe should continue further?
-                                       int spaceFlags2 = 0;
-                                       int indentNext2 = styler.IndentAmount(lineCurrent + 2, &spaceFlags2, IsAU3Comment);
-                                       if ((indentCurrent & SC_FOLDLEVELNUMBERMASK) < (indentNext2 & SC_FOLDLEVELNUMBERMASK)) {
-                                               lev |= SC_FOLDLEVELHEADERFLAG;
+               if (IsAWordChar(ch)) {
+                       visibleChars++;
+               }
+               // get the syle for the current character neede to check in comment
+               int stylech = styler.StyleAt(i);
+               // get first word for the line for indent check max 9 characters
+               if (FirstWordStart && (!(FirstWordEnd))) {
+                       if (!IsAWordChar(ch)) {
+                               FirstWordEnd = true;
+                               szKeyword[szKeywordlen] = '\0';
+                       }
+                       else {
+                               if (szKeywordlen < 10) {
+                               szKeyword[szKeywordlen++] = static_cast<char>(tolower(ch));
+                               }
+                       }
+               }
+               // start the capture of the first word 
+               if (!(FirstWordStart)) {
+                       if (IsAWordChar(ch) || IsAWordStart(ch) || ch == ';') {
+                               FirstWordStart = true;
+                               szKeyword[szKeywordlen++] = static_cast<char>(tolower(ch));
+                       }
+               }
+               // only process this logic when not in comment section
+               if (!(stylech == SCE_AU3_COMMENT)) {
+                       if (ThenFoundLast) {
+                               if (IsAWordChar(ch)) {
+                                       ThenFoundLast = false;
+                               }               
+                       }
+                       // find out if the word "then" is the last on a "if" line
+                       if (FirstWordEnd && strcmp(szKeyword,"if") == 0) {
+                               if (szThenlen == 4) {
+                                       szThen[0] = szThen[1];
+                                       szThen[1] = szThen[2];
+                                       szThen[2] = szThen[3];
+                                       szThen[3] = static_cast<char>(tolower(ch));
+                                       if (strcmp(szThen,"then") == 0 ) {
+                                               ThenFoundLast = true;
+                                       }
+                               }
+                               else {
+                                       szThen[szThenlen++] = static_cast<char>(tolower(ch));
+                                       if (szThenlen == 5) {
+                                               szThen[4] = '\0';
                                        }
                                }
                        }
                                        }
                                }
                        }
-                       indentCurrent = indentNext;
-                       styler.SetLevel(lineCurrent, lev);
+               }
+               // End of Line found so process the information 
+               if ((ch == '\r' && chNext != '\n') || (ch == '\n') || (i == endPos)) {
+                       // **************************
+                       // Folding logic for Keywords
+                       // **************************
+                       // if a keyword is found on the current line and the line doesn't end with _ (continuation)
+                       //    and we are not inside a commentblock.
+                       if (szKeywordlen > 0 && (!(chPrev == '_')) && 
+                               ((!(IsStreamCommentStyle(style)) || foldInComment)) ) {
+                               szKeyword[szKeywordlen] = '\0';
+                               // only fold "if" last keyword is "then"  (else its a one line if)
+                               if (strcmp(szKeyword,"if") == 0  && ThenFoundLast) {
+                                               levelNext++;
+                               }
+                               // create new fold for these words 
+                               if (strcmp(szKeyword,"do") == 0   || strcmp(szKeyword,"for") == 0 ||
+                                       strcmp(szKeyword,"func") == 0 || strcmp(szKeyword,"while") == 0||
+                                       strcmp(szKeyword,"#region") == 0 ) {
+                                               levelNext++;
+                               }
+                               // create double Fold for select because Case will subtract one of the current level
+                               if (strcmp(szKeyword,"select") == 0) {
+                                               levelNext++;
+                                               levelNext++;
+                               }
+                               // end the fold for these words before the current line
+                               if (strcmp(szKeyword,"endfunc") == 0 || strcmp(szKeyword,"endif") == 0 ||
+                                       strcmp(szKeyword,"next") == 0    || strcmp(szKeyword,"until") == 0 || 
+                                       strcmp(szKeyword,"wend") == 0){
+                                               levelNext--;
+                                               levelCurrent--;
+                               }
+                               // end the fold for these words before the current line and Start new fold 
+                               if (strcmp(szKeyword,"case") == 0      || strcmp(szKeyword,"else") == 0 ||
+                                       strcmp(szKeyword,"elseif") == 0 ) {
+                                               levelCurrent--;
+                               }
+                               // end the double fold for this word before the current line
+                               if (strcmp(szKeyword,"endselect") == 0 ) {
+                                               levelNext--;
+                                               levelNext--;
+                                               levelCurrent--;
+                                               levelCurrent--;
+                               }
+                               // end the fold for these words on the current line
+                               if (strcmp(szKeyword,"#endregion") == 0 ) {
+                                               levelNext--;
+                               }
+                       }
+                       // Preprocessor and Comment folding
+                       int styleNext = GetStyleFirstWord(lineCurrent + 1,styler);
+                       // *************************************
+                       // Folding logic for preprocessor blocks
+                       // *************************************
+                       // process preprosessor line
+                       if (foldpreprocessor && style == SCE_AU3_PREPROCESSOR) {
+                               if (!(stylePrev == SCE_AU3_PREPROCESSOR) && (styleNext == SCE_AU3_PREPROCESSOR)) {
+                                   levelNext++;
+                               }
+                               // fold till the last line for normal comment lines
+                               else if (stylePrev == SCE_AU3_PREPROCESSOR && !(styleNext == SCE_AU3_PREPROCESSOR)) {
+                                       levelNext--;
+                               }
+                       }
+                       // *********************************
+                       // Folding logic for Comment blocks
+                       // *********************************
+                       if (foldComment && IsStreamCommentStyle(style)) {
+                               // Start of a comment block
+                               if (!(stylePrev==style) && IsStreamCommentStyle(styleNext) && styleNext==style) {
+                                   levelNext++;
+                               } 
+                               // fold till the last line for normal comment lines
+                               else if (IsStreamCommentStyle(stylePrev) 
+                                               && !(styleNext == SCE_AU3_COMMENT)
+                                               && stylePrev == SCE_AU3_COMMENT 
+                                               && style == SCE_AU3_COMMENT) {
+                                       levelNext--;
+                               }
+                               // fold till the one but last line for Blockcomment lines
+                               else if (IsStreamCommentStyle(stylePrev) 
+                                               && !(styleNext == SCE_AU3_COMMENTBLOCK)
+                                               && style == SCE_AU3_COMMENTBLOCK) {
+                                       levelNext--;
+                                       levelCurrent--;
+                               }
+                       }
+                       int levelUse = levelCurrent;
+                       int lev = levelUse | levelNext << 16;
+                       if (visibleChars == 0 && foldCompact)
+                               lev |= SC_FOLDLEVELWHITEFLAG;
+                       if (levelUse < levelNext) {
+                               lev |= SC_FOLDLEVELHEADERFLAG;
+                       }
+                       if (lev != styler.LevelAt(lineCurrent)) {
+                               styler.SetLevel(lineCurrent, lev);
+                       }
+                       // reset values for the next line
                        lineCurrent++;
                        lineCurrent++;
+                       stylePrev = style;
+                       style = styleNext;
+                       levelCurrent = levelNext;
+                       visibleChars = 0;
+                       // if the last character is an Underscore then don't reset since the line continues on the next line.
+                       if (!(chPrev == '_')) {
+                               szKeywordlen = 0;
+                               szThenlen = 0;
+                               FirstWordStart = false;
+                               FirstWordEnd = false;
+                               ThenFoundLast = false;
+                       }
+               }
+               // save the last processed character
+               if (!isspacechar(ch)) {
+                       chPrev = ch;
+                       visibleChars++;
                }
        }
                }
        }
-
 }
 
 
 }
 
 
@@ -364,6 +608,7 @@ static const char * const AU3WordLists[] = {
     "#autoit macros",
     "#autoit Sent keys",
     "#autoit Pre-processors",
     "#autoit macros",
     "#autoit Sent keys",
     "#autoit Pre-processors",
+    "#autoit Special",
     0
 };
 LexerModule lmAU3(SCLEX_AU3, ColouriseAU3Doc, "au3", FoldAU3Doc , AU3WordLists);
     0
 };
 LexerModule lmAU3(SCLEX_AU3, ColouriseAU3Doc, "au3", FoldAU3Doc , AU3WordLists);
index 2e5f891b4b1fbf11757e5a1267ef0c022348420c..0227ce11088b7aa9ba73033e36a74f931bfcc306 100644 (file)
@@ -256,7 +256,7 @@ static void ColouriseDocument(
                        ColouriseLabel(sc, keywords, apostropheStartsAttribute);
 
                // Whitespace
                        ColouriseLabel(sc, keywords, apostropheStartsAttribute);
 
                // Whitespace
-               } else if (isspace(sc.ch)) {
+               } else if (IsASpace(sc.ch)) {
                        ColouriseWhiteSpace(sc, apostropheStartsAttribute);
 
                // Delimiters
                        ColouriseWhiteSpace(sc, apostropheStartsAttribute);
 
                // Delimiters
@@ -264,7 +264,7 @@ static void ColouriseDocument(
                        ColouriseDelimiter(sc, apostropheStartsAttribute);
 
                // Numbers
                        ColouriseDelimiter(sc, apostropheStartsAttribute);
 
                // Numbers
-               } else if (isdigit(sc.ch) || sc.ch == '#') {
+               } else if (IsADigit(sc.ch) || sc.ch == '#') {
                        ColouriseNumber(sc, apostropheStartsAttribute);
 
                // Keywords or identifiers
                        ColouriseNumber(sc, apostropheStartsAttribute);
 
                // Keywords or identifiers
@@ -310,11 +310,11 @@ static inline bool IsNumberCharacter(int ch) {
 }
 
 static inline bool IsNumberStartCharacter(int ch) {
 }
 
 static inline bool IsNumberStartCharacter(int ch) {
-       return isdigit(ch) != 0;
+       return IsADigit(ch);
 }
 
 static inline bool IsSeparatorOrDelimiterCharacter(int ch) {
 }
 
 static inline bool IsSeparatorOrDelimiterCharacter(int ch) {
-       return isspace(ch) || IsDelimiterCharacter(ch);
+       return IsASpace(ch) || IsDelimiterCharacter(ch);
 }
 
 static bool IsValidIdentifier(const SString& identifier) {
 }
 
 static bool IsValidIdentifier(const SString& identifier) {
@@ -377,7 +377,7 @@ static bool IsValidNumber(const SString& number) {
                                }
                                canBeSpecial = false;
                                seenDot = true;
                                }
                                canBeSpecial = false;
                                seenDot = true;
-                       } else if (isdigit(number[i])) {
+                       } else if (IsADigit(number[i])) {
                                canBeSpecial = true;
                        } else {
                                break;
                                canBeSpecial = true;
                        } else {
                                break;
@@ -398,7 +398,7 @@ static bool IsValidNumber(const SString& number) {
                                if (!canBeSpecial)
                                        return false;
                                canBeSpecial = false;
                                if (!canBeSpecial)
                                        return false;
                                canBeSpecial = false;
-                       } else if (isdigit (ch)) {
+                       } else if (IsADigit(ch)) {
                                base = base * 10 + (ch - '0');
                                if (base > 16)
                                        return false;
                                base = base * 10 + (ch - '0');
                                if (base > 16)
                                        return false;
@@ -436,7 +436,7 @@ static bool IsValidNumber(const SString& number) {
                                canBeSpecial = false;
                                seenDot = true;
 
                                canBeSpecial = false;
                                seenDot = true;
 
-                       } else if (isdigit (ch)) {
+                       } else if (IsADigit(ch)) {
                                if (ch - '0' >= base) {
                                        return false;
                                }
                                if (ch - '0' >= base) {
                                        return false;
                                }
@@ -496,7 +496,7 @@ static bool IsValidNumber(const SString& number) {
                                        return false;
                                }
                                canBeSpecial = false;
                                        return false;
                                }
                                canBeSpecial = false;
-                       } else if (isdigit(number[i])) {
+                       } else if (IsADigit(number[i])) {
                                canBeSpecial = true;
                        } else {
                                return false;
                                canBeSpecial = true;
                        } else {
                                return false;
@@ -512,9 +512,9 @@ static bool IsValidNumber(const SString& number) {
 }
 
 static inline bool IsWordCharacter(int ch) {
 }
 
 static inline bool IsWordCharacter(int ch) {
-       return IsWordStartCharacter(ch) || isdigit(ch);
+       return IsWordStartCharacter(ch) || IsADigit(ch);
 }
 
 static inline bool IsWordStartCharacter(int ch) {
 }
 
 static inline bool IsWordStartCharacter(int ch) {
-       return isalpha(ch) || ch == '_';
+       return (isascii(ch) && isalpha(ch)) || ch == '_';
 }
 }
diff --git a/src/stc/scintilla/src/LexAsn1.cxx b/src/stc/scintilla/src/LexAsn1.cxx
new file mode 100644 (file)
index 0000000..be6c3f2
--- /dev/null
@@ -0,0 +1,181 @@
+// Scintilla source code edit control
+/** @file LexAsn1.cxx
+ ** Lexer for ASN.1
+ **/
+// Copyright 2004 by Herr Pfarrer rpfarrer <at> yahoo <dot> de
+// Last Updated: 20/07/2004
+// The License.txt file describes the conditions under which this software may be distributed.
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <stdio.h>
+#include <stdarg.h>
+
+#include "Platform.h"
+
+#include "PropSet.h"
+#include "Accessor.h"
+#include "StyleContext.h"
+#include "KeyWords.h"
+#include "Scintilla.h"
+#include "SciLexer.h"
+
+// Some char test functions
+static bool isAsn1Number(int ch)
+{
+       return (ch >= '0' && ch <= '9');
+}
+
+static bool isAsn1Letter(int ch)
+{
+       return (ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z');
+}
+
+static bool isAsn1Char(int ch)
+{
+       return (ch == '-' ) || isAsn1Number(ch) || isAsn1Letter (ch);
+}
+
+//
+//     Function determining the color of a given code portion
+//     Based on a "state"
+//
+static void ColouriseAsn1Doc(unsigned int startPos, int length, int initStyle, WordList *keywordLists[], Accessor &styler)
+{
+       // The keywords
+       WordList &Keywords = *keywordLists[0];
+       WordList &Attributes = *keywordLists[1];
+       WordList &Descriptors = *keywordLists[2];
+       WordList &Types = *keywordLists[3];
+
+       // Parse the whole buffer character by character using StyleContext
+       StyleContext sc(startPos, length, initStyle, styler);
+       for (; sc.More(); sc.Forward())
+       {
+               // The state engine
+               switch (sc.state)
+               {
+               case SCE_ASN1_DEFAULT:          // Plain characters
+asn1_default:
+                       if (sc.ch == '-' && sc.chNext == '-')
+                               // A comment begins here
+                               sc.SetState(SCE_ASN1_COMMENT);
+                       else if (sc.ch == '"')
+                               // A string begins here
+                               sc.SetState(SCE_ASN1_STRING);
+                       else if (isAsn1Number (sc.ch))
+                               // A number starts here (identifier should start with a letter in ASN.1)
+                               sc.SetState(SCE_ASN1_SCALAR);
+                       else if (isAsn1Char (sc.ch))
+                               // An identifier starts here (identifier always start with a letter)
+                               sc.SetState(SCE_ASN1_IDENTIFIER);
+                       else if (sc.ch == ':')
+                               // A ::= operator starts here
+                               sc.SetState(SCE_ASN1_OPERATOR);
+                       break;
+               case SCE_ASN1_COMMENT:          // A comment
+                       if (sc.ch == '\r' || sc.ch == '\n')
+                               // A comment ends here
+                               sc.SetState(SCE_ASN1_DEFAULT);
+                       break;
+               case SCE_ASN1_IDENTIFIER:       // An identifier (keyword, attribute, descriptor or type)
+                       if (!isAsn1Char (sc.ch))
+                       {
+                               // The end of identifier is here: we can look for it in lists by now and change its state
+                               char s[100];
+                               sc.GetCurrent(s, sizeof(s));
+                               if (Keywords.InList(s))
+                                       // It's a keyword, change its state
+                                       sc.ChangeState(SCE_ASN1_KEYWORD);
+                               else if (Attributes.InList(s))
+                                       // It's an attribute, change its state
+                                       sc.ChangeState(SCE_ASN1_ATTRIBUTE);
+                               else if (Descriptors.InList(s))
+                                       // It's a descriptor, change its state
+                                       sc.ChangeState(SCE_ASN1_DESCRIPTOR);
+                               else if (Types.InList(s))
+                                       // It's a type, change its state
+                                       sc.ChangeState(SCE_ASN1_TYPE);
+
+                               // Set to default now
+                               sc.SetState(SCE_ASN1_DEFAULT);
+                       }
+                       break;
+               case SCE_ASN1_STRING:           // A string delimited by ""
+                       if (sc.ch == '"')
+                       {
+                               // A string ends here
+                               sc.ForwardSetState(SCE_ASN1_DEFAULT);
+
+                               // To correctly manage a char sticking to the string quote
+                               goto asn1_default;
+                       }
+                       break;
+               case SCE_ASN1_SCALAR:           // A plain number
+                       if (!isAsn1Number (sc.ch))
+                               // A number ends here
+                               sc.SetState(SCE_ASN1_DEFAULT);
+                       break;
+               case SCE_ASN1_OPERATOR:         // The affectation operator ::= and wath follows (eg: ::= { org 6 } OID or ::= 12 trap)
+                       if (sc.ch == '{')
+                       {
+                               // An OID definition starts here: enter the sub loop
+                               for (; sc.More(); sc.Forward())
+                               {
+                                       if (isAsn1Number (sc.ch) && (!isAsn1Char (sc.chPrev) || isAsn1Number (sc.chPrev)))
+                                               // The OID number is highlighted
+                                               sc.SetState(SCE_ASN1_OID);
+                                       else if (isAsn1Char (sc.ch))
+                                               // The OID parent identifier is plain
+                                               sc.SetState(SCE_ASN1_IDENTIFIER);
+                                       else
+                                               sc.SetState(SCE_ASN1_DEFAULT);
+
+                                       if (sc.ch == '}')
+                                               // Here ends the OID and the operator sub loop: go back to main loop
+                                               break;
+                               }
+                       }
+                       else if (isAsn1Number (sc.ch))
+                       {
+                               // A trap number definition starts here: enter the sub loop
+                               for (; sc.More(); sc.Forward())
+                               {
+                                       if (isAsn1Number (sc.ch))
+                                               // The trap number is highlighted
+                                               sc.SetState(SCE_ASN1_OID);
+                                       else
+                                       {
+                                               // The number ends here: go back to main loop
+                                               sc.SetState(SCE_ASN1_DEFAULT);
+                                               break;
+                                       }
+                               }
+                       }
+                       else if (sc.ch != ':' && sc.ch != '=' && sc.ch != ' ')
+                               // The operator doesn't imply an OID definition nor a trap, back to main loop
+                               goto asn1_default; // To be sure to handle actually the state change
+                       break;
+               }
+       }
+       sc.Complete();
+}
+
+static void FoldAsn1Doc(unsigned int, int, int, WordList *[], Accessor &styler)
+{
+       // No folding enabled, no reason to continue...
+       if( styler.GetPropertyInt("fold") == 0 )
+               return;
+
+       // No folding implemented: doesn't make sense for ASN.1
+}
+
+static const char * const asn1WordLists[] = {
+       "Keywords",
+       "Attributes",
+       "Descriptors",
+       "Types",
+       0, };
+
+
+LexerModule lmAsn1(SCLEX_ASN1, ColouriseAsn1Doc, "asn1", FoldAsn1Doc, asn1WordLists);
index 9c8ea416ae6b3b36063090f26addb4696f7fe626..c6ca0650585470cf431a24f9579f0f02c794b01a 100644 (file)
@@ -123,7 +123,7 @@ static void ColouriseCppDoc(unsigned int startPos, int length, int initStyle, Wo
                                        sc.SetState(SCE_C_DEFAULT);
                                }
                        } else {
                                        sc.SetState(SCE_C_DEFAULT);
                                }
                        } else {
-                               if ((sc.atLineEnd) || (sc.Match('/', '*')) || (sc.Match('/', '/'))) {
+                               if ((sc.ch == '\r') || (sc.ch == '\n') || (sc.Match('/', '*')) || (sc.Match('/', '/'))) {
                                        sc.SetState(SCE_C_DEFAULT);
                                }
                        }
                                        sc.SetState(SCE_C_DEFAULT);
                                }
                        }
@@ -140,7 +140,7 @@ static void ColouriseCppDoc(unsigned int startPos, int length, int initStyle, Wo
                                sc.SetState(SCE_C_COMMENTDOCKEYWORD);
                        }
                } else if (sc.state == SCE_C_COMMENTLINE || sc.state == SCE_C_COMMENTLINEDOC) {
                                sc.SetState(SCE_C_COMMENTDOCKEYWORD);
                        }
                } else if (sc.state == SCE_C_COMMENTLINE || sc.state == SCE_C_COMMENTLINEDOC) {
-                       if (sc.atLineEnd) {
+                       if (sc.ch == '\r' || sc.ch == '\n') {
                                sc.SetState(SCE_C_DEFAULT);
                                visibleChars = 0;
                        }
                                sc.SetState(SCE_C_DEFAULT);
                                visibleChars = 0;
                        }
@@ -235,7 +235,8 @@ static void ColouriseCppDoc(unsigned int startPos, int length, int initStyle, Wo
                                }
                                sc.Forward();   // Eat the * so it isn't used for the end of the comment
                        } else if (sc.Match('/', '/')) {
                                }
                                sc.Forward();   // Eat the * so it isn't used for the end of the comment
                        } else if (sc.Match('/', '/')) {
-                               if (sc.Match("///") || sc.Match("//!")) // Support of Qt/Doxygen doc. style
+                               if ((sc.Match("///") && !sc.Match("////")) || sc.Match("//!"))
+                                       // Support of Qt/Doxygen doc. style
                                        sc.SetState(SCE_C_COMMENTLINEDOC);
                                else
                                        sc.SetState(SCE_C_COMMENTLINE);
                                        sc.SetState(SCE_C_COMMENTLINEDOC);
                                else
                                        sc.SetState(SCE_C_COMMENTLINE);
@@ -252,7 +253,7 @@ static void ColouriseCppDoc(unsigned int startPos, int length, int initStyle, Wo
                                do {
                                        sc.Forward();
                                } while ((sc.ch == ' ' || sc.ch == '\t') && sc.More());
                                do {
                                        sc.Forward();
                                } while ((sc.ch == ' ' || sc.ch == '\t') && sc.More());
-                               if (sc.atLineEnd) {
+                               if (sc.ch == '\r' || sc.ch == '\n') {
                                        sc.SetState(SCE_C_DEFAULT);
                                }
                        } else if (isoperator(static_cast<char>(sc.ch))) {
                                        sc.SetState(SCE_C_DEFAULT);
                                }
                        } else if (isoperator(static_cast<char>(sc.ch))) {
index 11daa142388d83d3080f53c7b878d8a3b4a1a281..f45ce1cda4c656fedf11860b19e74be7b851765c 100644 (file)
@@ -1,7 +1,8 @@
 // Scintilla source code edit control
 /** @file LexCSS.cxx
 // Scintilla source code edit control
 /** @file LexCSS.cxx
- ** Lexer for Cascade Style Sheets
+ ** Lexer for Cascading Style Sheets
  ** Written by Jakub Vrána
  ** Written by Jakub Vrána
+ ** Improved by Philippe Lhoste (CSS2)
  **/
 // Copyright 1998-2002 by Neil Hodgson <neilh@scintilla.org>
 // The License.txt file describes the conditions under which this software may be distributed.
  **/
 // Copyright 1998-2002 by Neil Hodgson <neilh@scintilla.org>
 // The License.txt file describes the conditions under which this software may be distributed.
 #include "Scintilla.h"
 #include "SciLexer.h"
 
 #include "Scintilla.h"
 #include "SciLexer.h"
 
+
 static inline bool IsAWordChar(const unsigned int ch) {
        return (isalnum(ch) || ch == '-' || ch == '_' || ch >= 161); // _ is not in fact correct CSS word-character
 }
 
 inline bool IsCssOperator(const char ch) {
 static inline bool IsAWordChar(const unsigned int ch) {
        return (isalnum(ch) || ch == '-' || ch == '_' || ch >= 161); // _ is not in fact correct CSS word-character
 }
 
 inline bool IsCssOperator(const char ch) {
-       if (!isalnum(ch) && (ch == '{' || ch == '}' || ch == ':' || ch == ',' || ch == ';' || ch == '.' || ch == '#' || ch == '!' || ch == '@'))
+       if (!isalnum(ch) &&
+               (ch == '{' || ch == '}' || ch == ':' || ch == ',' || ch == ';' ||
+                ch == '.' || ch == '#' || ch == '!' || ch == '@' ||
+                /* CSS2 */
+                ch == '*' || ch == '>' || ch == '+' || ch == '=' || ch == '~' || ch == '|' ||
+                ch == '[' || ch == ']' || ch == '(' || ch == ')')) {
                return true;
                return true;
+       }
        return false;
 }
 
 static void ColouriseCssDoc(unsigned int startPos, int length, int initStyle, WordList *keywordlists[], Accessor &styler) {
        WordList &keywords = *keywordlists[0];
        WordList &pseudoClasses = *keywordlists[1];
        return false;
 }
 
 static void ColouriseCssDoc(unsigned int startPos, int length, int initStyle, WordList *keywordlists[], Accessor &styler) {
        WordList &keywords = *keywordlists[0];
        WordList &pseudoClasses = *keywordlists[1];
+       WordList &keywords2 = *keywordlists[2];
 
        StyleContext sc(startPos, length, initStyle, styler);
 
 
        StyleContext sc(startPos, length, initStyle, styler);
 
@@ -44,7 +53,8 @@ static void ColouriseCssDoc(unsigned int startPos, int length, int initStyle, Wo
        for (; sc.More(); sc.Forward()) {
                if (sc.state == SCE_CSS_COMMENT && sc.Match('*', '/')) {
                        if (lastStateC == -1) {
        for (; sc.More(); sc.Forward()) {
                if (sc.state == SCE_CSS_COMMENT && sc.Match('*', '/')) {
                        if (lastStateC == -1) {
-                               // backtrack to get last state
+                               // backtrack to get last state:
+                               // comments are like whitespace, so we must return to the previous state
                                unsigned int i = startPos;
                                for (; i > 0; i--) {
                                        if ((lastStateC = styler.StyleAt(i-1)) != SCE_CSS_COMMENT) {
                                unsigned int i = startPos;
                                for (; i > 0; i--) {
                                        if ((lastStateC = styler.StyleAt(i-1)) != SCE_CSS_COMMENT) {
@@ -104,14 +114,15 @@ static void ColouriseCssDoc(unsigned int startPos, int length, int initStyle, Wo
                                        sc.SetState(SCE_CSS_IDENTIFIER);
                                break;
                        case '}':
                                        sc.SetState(SCE_CSS_IDENTIFIER);
                                break;
                        case '}':
-                               if (lastState == SCE_CSS_DEFAULT || lastState == SCE_CSS_VALUE || lastState == SCE_CSS_IMPORTANT || lastState == SCE_CSS_IDENTIFIER)
+                               if (lastState == SCE_CSS_DEFAULT || lastState == SCE_CSS_VALUE || lastState == SCE_CSS_IMPORTANT ||
+                                       lastState == SCE_CSS_IDENTIFIER || lastState == SCE_CSS_IDENTIFIER2)
                                        sc.SetState(SCE_CSS_DEFAULT);
                                break;
                        case ':':
                                if (lastState == SCE_CSS_TAG || lastState == SCE_CSS_PSEUDOCLASS || lastState == SCE_CSS_DEFAULT ||
                                        lastState == SCE_CSS_CLASS || lastState == SCE_CSS_ID || lastState == SCE_CSS_UNKNOWN_PSEUDOCLASS)
                                        sc.SetState(SCE_CSS_PSEUDOCLASS);
                                        sc.SetState(SCE_CSS_DEFAULT);
                                break;
                        case ':':
                                if (lastState == SCE_CSS_TAG || lastState == SCE_CSS_PSEUDOCLASS || lastState == SCE_CSS_DEFAULT ||
                                        lastState == SCE_CSS_CLASS || lastState == SCE_CSS_ID || lastState == SCE_CSS_UNKNOWN_PSEUDOCLASS)
                                        sc.SetState(SCE_CSS_PSEUDOCLASS);
-                               else if (lastState == SCE_CSS_IDENTIFIER || lastState == SCE_CSS_UNKNOWN_IDENTIFIER)
+                               else if (lastState == SCE_CSS_IDENTIFIER || lastState == SCE_CSS_IDENTIFIER2 || lastState == SCE_CSS_UNKNOWN_IDENTIFIER)
                                        sc.SetState(SCE_CSS_VALUE);
                                break;
                        case '.':
                                        sc.SetState(SCE_CSS_VALUE);
                                break;
                        case '.':
@@ -146,7 +157,8 @@ static void ColouriseCssDoc(unsigned int startPos, int length, int initStyle, Wo
                }
 
                if (IsAWordChar(sc.chPrev) && (
                }
 
                if (IsAWordChar(sc.chPrev) && (
-                       sc.state == SCE_CSS_IDENTIFIER || sc.state == SCE_CSS_UNKNOWN_IDENTIFIER
+                       sc.state == SCE_CSS_IDENTIFIER || sc.state == SCE_CSS_IDENTIFIER2
+                       || sc.state == SCE_CSS_UNKNOWN_IDENTIFIER
                        || sc.state == SCE_CSS_PSEUDOCLASS || sc.state == SCE_CSS_UNKNOWN_PSEUDOCLASS
                        || sc.state == SCE_CSS_IMPORTANT
                )) {
                        || sc.state == SCE_CSS_PSEUDOCLASS || sc.state == SCE_CSS_UNKNOWN_PSEUDOCLASS
                        || sc.state == SCE_CSS_IMPORTANT
                )) {
@@ -157,12 +169,19 @@ static void ColouriseCssDoc(unsigned int startPos, int length, int initStyle, Wo
                                s2++;
                        switch (sc.state) {
                        case SCE_CSS_IDENTIFIER:
                                s2++;
                        switch (sc.state) {
                        case SCE_CSS_IDENTIFIER:
-                               if (!keywords.InList(s2))
-                                       sc.ChangeState(SCE_CSS_UNKNOWN_IDENTIFIER);
+                               if (!keywords.InList(s2)) {
+                                       if (keywords2.InList(s2)) {
+                                               sc.ChangeState(SCE_CSS_IDENTIFIER2);
+                                       } else {
+                                               sc.ChangeState(SCE_CSS_UNKNOWN_IDENTIFIER);
+                                       }
+                               }
                                break;
                        case SCE_CSS_UNKNOWN_IDENTIFIER:
                                if (keywords.InList(s2))
                                        sc.ChangeState(SCE_CSS_IDENTIFIER);
                                break;
                        case SCE_CSS_UNKNOWN_IDENTIFIER:
                                if (keywords.InList(s2))
                                        sc.ChangeState(SCE_CSS_IDENTIFIER);
+                               else if (keywords2.InList(s2))
+                                       sc.ChangeState(SCE_CSS_IDENTIFIER2);
                                break;
                        case SCE_CSS_PSEUDOCLASS:
                                if (!pseudoClasses.InList(s2))
                                break;
                        case SCE_CSS_PSEUDOCLASS:
                                if (!pseudoClasses.InList(s2))
@@ -253,8 +272,9 @@ static void FoldCSSDoc(unsigned int startPos, int length, int, WordList *[], Acc
 }
 
 static const char * const cssWordListDesc[] = {
 }
 
 static const char * const cssWordListDesc[] = {
-       "Keywords",
+       "CSS1 Keywords",
        "Pseudo classes",
        "Pseudo classes",
+       "CSS2 Keywords",
        0
 };
 
        0
 };
 
index d2cd30f60e2ee44335d3806f317b9cc63b51e755..e3546b436fdb6b1674a29fef85e44e92a3cedd71 100644 (file)
@@ -314,7 +314,7 @@ static void classifyWordHTPy(unsigned int start, unsigned int end, WordList &key
 // Called when in a PHP word
 static void classifyWordHTPHP(unsigned int start, unsigned int end, WordList &keywords, Accessor &styler) {
        char chAttr = SCE_HPHP_DEFAULT;
 // Called when in a PHP word
 static void classifyWordHTPHP(unsigned int start, unsigned int end, WordList &keywords, Accessor &styler) {
        char chAttr = SCE_HPHP_DEFAULT;
-       bool wordIsNumber = IsADigit(styler[start]);
+       bool wordIsNumber = IsADigit(styler[start]) || (styler[start] == '.' && start+1 <= end && IsADigit(styler[start+1]));
        if (wordIsNumber)
                chAttr = SCE_HPHP_NUMBER;
        else {
        if (wordIsNumber)
                chAttr = SCE_HPHP_NUMBER;
        else {
@@ -637,9 +637,10 @@ static void ColouriseHyperTextDoc(unsigned int startPos, int length, int initSty
                         (state != SCE_HPHP_COMMENT) &&
                         (ch == '<') &&
                         (chNext == '?')) {
                         (state != SCE_HPHP_COMMENT) &&
                         (ch == '<') &&
                         (chNext == '?')) {
+                       scriptLanguage = segIsScriptingIndicator(styler, styler.GetStartSegment() + 2, i + 10, eScriptPHP);
+                       if (scriptLanguage != eScriptPHP && isStringState(state)) continue;
                        styler.ColourTo(i - 1, StateToPrint);
                        beforePreProc = state;
                        styler.ColourTo(i - 1, StateToPrint);
                        beforePreProc = state;
-                       scriptLanguage = segIsScriptingIndicator(styler, styler.GetStartSegment() + 2, i + 10, eScriptPHP);
                        i++;
                        visibleChars++;
                        i += PrintScriptingIndicatorOffset(styler, styler.GetStartSegment() + 2, i + 10);
                        i++;
                        visibleChars++;
                        i += PrintScriptingIndicatorOffset(styler, styler.GetStartSegment() + 2, i + 10);
@@ -1495,7 +1496,7 @@ static void ColouriseHyperTextDoc(unsigned int startPos, int length, int initSty
                        }
                        break;
                case SCE_HPHP_NUMBER:
                        }
                        break;
                case SCE_HPHP_NUMBER:
-                       if (!IsADigit(ch)) {
+                       if (!IsADigit(ch) && ch != '.' && ch != 'e' && ch != 'E' && (ch != '-' || (chPrev != 'e' && chPrev != 'E'))) {
                                styler.ColourTo(i - 1, SCE_HPHP_NUMBER);
                                if (isoperator(ch))
                                        state = SCE_HPHP_OPERATOR;
                                styler.ColourTo(i - 1, SCE_HPHP_NUMBER);
                                if (isoperator(ch))
                                        state = SCE_HPHP_OPERATOR;
@@ -1567,7 +1568,7 @@ static void ColouriseHyperTextDoc(unsigned int startPos, int length, int initSty
                case SCE_HPHP_OPERATOR:
                case SCE_HPHP_DEFAULT:
                        styler.ColourTo(i - 1, StateToPrint);
                case SCE_HPHP_OPERATOR:
                case SCE_HPHP_DEFAULT:
                        styler.ColourTo(i - 1, StateToPrint);
-                       if (IsADigit(ch)) {
+                       if (IsADigit(ch) || (ch == '.' && IsADigit(chNext))) {
                                state = SCE_HPHP_NUMBER;
                        } else if (iswordstart(ch)) {
                                state = SCE_HPHP_WORD;
                                state = SCE_HPHP_NUMBER;
                        } else if (iswordstart(ch)) {
                                state = SCE_HPHP_WORD;
index 9cd5433c89630299cb796c5b1c9b464464483b62..549b573e2ed3275a31d97e9a5d1dfdbdadd7d01a 100644 (file)
@@ -66,9 +66,6 @@ static void ColouriseLispDoc(unsigned int startPos, int length, int initStyle, W
        styler.StartAt(startPos);
 
        int state = initStyle;
        styler.StartAt(startPos);
 
        int state = initStyle;
-       if (state == SCE_LISP_STRINGEOL)        // Does not leak onto next line
-               state = SCE_LISP_DEFAULT;
-       char chPrev = ' ';
        char chNext = styler[startPos];
        unsigned int lengthDoc = startPos + length;
        styler.StartSegment(startPos);
        char chNext = styler[startPos];
        unsigned int lengthDoc = startPos + length;
        styler.StartSegment(startPos);
@@ -77,19 +74,9 @@ static void ColouriseLispDoc(unsigned int startPos, int length, int initStyle, W
                chNext = styler.SafeGetCharAt(i + 1);
 
                bool atEOL = (ch == '\r' && chNext != '\n') || (ch == '\n');
                chNext = styler.SafeGetCharAt(i + 1);
 
                bool atEOL = (ch == '\r' && chNext != '\n') || (ch == '\n');
-               if (atEOL) {
-                       // Trigger on CR only (Mac style) or either on LF from CR+LF (Dos/Win) or on LF alone (Unix)
-                       // Avoid triggering two times on Dos/Win
-                       // End of line
-                       if (state == SCE_LISP_STRINGEOL) {
-                               styler.ColourTo(i, state);
-                               state = SCE_LISP_DEFAULT;
-                       }
-               }
 
                if (styler.IsLeadByte(ch)) {
                        chNext = styler.SafeGetCharAt(i + 2);
 
                if (styler.IsLeadByte(ch)) {
                        chNext = styler.SafeGetCharAt(i + 2);
-                       chPrev = ' ';
                        i += 1;
                        continue;
                }
                        i += 1;
                        continue;
                }
@@ -107,9 +94,9 @@ static void ColouriseLispDoc(unsigned int startPos, int length, int initStyle, W
                                styler.ColourTo(i - 1, state);
                                styler.ColourTo(i, SCE_LISP_OPERATOR);
                        }
                                styler.ColourTo(i - 1, state);
                                styler.ColourTo(i, SCE_LISP_OPERATOR);
                        }
-
                        else if (ch == '\"') {
                        else if (ch == '\"') {
-                                       state = SCE_LISP_STRING;
+                               styler.ColourTo(i - 1, state);
+                               state = SCE_LISP_STRING;
                        }
                } else if (state == SCE_LISP_IDENTIFIER) {
                        if (!isLispwordstart(ch)) {
                        }
                } else if (state == SCE_LISP_IDENTIFIER) {
                        if (!isLispwordstart(ch)) {
@@ -131,20 +118,15 @@ static void ColouriseLispDoc(unsigned int startPos, int length, int initStyle, W
                                if (ch == '\\') {
                                        if (chNext == '\"' || chNext == '\'' || chNext == '\\') {
                                                i++;
                                if (ch == '\\') {
                                        if (chNext == '\"' || chNext == '\'' || chNext == '\\') {
                                                i++;
-                                               ch = chNext;
                                                chNext = styler.SafeGetCharAt(i + 1);
                                        }
                                } else if (ch == '\"') {
                                        styler.ColourTo(i, state);
                                        state = SCE_LISP_DEFAULT;
                                                chNext = styler.SafeGetCharAt(i + 1);
                                        }
                                } else if (ch == '\"') {
                                        styler.ColourTo(i, state);
                                        state = SCE_LISP_DEFAULT;
-                               } else if ((chNext == '\r' || chNext == '\n') && (chPrev != '\\')) {
-                                       styler.ColourTo(i - 1, SCE_LISP_STRINGEOL);
-                                       state = SCE_LISP_STRINGEOL;
                                }
                        }
                }
 
                                }
                        }
                }
 
-               chPrev = ch;
        }
        styler.ColourTo(lengthDoc - 1, state);
 }
        }
        styler.ColourTo(lengthDoc - 1, state);
 }
index 3781eed83af5877c6dd18df13cdbe9a337526b07..3e4b25cb5e9acb3c600b0077ef09545673d0e900 100644 (file)
@@ -138,7 +138,7 @@ static void ColouriseLuaDoc(
                                sc.SetState(SCE_LUA_DEFAULT);
                        }
                } else if (sc.state == SCE_LUA_IDENTIFIER) {
                                sc.SetState(SCE_LUA_DEFAULT);
                        }
                } else if (sc.state == SCE_LUA_IDENTIFIER) {
-                       if (!IsAWordChar(sc.ch)) {
+                       if (!IsAWordChar(sc.ch) || sc.Match('.', '.')) {
                                char s[100];
                                sc.GetCurrent(s, sizeof(s));
                                if (keywords.InList(s)) {
                                char s[100];
                                sc.GetCurrent(s, sizeof(s));
                                if (keywords.InList(s)) {
index 1681ba5d4a6bd38c218d4ea4ad68cf1a90795d4b..f777e300fa24ec132a68137cc899bc81762a8a62 100644 (file)
@@ -330,6 +330,7 @@ static void FoldPropsDoc(unsigned int startPos, int length, int, WordList *[], A
        char chNext = styler[startPos];
        int styleNext = styler.StyleAt(startPos);
        bool headerPoint = false;
        char chNext = styler[startPos];
        int styleNext = styler.StyleAt(startPos);
        bool headerPoint = false;
+       int lev;
 
        for (unsigned int i = startPos; i < endPos; i++) {
                char ch = chNext;
 
        for (unsigned int i = startPos; i < endPos; i++) {
                char ch = chNext;
@@ -339,21 +340,32 @@ static void FoldPropsDoc(unsigned int startPos, int length, int, WordList *[], A
                styleNext = styler.StyleAt(i + 1);
                bool atEOL = (ch == '\r' && chNext != '\n') || (ch == '\n');
 
                styleNext = styler.StyleAt(i + 1);
                bool atEOL = (ch == '\r' && chNext != '\n') || (ch == '\n');
 
-               if (style==2) {
+               if (style == SCE_PROPS_SECTION) {
                        headerPoint = true;
                }
 
                if (atEOL) {
                        headerPoint = true;
                }
 
                if (atEOL) {
-                       int lev = SC_FOLDLEVELBASE+1;
-                       if (headerPoint)
-                               lev = SC_FOLDLEVELBASE;
+                       lev = SC_FOLDLEVELBASE;
+
+                       if (lineCurrent > 0) {
+                               int levelPrevious = styler.LevelAt(lineCurrent - 1);
 
 
+                               if (levelPrevious & SC_FOLDLEVELHEADERFLAG) {
+                                       lev = SC_FOLDLEVELBASE + 1;
+                               } else {
+                                       lev = levelPrevious & SC_FOLDLEVELNUMBERMASK;
+                               }
+                       }
+
+                       if (headerPoint) {
+                               lev = SC_FOLDLEVELBASE;
+                       }
                        if (visibleChars == 0 && foldCompact)
                                lev |= SC_FOLDLEVELWHITEFLAG;
 
                        if (visibleChars == 0 && foldCompact)
                                lev |= SC_FOLDLEVELWHITEFLAG;
 
-                       if (headerPoint)
+                       if (headerPoint) {
                                lev |= SC_FOLDLEVELHEADERFLAG;
                                lev |= SC_FOLDLEVELHEADERFLAG;
-
+                       }
                        if (lev != styler.LevelAt(lineCurrent)) {
                                styler.SetLevel(lineCurrent, lev);
                        }
                        if (lev != styler.LevelAt(lineCurrent)) {
                                styler.SetLevel(lineCurrent, lev);
                        }
@@ -366,9 +378,18 @@ static void FoldPropsDoc(unsigned int startPos, int length, int, WordList *[], A
                        visibleChars++;
        }
 
                        visibleChars++;
        }
 
-       int lev = headerPoint ? SC_FOLDLEVELBASE : SC_FOLDLEVELBASE+1;
-       int flagsNext = styler.LevelAt(lineCurrent) & ~SC_FOLDLEVELNUMBERMASK;
-       styler.SetLevel(lineCurrent, lev | flagsNext);
+       if (lineCurrent > 0) {
+               int levelPrevious = styler.LevelAt(lineCurrent - 1);
+               if (levelPrevious & SC_FOLDLEVELHEADERFLAG) {
+                       lev = SC_FOLDLEVELBASE + 1;
+               } else {
+                       lev = levelPrevious & SC_FOLDLEVELNUMBERMASK;
+               }
+       } else {
+               lev = SC_FOLDLEVELBASE;
+       }
+       int flagsNext = styler.LevelAt(lineCurrent);
+       styler.SetLevel(lineCurrent, lev | flagsNext & ~SC_FOLDLEVELNUMBERMASK);
 }
 
 static void ColouriseMakeLine(
 }
 
 static void ColouriseMakeLine(
@@ -523,6 +544,15 @@ static void ColouriseErrorListLine(
                strstr(lineBuffer, ", file ")) {
                // Essential Lahey Fortran error message
                styler.ColourTo(endPos, SCE_ERR_ELF);
                strstr(lineBuffer, ", file ")) {
                // Essential Lahey Fortran error message
                styler.ColourTo(endPos, SCE_ERR_ELF);
+       } else if (strstart(lineBuffer, "line ") &&
+                      strstr(lineBuffer, " column ")) {
+               // HTML tidy style: line 42 column 1
+               styler.ColourTo(endPos, SCE_ERR_TIDY);
+       } else if (strstart(lineBuffer, "\tat ") &&
+               strstr(lineBuffer, "(") &&
+               strstr(lineBuffer, ".java:")) {
+               // Java stack back trace
+               styler.ColourTo(endPos, SCE_ERR_JAVA_STACK);
        } else {
                // Look for GCC <filename>:<line>:message
                // Look for Microsoft <filename>(line) :message
        } else {
                // Look for GCC <filename>:<line>:message
                // Look for Microsoft <filename>(line) :message
index 775b5587257d750d34c214e05f6e1332b6b8f0d1..7878a6bf8f0667414782da52b28dc043f70ad1fc 100644 (file)
@@ -3,10 +3,32 @@
 // Lexer for PowerBasic by Roland Walter, roland@rowalt.de (for PowerBasic see www.powerbasic.com)
 //
 // Changes:
 // Lexer for PowerBasic by Roland Walter, roland@rowalt.de (for PowerBasic see www.powerbasic.com)
 //
 // Changes:
-// 17.10.2003 Toggling of subs/functions now until next sub/function - this gives better results
-// 29.10.2003 1. Bug: Toggling didn't work for subs/functions added in editor
-//            2. Own colors for PB constants and Inline Assembler SCE_B_CONSTANT and SCE_B_ASM
-//            3. Several smaller syntax coloring improvements and speed optimizations
+// 17.10.2003: Toggling of subs/functions now until next sub/function - this gives better results
+// 29.10.2003: 1. Bug: Toggling didn't work for subs/functions added in editor
+//             2. Own colors for PB constants and Inline Assembler SCE_B_CONSTANT and SCE_B_ASM
+//             3. Several smaller syntax coloring improvements and speed optimizations
+// 12.07.2004: 1. Toggling for macros added
+//             2. Further folding speed optimitations (for people dealing with very large listings)
+//
+// Necessary changes for the PB lexer in Scintilla project:
+//  - In SciLexer.h and Scintilla.iface:
+//
+//    #define SCLEX_POWERBASIC 51       //ID for PowerBasic lexer
+//    (...)
+//    #define SCE_B_DEFAULT 0           //in both VB and PB lexer
+//    #define SCE_B_COMMENT 1           //in both VB and PB lexer
+//    #define SCE_B_NUMBER 2            //in both VB and PB lexer
+//    #define SCE_B_KEYWORD 3           //in both VB and PB lexer
+//    #define SCE_B_STRING 4            //in both VB and PB lexer
+//    #define SCE_B_PREPROCESSOR 5      //VB lexer only, not in PB lexer
+//    #define SCE_B_OPERATOR 6          //in both VB and PB lexer
+//    #define SCE_B_IDENTIFIER 7        //in both VB and PB lexer
+//    #define SCE_B_DATE 8              //VB lexer only, not in PB lexer
+//    #define SCE_B_CONSTANT 13         //PB lexer only, not in VB lexer
+//    #define SCE_B_ASM 14              //PB lexer only, not in VB lexer
+
+//  - Statement added to KeyWords.cxx:      'LINK_LEXER(lmPB);'
+//  - Statement added to scintilla_vc6.mak: '$(DIR_O)\LexPB.obj: ...\src\LexPB.cxx $(LEX_HEADERS)'
 //
 // Copyright for Scintilla: 1998-2001 by Neil Hodgson <neilh@scintilla.org>
 // The License.txt file describes the conditions under which this software may be distributed.
 //
 // Copyright for Scintilla: 1998-2001 by Neil Hodgson <neilh@scintilla.org>
 // The License.txt file describes the conditions under which this software may be distributed.
@@ -171,6 +193,8 @@ static void FoldPBDoc(unsigned int startPos, int length, int, WordList *[], Acce
     char chNext = styler[startPos];
 
     bool fNewLine=true;
     char chNext = styler[startPos];
 
     bool fNewLine=true;
+    bool fMightBeMultiLineMacro=false;
+    bool fBeginOfCommentFound=false;
     for (unsigned int i = startPos; i < endPos; i++)
     {
         char ch = chNext;
     for (unsigned int i = startPos; i < endPos; i++)
     {
         char ch = chNext;
@@ -179,10 +203,11 @@ static void FoldPBDoc(unsigned int startPos, int length, int, WordList *[], Acce
         if (fNewLine)            //Begin of a new line (The Sub/Function/Macro keywords may occur at begin of line only)
         {
             fNewLine=false;
         if (fNewLine)            //Begin of a new line (The Sub/Function/Macro keywords may occur at begin of line only)
         {
             fNewLine=false;
-
+            fBeginOfCommentFound=false;
             switch (ch)
             {
             switch (ch)
             {
-            case ' ':      //Most lines start with space - so check this first
+            case ' ':      //Most lines start with space - so check this first, the code is the same as for 'default:'
+            case '\t':     //Handle tab too
                 {
                     int levelUse = levelCurrent;
                     int lev = levelUse | levelNext << 16;
                 {
                     int levelUse = levelCurrent;
                     int lev = levelUse | levelNext << 16;
@@ -190,37 +215,89 @@ static void FoldPBDoc(unsigned int startPos, int length, int, WordList *[], Acce
                     break;
                 }
             case 'F':
                     break;
                 }
             case 'F':
-            case 'S':
-            case 'C':
             case 'f':
             case 'f':
+                {
+                                       switch (chNext)
+                                       {
+                    case 'U':
+                    case 'u':
+                                               {
+                                                       if( MatchUpperCase(styler,i,"FUNCTION") )
+                                                       {
+                                                               styler.SetLevel(lineCurrent, (SC_FOLDLEVELBASE << 16) | SC_FOLDLEVELHEADERFLAG);
+                                                               levelNext=SC_FOLDLEVELBASE+1;
+                                                       }
+                                                       break;
+                                               }
+                                       }
+                break;
+                }
+            case 'S':
             case 's':
             case 's':
+                {
+                                       switch (chNext)
+                                       {
+                    case 'U':
+                    case 'u':
+                                               {
+                                                       if( MatchUpperCase(styler,i,"SUB") )
+                                                       {
+                                                               styler.SetLevel(lineCurrent, (SC_FOLDLEVELBASE << 16) | SC_FOLDLEVELHEADERFLAG);
+                                                               levelNext=SC_FOLDLEVELBASE+1;
+                                                       }
+                                                       break;
+                                               }
+                    case 'T':
+                    case 't':
+                                               {
+                                                       if( MatchUpperCase(styler,i,"STATIC FUNCTION") )
+                                                       {
+                                                               styler.SetLevel(lineCurrent, (SC_FOLDLEVELBASE << 16) | SC_FOLDLEVELHEADERFLAG);
+                                                               levelNext=SC_FOLDLEVELBASE+1;
+                                                       }
+                                                       else if( MatchUpperCase(styler,i,"STATIC SUB") )
+                                                       {
+                                                               styler.SetLevel(lineCurrent, (SC_FOLDLEVELBASE << 16) | SC_FOLDLEVELHEADERFLAG);
+                                                               levelNext=SC_FOLDLEVELBASE+1;
+                                                       }
+                                                       break;
+                                               }
+                                       }
+                break;
+                }
+            case 'C':
             case 'c':
                 {
             case 'c':
                 {
-                    if( MatchUpperCase(styler,i,"FUNCTION") )
-                    {
-                        styler.SetLevel(lineCurrent, (SC_FOLDLEVELBASE << 16) | SC_FOLDLEVELHEADERFLAG);
-                        levelNext=SC_FOLDLEVELBASE+1;
-                    }
-                else if( MatchUpperCase(styler,i,"SUB") )
-                    {
-                        styler.SetLevel(lineCurrent, (SC_FOLDLEVELBASE << 16) | SC_FOLDLEVELHEADERFLAG);
-                        levelNext=SC_FOLDLEVELBASE+1;
-                    }
-                else if( MatchUpperCase(styler,i,"CALLBACK FUNCTION") )
-                    {
-                        styler.SetLevel(lineCurrent, (SC_FOLDLEVELBASE << 16) | SC_FOLDLEVELHEADERFLAG);
-                        levelNext=SC_FOLDLEVELBASE+1;
-                    }
-                else if( MatchUpperCase(styler,i,"STATIC FUNCTION") )
-                    {
-                        styler.SetLevel(lineCurrent, (SC_FOLDLEVELBASE << 16) | SC_FOLDLEVELHEADERFLAG);
-                        levelNext=SC_FOLDLEVELBASE+1;
-                    }
-                else if( MatchUpperCase(styler,i,"STATIC SUB") )
-                    {
-                        styler.SetLevel(lineCurrent, (SC_FOLDLEVELBASE << 16) | SC_FOLDLEVELHEADERFLAG);
-                        levelNext=SC_FOLDLEVELBASE+1;
-                    }
+                                       switch (chNext)
+                                       {
+                    case 'A':
+                    case 'a':
+                                               {
+                                                       if( MatchUpperCase(styler,i,"CALLBACK FUNCTION") )
+                                                       {
+                                                               styler.SetLevel(lineCurrent, (SC_FOLDLEVELBASE << 16) | SC_FOLDLEVELHEADERFLAG);
+                                                               levelNext=SC_FOLDLEVELBASE+1;
+                                                       }
+                                                       break;
+                                               }
+                                       }
+                break;
+                }
+            case 'M':
+            case 'm':
+                {
+                                       switch (chNext)
+                                       {
+                    case 'A':
+                    case 'a':
+                                               {
+                                                       if( MatchUpperCase(styler,i,"MACRO") )
+                                                       {
+                                                               fMightBeMultiLineMacro=true;  //Set folder level at end of line, we have to check for single line macro
+                                                       }
+                                                       break;
+                                               }
+                                       }
                 break;
                 }
             default:
                 break;
                 }
             default:
@@ -235,8 +312,25 @@ static void FoldPBDoc(unsigned int startPos, int length, int, WordList *[], Acce
 
         switch (ch)
         {
 
         switch (ch)
         {
+            case '=':                              //To test single line macros
+            {
+                if (fBeginOfCommentFound==false)
+                    fMightBeMultiLineMacro=false;  //The found macro is a single line macro only;
+                break;
+            }
+            case '\'':                             //A comment starts
+            {
+                fBeginOfCommentFound=true;
+                break;
+            }
             case '\n':
             {
             case '\n':
             {
+                if (fMightBeMultiLineMacro)        //The current line is the begin of a multi line macro
+                {
+                    fMightBeMultiLineMacro=false;
+                    styler.SetLevel(lineCurrent, (SC_FOLDLEVELBASE << 16) | SC_FOLDLEVELHEADERFLAG);
+                    levelNext=SC_FOLDLEVELBASE+1;
+                }
                 lineCurrent++;
                 levelCurrent = levelNext;
                 fNewLine=true;
                 lineCurrent++;
                 levelCurrent = levelNext;
                 fNewLine=true;
index d4d4f46fedb436e41403995919a5abf698c39725..e13c6220d9c40be7efed0ef868639367a557ea5d 100644 (file)
@@ -265,7 +265,8 @@ static void ColourisePyDoc(unsigned int startPos, int length, int initStyle,
                        } else if (IsPyStringStart(sc.ch, sc.chNext, sc.GetRelative(2))) {
                                unsigned int nextIndex = 0;
                                sc.SetState(GetPyStringState(styler, sc.currentPos, &nextIndex));
                        } else if (IsPyStringStart(sc.ch, sc.chNext, sc.GetRelative(2))) {
                                unsigned int nextIndex = 0;
                                sc.SetState(GetPyStringState(styler, sc.currentPos, &nextIndex));
-                               while (nextIndex > (sc.currentPos + 1) && sc.More()) {                                  sc.Forward();
+                               while (nextIndex > (sc.currentPos + 1) && sc.More()) {
+                                       sc.Forward();
                                }
                        } else if (IsAWordStart(sc.ch)) {
                                sc.SetState(SCE_P_IDENTIFIER);
                                }
                        } else if (IsAWordStart(sc.ch)) {
                                sc.SetState(SCE_P_IDENTIFIER);
diff --git a/src/stc/scintilla/src/LexVHDL.cxx b/src/stc/scintilla/src/LexVHDL.cxx
new file mode 100644 (file)
index 0000000..0feef95
--- /dev/null
@@ -0,0 +1,473 @@
+// Scintilla source code edit control
+/** @file LexVHDL.cxx
+ ** Lexer for VHDL
+ ** Written by Phil Reid, 
+ ** Based on:
+ **  - The Verilog Lexer by Avi Yegudin 
+ **  - The Fortran Lexer by Chuan-jian Shen
+ **  - The C++ lexer by Neil Hodgson
+ **/
+// Copyright 1998-2002 by Neil Hodgson <neilh@scintilla.org>
+// The License.txt file describes the conditions under which this software may be distributed.
+
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <stdio.h>
+#include <stdarg.h>
+
+#include "Platform.h"
+
+#include "PropSet.h"
+#include "Accessor.h"
+#include "StyleContext.h"
+#include "KeyWords.h"
+#include "Scintilla.h"
+#include "SciLexer.h"
+
+static void ColouriseVHDLDoc(
+  unsigned int startPos,
+  int length,
+  int initStyle,
+  WordList *keywordlists[],
+  Accessor &styler);
+
+
+/***************************************/
+static inline bool IsAWordChar(const int ch) {
+  return (ch < 0x80) && (isalnum(ch) || ch == '.' || ch == '_' );
+}
+
+/***************************************/
+static inline bool IsAWordStart(const int ch) {
+  return (ch < 0x80) && (isalnum(ch) || ch == '_');
+}
+
+/***************************************/
+inline bool IsABlank(unsigned int ch) {
+    return (ch == ' ') || (ch == 0x09) || (ch == 0x0b) ;
+}
+
+/***************************************/
+static void ColouriseVHDLDoc(
+  unsigned int startPos,
+  int length,
+  int initStyle,
+  WordList *keywordlists[],
+  Accessor &styler)
+{
+  WordList &Keywords   = *keywordlists[0];
+  WordList &Operators  = *keywordlists[1];
+  WordList &Attributes = *keywordlists[2];
+  WordList &Functions  = *keywordlists[3];
+  WordList &Packages   = *keywordlists[4];
+  WordList &Types      = *keywordlists[5];
+  WordList &User       = *keywordlists[6];
+
+  StyleContext sc(startPos, length, initStyle, styler);
+
+  for (; sc.More(); sc.Forward())
+  {
+
+    // Determine if the current state should terminate.
+    if (sc.state == SCE_VHDL_OPERATOR) {
+      sc.SetState(SCE_VHDL_DEFAULT);
+    } else if (sc.state == SCE_VHDL_NUMBER) {
+      if (!IsAWordChar(sc.ch) && (sc.ch != '#')) {
+        sc.SetState(SCE_VHDL_DEFAULT);
+      }
+    } else if (sc.state == SCE_VHDL_IDENTIFIER) {
+      if (!IsAWordChar(sc.ch) || (sc.ch == '.')) {
+        char s[100];
+        sc.GetCurrentLowered(s, sizeof(s));
+        if (Keywords.InList(s)) {
+          sc.ChangeState(SCE_VHDL_KEYWORD);
+        } else if (Operators.InList(s)) {
+          sc.ChangeState(SCE_VHDL_STDOPERATOR);
+        } else if (Attributes.InList(s)) {
+          sc.ChangeState(SCE_VHDL_ATTRIBUTE);
+        } else if (Functions.InList(s)) {
+          sc.ChangeState(SCE_VHDL_STDFUNCTION);
+        } else if (Packages.InList(s)) {
+          sc.ChangeState(SCE_VHDL_STDPACKAGE);
+        } else if (Types.InList(s)) {
+          sc.ChangeState(SCE_VHDL_STDTYPE);
+        } else if (User.InList(s)) {
+          sc.ChangeState(SCE_VHDL_USERWORD);
+        }
+        sc.SetState(SCE_VHDL_DEFAULT);
+      }
+    } else if (sc.state == SCE_VHDL_COMMENT || sc.state == SCE_V_COMMENTLINEBANG) {
+      if (sc.atLineEnd) {
+        sc.SetState(SCE_VHDL_DEFAULT);
+      }
+    } else if (sc.state == SCE_VHDL_STRING) {
+      if (sc.ch == '\\') {
+        if (sc.chNext == '\"' || sc.chNext == '\'' || sc.chNext == '\\') {
+          sc.Forward();
+        }
+      } else if (sc.ch == '\"') {
+        sc.ForwardSetState(SCE_VHDL_DEFAULT);
+      } else if (sc.atLineEnd) {
+        sc.ChangeState(SCE_V_STRINGEOL);
+        sc.ForwardSetState(SCE_VHDL_DEFAULT);
+      }
+    }
+
+    // Determine if a new state should be entered.
+    if (sc.state == SCE_VHDL_DEFAULT) {
+      if (IsADigit(sc.ch) || (sc.ch == '.' && IsADigit(sc.chNext))) {
+        sc.SetState(SCE_VHDL_NUMBER);
+      } else if (IsAWordStart(sc.ch)) {
+        sc.SetState(SCE_VHDL_IDENTIFIER);
+      } else if (sc.Match('-', '-')) {
+        sc.SetState(SCE_VHDL_COMMENT);
+        sc.Forward(); 
+      } else if (sc.Match('-', '-')) {
+        if (sc.Match("--!"))  // Nice to have a different comment style
+          sc.SetState(SCE_VHDL_COMMENTLINEBANG);
+        else
+          sc.SetState(SCE_VHDL_COMMENT);
+      } else if (sc.ch == '\"') {
+        sc.SetState(SCE_VHDL_STRING);
+      } else if (isoperator(static_cast<char>(sc.ch))) {
+        sc.SetState(SCE_VHDL_OPERATOR);
+      }
+    }
+  }
+  sc.Complete();
+}
+//=============================================================================
+static bool IsCommentLine(int line, Accessor &styler) {
+       int pos = styler.LineStart(line);
+       int eol_pos = styler.LineStart(line + 1) - 1;
+       for (int i = pos; i < eol_pos; i++) {
+               char ch = styler[i];
+               char chNext = styler[i+1];
+               if ((ch == '-') && (chNext == '-'))
+                       return true;
+               else if (ch != ' ' && ch != '\t')
+                       return false;
+       }
+       return false;
+}
+
+//=============================================================================
+// Folding the code
+static void FoldNoBoxVHDLDoc(
+  unsigned int startPos,
+  int length,
+  int initStyle,
+  Accessor &styler)
+{
+  // Decided it would be smarter to have the lexer have all keywords included. Therefore I
+  // don't check if the style for the keywords that I use to adjust the levels.
+  char words[] =
+    "architecture begin case component else elsif end entity generate loop package process record then "
+    "procedure function when";
+  WordList keywords;
+  keywords.Set(words);
+
+  bool foldComment      = styler.GetPropertyInt("fold.comment", 1) != 0;
+  bool foldCompact      = styler.GetPropertyInt("fold.compact", 1) != 0;
+  bool foldAtElse       = styler.GetPropertyInt("fold.at.else", 1) != 0;
+  bool foldAtBegin      = styler.GetPropertyInt("fold.at.Begin", 1) != 0;
+  bool foldAtParenthese = styler.GetPropertyInt("fold.at.Parenthese", 1) != 0;
+  //bool foldAtWhen       = styler.GetPropertyInt("fold.at.When", 1) != 0;  //< fold at when in case statements
+
+  int  visibleChars     = 0;
+  unsigned int endPos   = startPos + length;
+
+  int lineCurrent       = styler.GetLine(startPos);
+  int levelCurrent      = SC_FOLDLEVELBASE;
+  if(lineCurrent > 0)
+    levelCurrent        = styler.LevelAt(lineCurrent-1) >> 16;
+  //int levelMinCurrent   = levelCurrent;
+  int levelMinCurrentElse = levelCurrent;   //< Used for folding at 'else'
+  int levelMinCurrentBegin = levelCurrent;  //< Used for folding at 'begin'
+  int levelNext         = levelCurrent;
+
+  /***************************************/
+  int lastStart         = 0;
+  char prevWord[32]     = "";
+
+  /***************************************/
+  // Find prev word
+  // The logic for going up or down a level depends on a the previous keyword
+  // This code could be cleaned up.
+  int end = 0;
+  unsigned int j;
+  for(j = startPos; j>0; j--)
+  {
+    char ch       = styler.SafeGetCharAt(j);
+    char chPrev   = styler.SafeGetCharAt(j-1);
+    int style     = styler.StyleAt(j);
+    int stylePrev = styler.StyleAt(j-1);
+    if ((stylePrev != SCE_VHDL_COMMENT) && (stylePrev != SCE_VHDL_STRING))
+    {
+      if(IsAWordChar(chPrev) && !IsAWordChar(ch))
+      {
+        end = j-1;
+      }
+    }
+    if ((style != SCE_VHDL_COMMENT) && (style != SCE_VHDL_STRING))
+    {
+      if(!IsAWordChar(chPrev) && IsAWordStart(ch) && (end != 0))
+      {
+        char s[32];
+        unsigned int k;
+        for(k=0; (k<31 ) && (k<end-j+1 ); k++) {
+          s[k] = static_cast<char>(tolower(styler[j+k]));
+        }
+        s[k] = '\0';
+
+        if(keywords.InList(s)) {
+          strcpy(prevWord, s);
+          break;
+        }
+      }
+    }
+  }
+  for(j=j+strlen(prevWord); j<endPos; j++)
+  {
+    char ch       = styler.SafeGetCharAt(j);
+    int style     = styler.StyleAt(j);
+    if ((style != SCE_VHDL_COMMENT) && (style != SCE_VHDL_STRING))
+    {
+      if((ch == ';') && (strcmp(prevWord, "end") == 0))
+      {
+        strcpy(prevWord, ";");
+      }
+    }
+  }
+
+  char  chNext          = styler[startPos];
+  char  chPrev          = '\0';
+  char  chNextNonBlank;
+  int   styleNext       = styler.StyleAt(startPos);
+  int   style           = initStyle;
+  //Platform::DebugPrintf("Line[%04d] Prev[%20s] ************************* Level[%x]\n", lineCurrent+1, prevWord, levelCurrent);
+
+  /***************************************/
+  for (unsigned int i = startPos; i < endPos; i++)
+  {
+    char ch         = chNext;
+    chNext          = styler.SafeGetCharAt(i + 1);
+    chPrev          = styler.SafeGetCharAt(i - 1);
+    chNextNonBlank  = chNext;
+    unsigned int j  = i+1;
+    while(IsABlank(chNextNonBlank) && j<endPos)
+    {
+      j ++ ;
+      chNextNonBlank = styler.SafeGetCharAt(j);
+    }
+    style           = styleNext;
+    styleNext       = styler.StyleAt(i + 1);
+    bool atEOL      = (ch == '\r' && chNext != '\n') || (ch == '\n');
+
+               if (foldComment && atEOL && IsCommentLine(lineCurrent, styler)) 
+    {
+      if(!IsCommentLine(lineCurrent-1, styler) && IsCommentLine(lineCurrent+1, styler))
+      {
+        levelNext++;
+      } 
+      else if(IsCommentLine(lineCurrent-1, styler) && !IsCommentLine(lineCurrent+1, styler))
+      {
+        levelNext--;
+      }
+    }
+
+    if ((style == SCE_VHDL_OPERATOR) && foldAtParenthese)
+    {
+      if(ch == '(') {
+        levelNext++;
+      } else if (ch == ')') {
+        levelNext--;
+      }
+    }
+
+    if ((style != SCE_VHDL_COMMENT) && (style != SCE_VHDL_STRING))
+    {
+      if((ch == ';') && (strcmp(prevWord, "end") == 0))
+      {
+        strcpy(prevWord, ";");
+      }
+
+      if(!IsAWordChar(chPrev) && IsAWordStart(ch))
+      {
+        lastStart = i;
+      }
+
+      if(iswordchar(ch) && !iswordchar(chNext)) {
+        char s[32];
+        unsigned int k;
+        for(k=0; (k<31 ) && (k<i-lastStart+1 ); k++) {
+          s[k] = static_cast<char>(tolower(styler[lastStart+k]));
+        }
+        s[k] = '\0';
+
+        if(keywords.InList(s))
+        {
+          if (
+            strcmp(s, "architecture") == 0  ||
+            strcmp(s, "case") == 0          ||
+            strcmp(s, "component") == 0     ||
+            strcmp(s, "entity") == 0        ||
+            strcmp(s, "generate") == 0      ||
+            strcmp(s, "loop") == 0          ||
+            strcmp(s, "package") ==0        ||
+            strcmp(s, "process") == 0       ||
+            strcmp(s, "record") == 0        ||
+            strcmp(s, "then") == 0)
+          {
+            if (strcmp(prevWord, "end") != 0)
+            {
+              if (levelMinCurrentElse > levelNext) {
+                levelMinCurrentElse = levelNext;
+              }
+              levelNext++;
+            }
+          } else if (
+            strcmp(s, "procedure") == 0     ||
+            strcmp(s, "function") == 0)
+          {
+            if (strcmp(prevWord, "end") != 0) // check for "end procedure" etc.
+            { // This code checks to see if the procedure / function is a definition within a "package"
+              // rather than the actual code in the body.
+              int BracketLevel = 0;
+              for(int j=i+1; j<styler.Length(); j++)
+              {
+                int LocalStyle = styler.StyleAt(j);
+                char LocalCh = styler.SafeGetCharAt(j);
+                if(LocalCh == '(') BracketLevel++;
+                if(LocalCh == ')') BracketLevel--;
+                if(
+                  (BracketLevel == 0) &&
+                  (LocalStyle != SCE_VHDL_COMMENT) &&
+                  (LocalStyle != SCE_VHDL_STRING) &&
+                  !iswordchar(styler.SafeGetCharAt(j-1)) &&
+                  styler.Match(j, "is") &&
+                  !iswordchar(styler.SafeGetCharAt(j+2)))
+                {
+                  if (levelMinCurrentElse > levelNext) {
+                    levelMinCurrentElse = levelNext;
+                  }
+                  levelNext++;
+                  break;
+                }
+                if((BracketLevel == 0) && (LocalCh == ';'))
+                {
+                  break;
+                }
+              }
+            }
+
+          } else if (strcmp(s, "end") == 0) {
+            levelNext--;
+          }  else if(strcmp(s, "elsif") == 0) { // elsif is followed by then so folding occurs correctly
+            levelNext--;
+          } else if (strcmp(s, "else") == 0) {
+            if(strcmp(prevWord, "when") != 0)  // ignore a <= x when y else z;
+            {
+              levelMinCurrentElse = levelNext - 1;  // VHDL else is all on its own so just dec. the min level
+            }
+          } else if(
+            ((strcmp(s, "begin") == 0) && (strcmp(prevWord, "architecture") == 0)) ||
+            ((strcmp(s, "begin") == 0) && (strcmp(prevWord, "function") == 0)) ||
+            ((strcmp(s, "begin") == 0) && (strcmp(prevWord, "procedure") == 0)))
+          {
+            levelMinCurrentBegin = levelNext - 1;  
+          }
+          //Platform::DebugPrintf("Line[%04d] Prev[%20s] Cur[%20s] Level[%x]\n", lineCurrent+1, prevWord, s, levelCurrent);
+          strcpy(prevWord, s);
+        }
+      }
+    }
+    if (atEOL) {
+      int levelUse = levelCurrent;
+
+      if (foldAtElse && (levelMinCurrentElse < levelUse)) {
+        levelUse = levelMinCurrentElse;
+      }
+      if (foldAtBegin && (levelMinCurrentBegin < levelUse)) {
+        levelUse = levelMinCurrentBegin;
+      }
+      int lev = levelUse | levelNext << 16;
+      if (visibleChars == 0 && foldCompact)
+        lev |= SC_FOLDLEVELWHITEFLAG;
+
+      if (levelUse < levelNext)
+        lev |= SC_FOLDLEVELHEADERFLAG;
+      if (lev != styler.LevelAt(lineCurrent)) {
+        styler.SetLevel(lineCurrent, lev);
+      }
+      //Platform::DebugPrintf("Line[%04d] ---------------------------------------------------- Level[%x]\n", lineCurrent+1, levelCurrent);
+      lineCurrent++;
+      levelCurrent = levelNext;
+      //levelMinCurrent = levelCurrent;
+      levelMinCurrentElse = levelCurrent;
+      levelMinCurrentBegin = levelCurrent;
+      visibleChars = 0;
+    }
+    /***************************************/
+    if (!isspacechar(ch)) visibleChars++;
+  }
+
+  /***************************************/
+//  Platform::DebugPrintf("Line[%04d] ---------------------------------------------------- Level[%x]\n", lineCurrent+1, levelCurrent);
+}
+
+//=============================================================================
+static void FoldVHDLDoc(unsigned int startPos, int length, int initStyle, WordList *[],
+                       Accessor &styler) {
+  FoldNoBoxVHDLDoc(startPos, length, initStyle, styler);
+}
+
+//=============================================================================
+static const char * const VHDLWordLists[] = {
+            "Keywords",
+            "Operators",
+            "Attributes",
+            "Standard Functions",
+            "Standard Packages",
+            "Standard Types",
+            "User Words",
+            0,
+        };
+
+
+LexerModule lmVHDL(SCLEX_VHDL, ColouriseVHDLDoc, "vhdl", FoldVHDLDoc, VHDLWordLists);
+
+
+// Keyword:
+//    access after alias all architecture array assert attribute begin block body buffer bus case component 
+//    configuration constant disconnect downto else elsif end entity exit file for function generate generic 
+//    group guarded if impure in inertial inout is label library linkage literal loop map new next null of 
+//    on open others out package port postponed procedure process pure range record register reject report 
+//    return select severity shared signal subtype then to transport type unaffected units until use variable 
+//    wait when while with
+//
+// Operators:
+//    abs and mod nand nor not or rem rol ror sla sll sra srl xnor xor
+//
+// Attributes:
+//    left right low high ascending image value pos val succ pred leftof rightof base range reverse_range 
+//    length delayed stable quiet transaction event active last_event last_active last_value driving 
+//    driving_value simple_name path_name instance_name
+//
+// Std Functions:
+//    now readline read writeline write endfile resolved to_bit to_bitvector to_stdulogic to_stdlogicvector 
+//    to_stdulogicvector to_x01 to_x01z to_UX01 rising_edge falling_edge is_x shift_left shift_right rotate_left 
+//    rotate_right resize to_integer to_unsigned to_signed std_match to_01
+//
+// Std Packages:
+//    std ieee work standard textio std_logic_1164 std_logic_arith std_logic_misc std_logic_signed 
+//    std_logic_textio std_logic_unsigned numeric_bit numeric_std math_complex math_real vital_primitives 
+//    vital_timing
+//
+// Std Types:
+//    boolean bit character severity_level integer real time delay_length natural positive string bit_vector 
+//    file_open_kind file_open_status line text side width std_ulogic std_ulogic_vector std_logic 
+//    std_logic_vector X01 X01Z UX01 UX01Z unsigned signed
+//
+
index d0a7f8b0f7f1c8ff6b69637e9a7d2aa7466d3b1f..1e9920d79c5a0400ef2f71d65f2c5acd99dcd182 100644 (file)
@@ -124,7 +124,7 @@ SString &SString::assign(const char *sOther, lenpos_t sSize_) {
                s = StringAllocate(sOther, sSize_);
                if (s) {
                        sSize = sSize_; // Allow buffer bigger than real string, thus providing space to grow
                s = StringAllocate(sOther, sSize_);
                if (s) {
                        sSize = sSize_; // Allow buffer bigger than real string, thus providing space to grow
-                       sLen = strlen(s);
+                       sLen = sSize_;
                } else {
                        sSize = sLen = 0;
                }
                } else {
                        sSize = sLen = 0;
                }
@@ -383,6 +383,33 @@ void PropSet::Set(const char *keyVal) {
        }
 }
 
        }
 }
 
+void PropSet::Unset(const char *key, int lenKey) {
+       if (!*key)      // Empty keys are not supported
+               return;
+       if (lenKey == -1)
+               lenKey = static_cast<int>(strlen(key));
+       unsigned int hash = HashString(key, lenKey);
+       Property *pPrev = NULL;
+       for (Property *p = props[hash % hashRoots]; p; p = p->next) {
+               if ((hash == p->hash) &&
+                       ((strlen(p->key) == static_cast<unsigned int>(lenKey)) &&
+                               (0 == strncmp(p->key, key, lenKey)))) {
+                       if (pPrev)
+                               pPrev->next = p->next;
+                       else
+                               props[hash % hashRoots] = p->next;
+                       if (p == enumnext)
+                               enumnext = p->next; // Not that anyone should mix enum and Set / Unset.
+                       delete [](p->key);
+                       delete [](p->val);
+                       delete p;
+                       return;
+               } else {
+                       pPrev = p;
+               }
+       }
+}
+
 void PropSet::SetMultiple(const char *s) {
        const char *eol = strchr(s, '\n');
        while (eol) {
 void PropSet::SetMultiple(const char *s) {
        const char *eol = strchr(s, '\n');
        while (eol) {
@@ -422,39 +449,71 @@ bool PropSet::IncludesVar(const char *value, const char *key) {
        return false;
 }
 
        return false;
 }
 
+
+// There is some inconsistency between GetExpanded("foo") and Expand("$(foo)").
+// A solution is to keep a stack of variables that have been expanded, so that
+// recursive expansions can be skipped.  For now I'll just use the C++ stack
+// for that, through a recursive function and a simple chain of pointers.
+
+struct VarChain {
+       VarChain(const char*var_=NULL, const VarChain *link_=NULL): var(var_), link(link_) {}
+
+       bool contains(const char *testVar) const {
+               return (var && (0 == strcmp(var, testVar))) 
+                       || (link && link->contains(testVar));
+       }
+
+       const char *var;
+       const VarChain *link;
+};
+
+static int ExpandAllInPlace(PropSet &props, SString &withVars, int maxExpands, const VarChain &blankVars = VarChain()) {
+       int varStart = withVars.search("$(");
+       while ((varStart >= 0) && (maxExpands > 0)) {
+               int varEnd = withVars.search(")", varStart+2);
+               if (varEnd < 0) {
+                       break;
+               }
+
+               // For consistency, when we see '$(ab$(cde))', expand the inner variable first,
+               // regardless whether there is actually a degenerate variable named 'ab$(cde'.
+               int innerVarStart = withVars.search("$(", varStart+2);
+               while ((innerVarStart > varStart) && (innerVarStart < varEnd)) {
+                       varStart = innerVarStart;
+                       innerVarStart = withVars.search("$(", varStart+2);
+               }
+
+               SString var(withVars.c_str(), varStart + 2, varEnd);
+               SString val = props.Get(var.c_str());
+
+               if (blankVars.contains(var.c_str())) {
+                       val.clear(); // treat blankVar as an empty string (e.g. to block self-reference)
+               }
+
+               if (--maxExpands >= 0) {
+                       maxExpands = ExpandAllInPlace(props, val, maxExpands, VarChain(var.c_str(), &blankVars));
+               }
+
+               withVars.remove(varStart, varEnd-varStart+1);
+               withVars.insert(varStart, val.c_str(), val.length());
+
+               varStart = withVars.search("$(");
+       }
+
+       return maxExpands;
+}
+
+
 SString PropSet::GetExpanded(const char *key) {
        SString val = Get(key);
 SString PropSet::GetExpanded(const char *key) {
        SString val = Get(key);
-       if (IncludesVar(val.c_str(), key))
-               return val;
-       return Expand(val.c_str());
+       ExpandAllInPlace(*this, val, 100, VarChain(key));
+       return val;
 }
 
 SString PropSet::Expand(const char *withVars, int maxExpands) {
 }
 
 SString PropSet::Expand(const char *withVars, int maxExpands) {
-       char *base = StringDup(withVars);
-       char *cpvar = strstr(base, "$(");
-       while (cpvar && (maxExpands > 0)) {
-               char *cpendvar = strchr(cpvar, ')');
-               if (!cpendvar)
-                       break;
-               int lenvar = cpendvar - cpvar - 2;      // Subtract the $()
-               char *var = StringDup(cpvar + 2, lenvar);
-               SString val = Get(var);
-               if (IncludesVar(val.c_str(), var))
-                       break;
-               size_t newlenbase = strlen(base) + val.length() - lenvar;
-               char *newbase = new char[newlenbase];
-               strncpy(newbase, base, cpvar - base);
-               strcpy(newbase + (cpvar - base), val.c_str());
-               strcpy(newbase + (cpvar - base) + val.length(), cpendvar + 1);
-               delete []var;
-               delete []base;
-               base = newbase;
-               cpvar = strstr(base, "$(");
-               maxExpands--;
-       }
-       SString sret = base;
-       delete []base;
-       return sret;
+       SString val = withVars;
+       ExpandAllInPlace(*this, val, maxExpands);
+       return val;
 }
 
 int PropSet::GetInt(const char *key, int defaultValue) {
 }
 
 int PropSet::GetInt(const char *key, int defaultValue) {
@@ -549,6 +608,8 @@ SString PropSet::GetWild(const char *keybase, const char *filename) {
        }
 }
 
        }
 }
 
+
+
 // GetNewExpand does not use Expand as it has to use GetWild with the filename for each
 // variable reference found.
 SString PropSet::GetNewExpand(const char *keybase, const char *filename) {
 // GetNewExpand does not use Expand as it has to use GetWild with the filename for each
 // variable reference found.
 SString PropSet::GetNewExpand(const char *keybase, const char *filename) {
@@ -561,6 +622,8 @@ SString PropSet::GetNewExpand(const char *keybase, const char *filename) {
                        int lenvar = cpendvar - cpvar - 2;      // Subtract the $()
                        char *var = StringDup(cpvar + 2, lenvar);
                        SString val = GetWild(var, filename);
                        int lenvar = cpendvar - cpvar - 2;      // Subtract the $()
                        char *var = StringDup(cpvar + 2, lenvar);
                        SString val = GetWild(var, filename);
+                       if (0 == strcmp(var, keybase))
+                               val.clear(); // Self-references evaluate to empty string
                        size_t newlenbase = strlen(base) + val.length() - lenvar;
                        char *newbase = new char[newlenbase];
                        strncpy(newbase, base, cpvar - base);
                        size_t newlenbase = strlen(base) + val.length() - lenvar;
                        char *newbase = new char[newlenbase];
                        strncpy(newbase, base, cpvar - base);
@@ -820,7 +883,7 @@ bool WordList::InList(const char *s) {
  * The length of the word to compare is passed too.
  * Letter case can be ignored or preserved (default).
  */
  * The length of the word to compare is passed too.
  * Letter case can be ignored or preserved (default).
  */
-const char *WordList::GetNearestWord(const char *wordStart, int searchLen /*= -1*/, bool ignoreCase /*= false*/, SString wordCharacters /*='/0' */, int wordIndex /*= -1 */) {
+const char *WordList::GetNearestWord(const char *wordStart, int searchLen, bool ignoreCase /*= false*/, SString wordCharacters /*='/0' */, int wordIndex /*= -1 */) {
        int start = 0; // lower bound of the api array block to search
        int end = len - 1; // upper bound of the api array block to search
        int pivot; // index of api array element just being compared
        int start = 0; // lower bound of the api array block to search
        int end = len - 1; // upper bound of the api array block to search
        int pivot; // index of api array element just being compared
@@ -838,36 +901,32 @@ const char *WordList::GetNearestWord(const char *wordStart, int searchLen /*= -1
                        pivot = (start + end) >> 1;
                        word = wordsNoCase[pivot];
                        cond = CompareNCaseInsensitive(wordStart, word, searchLen);
                        pivot = (start + end) >> 1;
                        word = wordsNoCase[pivot];
                        cond = CompareNCaseInsensitive(wordStart, word, searchLen);
-                       if (!cond && (!wordCharacters.contains(word[searchLen]))) {
-                               // Found a word in a binary fashion. Now checks if a specific index was requested
-                               if (wordIndex < 0)
-                                       return word; // result must not be freed with free()
-
+                       if (!cond) {
+                               // find first word
+                               start = pivot;
+                               while (start > 0 && !CompareNCaseInsensitive(wordStart, wordsNoCase[start-1], searchLen)) {
+                                       start--;
+                               }
+                               // find last word
+                               end = pivot;
+                               while (end < len-1 && !CompareNCaseInsensitive(wordStart, wordsNoCase[end+1], searchLen)) {
+                                       end++;
+                               }
+                               
                                // Finds first word in a series of equal words
                                // Finds first word in a series of equal words
-                               int first = pivot;
-                               end = pivot - 1;
-                               while (start <= end) {
-                                       pivot = (start + end) >> 1;
+                               for (pivot = start; pivot <= end; pivot++) {
                                        word = wordsNoCase[pivot];
                                        word = wordsNoCase[pivot];
-                                       cond = CompareNCaseInsensitive(wordStart, word, searchLen);
-                                       if (!cond && (!wordCharacters.contains(word[searchLen]))) {
-                                               // Found another word
-                                               first = pivot;
-                                               end = pivot - 1;
+                                       if (!wordCharacters.contains(word[searchLen])) {
+                                               if (wordIndex <= 0) // Checks if a specific index was requested
+                                                       return word; // result must not be freed with free()
+                                               wordIndex--;
                                        }
                                        }
-                                       else if (cond > 0)
-                                               start = pivot + 1;
-                                       else if (cond <= 0)
-                                               break;
                                }
                                }
-
-                               // Gets the word at the requested index
-                               word = wordsNoCase[first + wordIndex];
-                               return word;
+                               return NULL;
                        }
                        else if (cond > 0)
                                start = pivot + 1;
                        }
                        else if (cond > 0)
                                start = pivot + 1;
-                       else if (cond <= 0)
+                       else if (cond < 0)
                                end = pivot - 1;
                }
        } else { // preserve the letter case
                                end = pivot - 1;
                }
        } else { // preserve the letter case
@@ -875,36 +934,34 @@ const char *WordList::GetNearestWord(const char *wordStart, int searchLen /*= -1
                        pivot = (start + end) >> 1;
                        word = words[pivot];
                        cond = strncmp(wordStart, word, searchLen);
                        pivot = (start + end) >> 1;
                        word = words[pivot];
                        cond = strncmp(wordStart, word, searchLen);
-                       if (!cond && (!wordCharacters.contains(word[searchLen]))) {
-                               // Found a word in a binary fashion. Now checks if a specific index was requested
-                               if (wordIndex < 0)
-                                       return word; // result must not be freed with free()
-
+                       if (!cond) {
+                               // find first word
+                               start = pivot;
+                               while (start > 0 && !strncmp(wordStart, words[start-1], searchLen)) {
+                                       start--;
+                               }
+                               // find last word
+                               end = pivot;
+                               while (end < len-1 && !strncmp(wordStart, words[end+1], searchLen)) {
+                                       end++;
+                               }
+                               
                                // Finds first word in a series of equal words
                                // Finds first word in a series of equal words
-                               int first = pivot;
-                               end = pivot - 1;
-                               while (start <= end) {
-                                       pivot = (start + end) >> 1;
+                               pivot = start;
+                               while (pivot <= end) {
                                        word = words[pivot];
                                        word = words[pivot];
-                                       cond = strncmp(wordStart, word, searchLen);
-                                       if (!cond && (!wordCharacters.contains(word[searchLen]))) {
-                                               // Found another word
-                                               first = pivot;
-                                               end = pivot - 1;
+                                       if (!wordCharacters.contains(word[searchLen])) {
+                                               if (wordIndex <= 0) // Checks if a specific index was requested
+                                                       return word; // result must not be freed with free()
+                                               wordIndex--;
                                        }
                                        }
-                                       else if (cond > 0)
-                                               start = pivot + 1;
-                                       else if (cond <= 0)
-                                               break;
+                                       pivot++;
                                }
                                }
-
-                               // Gets the word at the requested index
-                               word = words[first + wordIndex];
-                               return word;
+                               return NULL;
                        }
                        else if (cond > 0)
                                start = pivot + 1;
                        }
                        else if (cond > 0)
                                start = pivot + 1;
-                       else if (cond <= 0)
+                       else if (cond < 0)
                                end = pivot - 1;
                }
        }
                                end = pivot - 1;
                }
        }
@@ -913,15 +970,13 @@ const char *WordList::GetNearestWord(const char *wordStart, int searchLen /*= -1
 
 /**
  * Find the length of a 'word' which is actually an identifier in a string
 
 /**
  * Find the length of a 'word' which is actually an identifier in a string
- * which looks like "identifier(..." or "identifier:" or "identifier" and where
+ * which looks like "identifier(..." or "identifier" and where
  * there may be extra spaces after the identifier that should not be
  * counted in the length.
  */
 static unsigned int LengthWord(const char *word, char otherSeparator) {
  * there may be extra spaces after the identifier that should not be
  * counted in the length.
  */
 static unsigned int LengthWord(const char *word, char otherSeparator) {
-       // Find a '(', or ':'. If that fails go to the end of the string.
+       // Find a '('. If that fails go to the end of the string.
        const char *endWord = strchr(word, '(');
        const char *endWord = strchr(word, '(');
-       if (!endWord)
-               endWord = strchr(word, ':');
        if (!endWord && otherSeparator)
                endWord = strchr(word, otherSeparator);
        if (!endWord)
        if (!endWord && otherSeparator)
                endWord = strchr(word, otherSeparator);
        if (!endWord)
@@ -930,7 +985,7 @@ static unsigned int LengthWord(const char *word, char otherSeparator) {
 
        // Drop any space characters.
        if (endWord > word) {
 
        // Drop any space characters.
        if (endWord > word) {
-               endWord--;      // Back from the '(', ':', or '\0'
+               endWord--;      // Back from the '(', otherSeparator, or '\0'
                // Move backwards over any spaces
                while ((endWord > word) && (IsASpace(*endWord))) {
                        endWord--;
                // Move backwards over any spaces
                while ((endWord > word) && (IsASpace(*endWord))) {
                        endWord--;
@@ -951,7 +1006,7 @@ static unsigned int LengthWord(const char *word, char otherSeparator) {
  */
 char *WordList::GetNearestWords(
     const char *wordStart,
  */
 char *WordList::GetNearestWords(
     const char *wordStart,
-    int searchLen /*= -1*/,
+    int searchLen,
     bool ignoreCase /*= false*/,
     char otherSeparator /*= '\0'*/,
     bool exactLen /*=false*/) {
     bool ignoreCase /*= false*/,
     char otherSeparator /*= '\0'*/,
     bool exactLen /*=false*/) {
@@ -985,10 +1040,10 @@ char *WordList::GetNearestWords(
                                        (0 == CompareNCaseInsensitive(wordStart,
                                                wordsNoCase[pivot], searchLen))) {
                                        wordlen = LengthWord(wordsNoCase[pivot], otherSeparator) + 1;
                                        (0 == CompareNCaseInsensitive(wordStart,
                                                wordsNoCase[pivot], searchLen))) {
                                        wordlen = LengthWord(wordsNoCase[pivot], otherSeparator) + 1;
-                                       if (exactLen && wordlen != LengthWord(wordStart, otherSeparator) + 1)
-                                               break;
-                                       wordsNear.append(wordsNoCase[pivot], wordlen, ' ');
                                        ++pivot;
                                        ++pivot;
+                                       if (exactLen && wordlen != LengthWord(wordStart, otherSeparator) + 1)
+                                               continue;
+                                       wordsNear.append(wordsNoCase[pivot-1], wordlen, ' ');
                                }
                                return wordsNear.detach();
                        } else if (cond < 0) {
                                }
                                return wordsNear.detach();
                        } else if (cond < 0) {
@@ -1013,10 +1068,10 @@ char *WordList::GetNearestWords(
                                        (0 == strncmp(wordStart,
                                                words[pivot], searchLen))) {
                                        wordlen = LengthWord(words[pivot], otherSeparator) + 1;
                                        (0 == strncmp(wordStart,
                                                words[pivot], searchLen))) {
                                        wordlen = LengthWord(words[pivot], otherSeparator) + 1;
-                                       if (exactLen && wordlen != LengthWord(wordStart, otherSeparator) + 1)
-                                               break;
-                                       wordsNear.append(words[pivot], wordlen, ' ');
                                        ++pivot;
                                        ++pivot;
+                                       if (exactLen && wordlen != LengthWord(wordStart, otherSeparator) + 1)
+                                               continue;
+                                       wordsNear.append(words[pivot-1], wordlen, ' ');
                                }
                                return wordsNear.detach();
                        } else if (cond < 0) {
                                }
                                return wordsNear.detach();
                        } else if (cond < 0) {
index cc02674b355995c6284b3b19579930c449420039..1d3867b7fe1510660dbfd4fa9a985f7ffc0202fa 100644 (file)
@@ -280,9 +280,9 @@ void ScintillaBase::AutoCompleteMoveToCurrentWord() {
        char wordCurrent[1000];
        int i;
        int startWord = ac.posStart - ac.startLen;
        char wordCurrent[1000];
        int i;
        int startWord = ac.posStart - ac.startLen;
-       for (i = startWord; i < currentPos; i++)
+       for (i = startWord; i < currentPos && i - startWord < 1000; i++)
                wordCurrent[i - startWord] = pdoc->CharAt(i);
                wordCurrent[i - startWord] = pdoc->CharAt(i);
-       wordCurrent[i - startWord] = '\0';
+       wordCurrent[Platform::Minimum(i - startWord, 999)] = '\0';
        ac.Select(wordCurrent);
 }
 
        ac.Select(wordCurrent);
 }
 
@@ -357,11 +357,12 @@ void ScintillaBase::CallTipShow(Point pt, const char *defn) {
        AutoCompleteCancel();
        pt.y += vs.lineHeight;
        PRectangle rc = ct.CallTipStart(currentPos, pt,
        AutoCompleteCancel();
        pt.y += vs.lineHeight;
        PRectangle rc = ct.CallTipStart(currentPos, pt,
-                                                                       defn,
-                                                                       vs.styles[STYLE_DEFAULT].fontName,
-                                                                       vs.styles[STYLE_DEFAULT].sizeZoomed,
-                                                                       IsUnicodeMode(),
-                                                                       wMain);
+               defn,
+               vs.styles[STYLE_DEFAULT].fontName,
+               vs.styles[STYLE_DEFAULT].sizeZoomed,
+               CodePage(),
+               vs.styles[STYLE_DEFAULT].characterSet,
+               wMain);
        // If the call-tip window would be out of the client
        // space, adjust so it displays above the text.
        PRectangle rcClient = GetClientRectangle();
        // If the call-tip window would be out of the client
        // space, adjust so it displays above the text.
        PRectangle rcClient = GetClientRectangle();
index 15cad6382969fb8070ac312b40547de47f3949bd..363db90f4528c5bfe3abda127f5e063b369d389f 100644 (file)
@@ -16,7 +16,7 @@ unsigned int UTF8Length(const wchar_t *uptr, unsigned int tlen) {
                if (uch < 0x80)
                        len++;
                else if (uch < 0x800)
                if (uch < 0x80)
                        len++;
                else if (uch < 0x800)
-                       len+=2;
+                       len += 2;
                else
                        len +=3;
        }
                else
                        len +=3;
        }
index b3b3cd2765934fc9eee85b8337c6c9b373f1dd6f..f534906177dad0be62b4d5de0003ff3049f25474 100644 (file)
@@ -2408,6 +2408,12 @@ void wxStyledTextCtrl::Allocate(int bytes) {
     SendMsg(2446, bytes, 0);
 }
 
     SendMsg(2446, bytes, 0);
 }
 
+// Find the position of a column on a line taking into account tabs and 
+// multi-byte characters. If beyond end of line, return line end position.
+int wxStyledTextCtrl::FindColumn(int line, int column) {
+    return SendMsg(2456, line, column);
+}
+
 // Start notifying the container of all key presses and commands.
 void wxStyledTextCtrl::StartRecord() {
     SendMsg(3001, 0, 0);
 // Start notifying the container of all key presses and commands.
 void wxStyledTextCtrl::StartRecord() {
     SendMsg(3001, 0, 0);