Mercurial > mxe-octave
view src/qscintilla-2-matlab-block-comment.patch @ 4618:de2eedecd6ba
update broken PKG_UPDATE rules, handle missing update rules
* Makefile.in: add handling for packages with no update rule
* src/gtk2.mk, src/gtk3.mk, src/libvpx.mk, src/taglib.mk,
src/hunspell.mk, src/vala.mk : use github tags for version info
* src/llvm.mk: add '?' to update url
* src/openscenegraph.mk: update SED rule for version extraction
* src/pthread-stubs.mk, src/qt5.mk, src/renderproto.mk,
src/sm.mk, src/s2tc.mk, src/util-macros.mk: added dummy PKG_UPDATE rule
* src/qscintilla.mk: change search name for version extraction
* src/qtbase.mk: use short pkg version in update path
* src/suitesparse.mk: update change in main url/version url
* src/tre.mk: update download page link
* src/vmime.mk: update download and update url
* src/wget.mk, src/xapian-core.mk: update url, sed rule
* src/wt.mk: update to use github download/update
* src/src-msys-libcrypt.mk: update sed rule
author | John Donoghue |
---|---|
date | Fri, 09 Mar 2018 11:46:42 -0500 |
parents | 9b1f851080b6 |
children |
line wrap: on
line source
diff -ur QScintilla_gpl-2.10.1.orig/lexers/LexMatlab.cpp QScintilla_gpl-2.10.1/lexers/LexMatlab.cpp --- QScintilla_gpl-2.10.1.orig/lexers/LexMatlab.cpp 2017-07-05 08:05:16.545914398 -0400 +++ QScintilla_gpl-2.10.1/lexers/LexMatlab.cpp 2017-07-05 08:19:56.616722104 -0400 @@ -73,6 +73,15 @@ return 0; } +static bool IsSpaceToEOL(Sci_PositionU startPos, Accessor &styler) { + Sci_Position line = styler.GetLine(startPos); + Sci_PositionU eol_pos = styler.LineStart(line + 1) - 1; + for (Sci_PositionU i = startPos; i < eol_pos; i++) { + char ch = styler[i]; + if(!IsASpace(ch)) return false; + } + return true; +} static void ColouriseMatlabOctaveDoc( Sci_PositionU startPos, Sci_Position length, int initStyle, @@ -180,7 +189,7 @@ } } else if (sc.state == SCE_MATLAB_COMMENT) { // end or start of a nested a block comment? - if( IsCommentChar(sc.ch) && sc.chNext == '}' && nonSpaceColumn == column) { + if( IsCommentChar(sc.ch) && sc.chNext == '}' && nonSpaceColumn == column && IsSpaceToEOL(sc.currentPos+2, styler)) { if(commentDepth > 0) commentDepth --; curLine = styler.GetLine(sc.currentPos); @@ -192,7 +201,7 @@ transpose = false; } } - else if( IsCommentChar(sc.ch) && sc.chNext == '{' && nonSpaceColumn == column) + else if( IsCommentChar(sc.ch) && sc.chNext == '{' && nonSpaceColumn == column && IsSpaceToEOL(sc.currentPos+2, styler)) { commentDepth ++; @@ -213,9 +222,12 @@ // check start of a new state if (sc.state == SCE_MATLAB_DEFAULT) { if (IsCommentChar(sc.ch)) { - // ncrement depth if we are a block comment - if(sc.chNext == '{' && nonSpaceColumn == column) - commentDepth ++; + // Increment depth if we are a block comment + if(sc.chNext == '{' && nonSpaceColumn == column) { + if(IsSpaceToEOL(sc.currentPos+2, styler)) { + commentDepth ++; + } + } curLine = styler.GetLine(sc.currentPos); styler.SetLineState(curLine, commentDepth); sc.SetState(SCE_MATLAB_COMMENT); @@ -288,9 +300,9 @@ // a line that starts with a comment if (style == SCE_MATLAB_COMMENT && IsComment(ch) && visibleChars == 0) { // start/end of block comment - if (chNext == '{') + if (chNext == '{' && IsSpaceToEOL(i+2, styler)) levelNext ++; - if (chNext == '}') + if (chNext == '}' && IsSpaceToEOL(i+2, styler)) levelNext --; } // keyword Only in QScintilla_gpl-2.10.1/lexers: LexMatlab.cpp.orig Only in QScintilla_gpl-2.10.1/lexers: LexMatlab.cpp.rej