Branch: refs/heads/master Author: Colomban Wendling ban@herbesfolles.org Committer: Colomban Wendling ban@herbesfolles.org Date: Sun, 24 May 2015 16:44:37 UTC Commit: 9b98d55defc918c951660f05e9ebdd30e9bfb184 https://github.com/geany/geany/commit/9b98d55defc918c951660f05e9ebdd30e9bfb1...
Log Message: ----------- Update Scintilla to 3.5.6 pre-release
Fixes broken auto-completion popup on Windows.
Modified Paths: -------------- scintilla/gtk/PlatGTK.cxx scintilla/gtk/ScintillaGTK.cxx scintilla/lexers/LexCPP.cxx scintilla/lexers/LexFortran.cxx scintilla/lexers/LexVHDL.cxx scintilla/lexers/LexVerilog.cxx scintilla/src/Document.cxx scintilla/src/EditModel.h scintilla/src/Editor.h scintilla/src/ScintillaBase.h scintilla/version.txt
Modified: scintilla/gtk/PlatGTK.cxx 18 lines changed, 17 insertions(+), 1 deletions(-) =================================================================== @@ -602,6 +602,7 @@ void SurfaceImpl::InitPixMap(int width, int height, Surface *surface_, WindowID cairo_set_line_width(context, 1); createdGC = true; inited = true; + et = surfImpl->et; }
void SurfaceImpl::PenColour(ColourDesired fore) { @@ -1483,7 +1484,22 @@ ListBox *ListBox::Allocate() {
// SmallScroller, a GtkScrolledWindow that can shrink very small, as // gtk_widget_set_size_request() cannot shrink widgets on GTK3 -typedef GtkScrolledWindow SmallScroller; +typedef struct { + GtkScrolledWindow parent; + /* Workaround ABI issue with Windows GTK2 bundle and GCC > 3. + See http://lists.geany.org/pipermail/devel/2015-April/thread.html#9379 + + GtkScrolledWindow contains a bitfield, and GCC 3.4 and 4.8 don't agree + on the size of the structure (regardless of -mms-bitfields): + - GCC 3.4 has sizeof(GtkScrolledWindow)=88 + - GCC 4.8 has sizeof(GtkScrolledWindow)=84 + As Windows GTK2 bundle is built with GCC 3, it requires types derived + from GtkScrolledWindow to be at least 88 bytes, which means we need to + add some fake padding to fill in the extra 4 bytes. + There is however no other issue with the layout difference as we never + access any GtkScrolledWindow fields ourselves. */ + int padding; +} SmallScroller; typedef GtkScrolledWindowClass SmallScrollerClass;
G_DEFINE_TYPE(SmallScroller, small_scroller, GTK_TYPE_SCROLLED_WINDOW)
Modified: scintilla/gtk/ScintillaGTK.cxx 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -657,7 +657,7 @@ class PreEditString { gunichar *uniStr; PangoScript pscript;
- PreEditString(GtkIMContext *im_context) { + explicit PreEditString(GtkIMContext *im_context) { gtk_im_context_get_preedit_string(im_context, &str, &attrs, &cursor_pos); validUTF8 = g_utf8_validate(str, strlen(str), NULL); uniStr = g_utf8_to_ucs4_fast(str, strlen(str), &uniStrLen);
Modified: scintilla/lexers/LexCPP.cxx 6 lines changed, 2 insertions(+), 4 deletions(-) =================================================================== @@ -1092,7 +1092,6 @@ void SCI_METHOD LexerCPP::Lex(unsigned int startPos, int length, int initStyle, } else if (options.backQuotedStrings && sc.Match('`')) { sc.SetState(SCE_C_STRINGRAW|activitySet); rawStringTerminator = "`"; - sc.Forward(); } else if (IsADigit(sc.ch) || (sc.ch == '.' && IsADigit(sc.chNext))) { if (lastWordWasUUID) { sc.SetState(SCE_C_UUID|activitySet); @@ -1246,11 +1245,10 @@ void SCI_METHOD LexerCPP::Lex(unsigned int startPos, int length, int initStyle, } } else if (sc.Match("undef")) { if (options.updatePreprocessor && !preproc.IsInactive()) { - std::string restOfLine = GetRestOfLine(styler, sc.currentPos + 5, true); + const std::string restOfLine = GetRestOfLine(styler, sc.currentPos + 5, false); std::vectorstd::string tokens = Tokenize(restOfLine); - std::string key; if (tokens.size() >= 1) { - key = tokens[0]; + const std::string key = tokens[0]; preprocessorDefinitions.erase(key); ppDefineHistory.push_back(PPDefinition(lineCurrent, key, "", true)); definitionsChanged = true;
Modified: scintilla/lexers/LexFortran.cxx 1 lines changed, 1 insertions(+), 0 deletions(-) =================================================================== @@ -260,6 +260,7 @@ static int classifyFoldPointFortran(const char* s, const char* prevWord, const c lev = 0; } else if (strcmp(s, "associate") == 0 || strcmp(s, "block") == 0 || strcmp(s, "blockdata") == 0 || strcmp(s, "select") == 0 + || strcmp(s, "selecttype") == 0 || strcmp(s, "selectcase") == 0 || strcmp(s, "do") == 0 || strcmp(s, "enum") ==0 || strcmp(s, "function") == 0 || strcmp(s, "interface") == 0 || strcmp(s, "module") == 0 || strcmp(s, "program") == 0
Modified: scintilla/lexers/LexVHDL.cxx 7 lines changed, 4 insertions(+), 3 deletions(-) =================================================================== @@ -216,7 +216,7 @@ static void FoldNoBoxVHDLDoc( // don't check if the style for the keywords that I use to adjust the levels. char words[] = "architecture begin block case component else elsif end entity generate loop package process record then " - "procedure function when"; + "procedure function when units"; WordList keywords; keywords.Set(words);
@@ -382,7 +382,8 @@ static void FoldNoBoxVHDLDoc( strcmp(s, "package") ==0 || strcmp(s, "process") == 0 || strcmp(s, "record") == 0 || - strcmp(s, "then") == 0) + strcmp(s, "then") == 0 || + strcmp(s, "units") == 0) { if (strcmp(prevWord, "end") != 0) { @@ -437,7 +438,7 @@ static void FoldNoBoxVHDLDoc( (!IsCommentStyle(styleAtPos)) && (styleAtPos != SCE_VHDL_STRING) && !iswordchar(styler.SafeGetCharAt(pos-1)) && - styler.Match(pos, "is") && + (chAtPos|' ')=='i' && (styler.SafeGetCharAt(pos+1)|' ')=='s' && !iswordchar(styler.SafeGetCharAt(pos+2))) { if (levelMinCurrentElse > levelNext) {
Modified: scintilla/lexers/LexVerilog.cxx 4 lines changed, 3 insertions(+), 1 deletions(-) =================================================================== @@ -928,9 +928,10 @@ void SCI_METHOD LexerVerilog::Fold(unsigned int startPos, int length, int initSt if (styler.Match(j, "case") || styler.Match(j, "casex") || styler.Match(j, "casez") || + styler.Match(j, "covergroup") || styler.Match(j, "function") || styler.Match(j, "generate") || - styler.Match(j, "covergroup") || + styler.Match(j, "interface") || styler.Match(j, "package") || styler.Match(j, "primitive") || styler.Match(j, "program") || @@ -962,6 +963,7 @@ void SCI_METHOD LexerVerilog::Fold(unsigned int startPos, int length, int initSt styler.Match(j, "endfunction") || styler.Match(j, "endgenerate") || styler.Match(j, "endgroup") || + styler.Match(j, "endinterface") || styler.Match(j, "endpackage") || styler.Match(j, "endprimitive") || styler.Match(j, "endprogram") ||
Modified: scintilla/src/Document.cxx 2 lines changed, 2 insertions(+), 0 deletions(-) =================================================================== @@ -216,6 +216,8 @@ void Document::SetSavePoint() { }
void Document::TentativeUndo() { + if (!TentativeActive()) + return; CheckReadOnly(); if (enteredModification == 0) { enteredModification++;
Modified: scintilla/src/EditModel.h 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -25,7 +25,7 @@ class Caret {
class EditModel { // Private so EditModel objects can not be copied - EditModel(const EditModel &); + explicit EditModel(const EditModel &); EditModel &operator=(const EditModel &);
public:
Modified: scintilla/src/Editor.h 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -153,7 +153,7 @@ struct WrapPending { */ class Editor : public EditModel, public DocWatcher { // Private so Editor objects can not be copied - Editor(const Editor &); + explicit Editor(const Editor &); Editor &operator=(const Editor &);
protected: // ScintillaBase subclass needs access to much of Editor
Modified: scintilla/src/ScintillaBase.h 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -20,7 +20,7 @@ class LexState; */ class ScintillaBase : public Editor { // Private so ScintillaBase objects can not be copied - ScintillaBase(const ScintillaBase &); + explicit ScintillaBase(const ScintillaBase &); ScintillaBase &operator=(const ScintillaBase &);
protected:
Modified: scintilla/version.txt 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -1 +1 @@ -355 +356
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).