diff --git a/ide/weditor.pas b/ide/weditor.pas index 3adcc99db4..64abed94bd 100644 --- a/ide/weditor.pas +++ b/ide/weditor.pas @@ -2217,8 +2217,8 @@ var begin C:=0; WordS:=copy(LineText,StartX,EndX-StartX+1); - if IsAsmSuffix(WordS) and (InAsm=true) and (InComment=false) and - (InString=false) and (InDirective=false) then InAsm:=false; + if (InAsm=true) and (InComment=false) and (InString=false) and + (InDirective=false) and IsAsmSuffix(WordS) then InAsm:=false; if InDirective then C:=coDirectiveColor else if InComment then C:=coCommentColor else if InString then C:=coStringColor else @@ -2254,8 +2254,8 @@ var end; if EndX+1>=StartX then FillChar(Format[StartX],EndX+1-StartX,C); - if IsAsmPrefix(WordS) and (InString=false) and - (InAsm=false) and (InComment=false) and (InDirective=false) then + if (InString=false) and (InAsm=false) and (InComment=false) and + (InDirective=false) and IsAsmPrefix(WordS) then InAsm:=true; end; @@ -2284,11 +2284,11 @@ var if length(SymbolConcat)>=High(SymbolConcat) then Delete(SymbolConcat,1,1); SymbolConcat:=SymbolConcat+C; - if IsCommentSuffix and (InComment) then + if InComment and IsCommentSuffix then Inc(EX) else - if IsStringSuffix and (InString) then + if InString and IsStringSuffix then Inc(EX) else - if IsDirectiveSuffix and (InDirective) then + if InDirective and IsDirectiveSuffix then Inc(EX); end; if CC=ccRealNumber then @@ -2305,12 +2305,17 @@ var ccNumber : if (LastCC<>ccAlpha) then; ccSymbol : - if IsDirectivePrefix and (InComment=true) and (CurrentCommentType=1) and - (InDirective=false) then - begin InDirective:=true; InComment:=false; Dec(ClassStart,length(MatchingSymbol)-1); end else - if IsDirectiveSuffix and (InComment=false) and (InDirective=true) then - InDirective:=false else - if IsCommentPrefix and (InComment=false) and (InString=false) then + if (InComment=true) and (CurrentCommentType=1) and + (InDirective=false) and IsDirectivePrefix then + begin + InDirective:=true; + InComment:=false; + Dec(ClassStart,length(MatchingSymbol)-1); + end + else if (InComment=false) and + (InDirective=true) and IsDirectiveSuffix then + InDirective:=false + else if (InComment=false) and (InString=false) and IsCommentPrefix then begin InComment:=true; CurrentCommentType:=SymbolIndex; @@ -2323,12 +2328,17 @@ var if MatchingSymbol[length(MatchingSymbol)]=Editor^.GetSpecSymbol(ssCommentSuffix,SymbolIndex)[1] then Delete(SymbolConcat,1,length(MatchingSymbol)); end - else - if IsCommentSuffix and (InComment) then - begin InComment:=false; InString:=false; end else - if IsStringPrefix and (InComment=false) and (InString=false) then - begin InString:=true; Dec(ClassStart,length(MatchingSymbol)-1); end else - if IsStringSuffix and (InComment=false) and (InString=true) then + else if InComment and IsCommentSuffix then + begin + InComment:=false; + InString:=false; + end + else if (InComment=false) and (InString=false) and IsStringPrefix then + begin + InString:=true; + Dec(ClassStart,length(MatchingSymbol)-1); + end + else if (InComment=false) and (InString=true) and IsStringSuffix then InString:=false; end; if MatchedSymbol and (InComment=false) then @@ -7116,7 +7126,10 @@ end; END. { $Log$ - Revision 1.31 2002-09-10 12:19:14 pierre + Revision 1.32 2002-09-11 08:39:44 pierre + * avoid lots of useless calls by reordering conditions in DoUpdateAttrs + + Revision 1.31 2002/09/10 12:19:14 pierre * use faster method for loading files by default Revision 1.30 2002/09/09 06:58:28 pierre