diff options
-rw-r--r-- | scintilla/lexers/LexSQL.cxx | 28 | ||||
-rw-r--r-- | scintilla/src/RESearch.cxx | 2 | ||||
-rw-r--r-- | scintilla/win32/PlatWin.cxx | 4 |
3 files changed, 16 insertions, 18 deletions
diff --git a/scintilla/lexers/LexSQL.cxx b/scintilla/lexers/LexSQL.cxx index 5e40f90..6d97789 100644 --- a/scintilla/lexers/LexSQL.cxx +++ b/scintilla/lexers/LexSQL.cxx @@ -122,13 +122,11 @@ public : return sqlStatesLine;
}
-
- unsigned short int IntoSelectStatement (unsigned short int sqlStatesLine, bool found) {
+ unsigned short int IntoSelectStatementOrAssignment (unsigned short int sqlStatesLine, bool found) {
if (found)
- sqlStatesLine |= MASK_INTO_SELECT_STATEMENT;
+ sqlStatesLine |= MASK_INTO_SELECT_STATEMENT_OR_ASSIGNEMENT;
else
- sqlStatesLine &= ~MASK_INTO_SELECT_STATEMENT;
-
+ sqlStatesLine &= ~MASK_INTO_SELECT_STATEMENT_OR_ASSIGNEMENT;
return sqlStatesLine;
}
@@ -161,11 +159,9 @@ public : bool IsIntoExceptionBlock (unsigned short int sqlStatesLine) {
return (sqlStatesLine & MASK_INTO_EXCEPTION) != 0;
}
-
- bool IsIntoSelectStatement (unsigned short int sqlStatesLine) {
- return (sqlStatesLine & MASK_INTO_SELECT_STATEMENT) != 0;
+ bool IsIntoSelectStatementOrAssignment (unsigned short int sqlStatesLine) {
+ return (sqlStatesLine & MASK_INTO_SELECT_STATEMENT_OR_ASSIGNEMENT) != 0;
}
-
bool IsCaseMergeWithoutWhenFound (unsigned short int sqlStatesLine) {
return (sqlStatesLine & MASK_CASE_MERGE_WITHOUT_WHEN_FOUND) != 0;
}
@@ -188,7 +184,7 @@ private : SparseState <unsigned short int> sqlStatement;
enum {
MASK_NESTED_CASES = 0x01FF,
- MASK_INTO_SELECT_STATEMENT = 0x0200,
+ MASK_INTO_SELECT_STATEMENT_OR_ASSIGNEMENT = 0x0200,
MASK_CASE_MERGE_WITHOUT_WHEN_FOUND = 0x0400,
MASK_MERGE_STATEMENT = 0x0800,
MASK_INTO_DECLARE = 0x1000,
@@ -608,9 +604,12 @@ void SCI_METHOD LexerSQL::Fold(unsigned int startPos, int length, int initStyle, sqlStatesCurrentLine = sqlStates.IntoMergeStatement(sqlStatesCurrentLine, false);
levelNext--;
}
- if (sqlStates.IsIntoSelectStatement(sqlStatesCurrentLine))
- sqlStatesCurrentLine = sqlStates.IntoSelectStatement(sqlStatesCurrentLine, false);
+ if (sqlStates.IsIntoSelectStatementOrAssignment(sqlStatesCurrentLine))
+ sqlStatesCurrentLine = sqlStates.IntoSelectStatementOrAssignment(sqlStatesCurrentLine, false);
}
+ if (ch == ':' && chNext == '=' && !IsCommentStyle(style))
+ sqlStatesCurrentLine = sqlStates.IntoSelectStatementOrAssignment(sqlStatesCurrentLine, true);
+
if (options.foldComment && IsStreamCommentStyle(style)) {
if (!IsStreamCommentStyle(stylePrev)) {
levelNext++;
@@ -666,10 +665,9 @@ void SCI_METHOD LexerSQL::Fold(unsigned int startPos, int length, int initStyle, } else {
s[j] = '\0';
}
-
if (!options.foldOnlyBegin &&
strcmp(s, "select") == 0) {
- sqlStatesCurrentLine = sqlStates.IntoSelectStatement(sqlStatesCurrentLine, true);
+ sqlStatesCurrentLine = sqlStates.IntoSelectStatementOrAssignment(sqlStatesCurrentLine, true);
} else if (strcmp(s, "if") == 0) {
if (endFound) {
endFound = false;
@@ -766,7 +764,7 @@ void SCI_METHOD LexerSQL::Fold(unsigned int startPos, int length, int initStyle, (strcmp(s, "endif") == 0)) {
endFound = true;
levelNext--;
- if (sqlStates.IsIntoSelectStatement(sqlStatesCurrentLine) && !sqlStates.IsCaseMergeWithoutWhenFound(sqlStatesCurrentLine))
+ if (sqlStates.IsIntoSelectStatementOrAssignment(sqlStatesCurrentLine) && !sqlStates.IsCaseMergeWithoutWhenFound(sqlStatesCurrentLine))
levelNext--;
if (levelNext < SC_FOLDLEVELBASE) {
levelNext = SC_FOLDLEVELBASE;
diff --git a/scintilla/src/RESearch.cxx b/scintilla/src/RESearch.cxx index 2a6bab8..d3da8fb 100644 --- a/scintilla/src/RESearch.cxx +++ b/scintilla/src/RESearch.cxx @@ -788,7 +788,7 @@ int RESearch::Execute(CharacterIndexer &ci, int lp, int endp) { }
case CHR: /* ordinary char: locate it fast */
c = *(ap+1);
- while ((lp < endp) && (ci.CharAt(lp) != c))
+ while ((lp < endp) && (static_cast<unsigned char>(ci.CharAt(lp)) != c))
lp++;
if (lp >= endp) /* if EOS, fail, else fall thru. */
return 0;
diff --git a/scintilla/win32/PlatWin.cxx b/scintilla/win32/PlatWin.cxx index 6b4a416..c9ec34e 100644 --- a/scintilla/win32/PlatWin.cxx +++ b/scintilla/win32/PlatWin.cxx @@ -133,7 +133,7 @@ bool LoadD2D() { typedef HRESULT (WINAPI *DWriteCFSig)(DWRITE_FACTORY_TYPE factoryType, REFIID iid,
IUnknown **factory);
- hDLLD2D = ::LoadLibrary(TEXT("D2D1.DLL"));
+ hDLLD2D = ::LoadLibraryEx(TEXT("D2D1.DLL"), 0, 0x00000800 /*LOAD_LIBRARY_SEARCH_SYSTEM32*/);
if (hDLLD2D) {
D2D1CFSig fnD2DCF = (D2D1CFSig)::GetProcAddress(hDLLD2D, "D2D1CreateFactory");
if (fnD2DCF) {
@@ -144,7 +144,7 @@ bool LoadD2D() { reinterpret_cast<IUnknown**>(&pD2DFactory));
}
}
- hDLLDWrite = ::LoadLibrary(TEXT("DWRITE.DLL"));
+ hDLLDWrite = ::LoadLibraryEx(TEXT("DWRITE.DLL"), 0, 0x00000800 /*LOAD_LIBRARY_SEARCH_SYSTEM32*/);
if (hDLLDWrite) {
DWriteCFSig fnDWCF = (DWriteCFSig)::GetProcAddress(hDLLDWrite, "DWriteCreateFactory");
if (fnDWCF) {
|