anchor.diff:    {$IFDEF DELPHI2009_UP}
     largeblock: string;
     largeblocklowercase: string;
  +  sMethodDef: string;
  +  {$ELSE}
  +  largeblock: ansistring;
  +  largeblocklowercase: ansistring;
  +  sMethodDef: ansistring;
     {$ENDIF}
     ansiblock: ansistring;
     ansilargeblock: ansistring;
  -  ansilargeblocklowercase: ansistring;
  -  sMethodDef: ansistring;
     i: integer;
     pc, pd, pp, pf: integer;
     bInParams: boolean;
  
positive.code:             sMethodDef := '';
            end;
  
            ansilargeblock := Copy(ansilargeblock, i + 1);
            i := 1;
          end;
        end;
  
negative.code:       ansilargeblock := ansilargeblock + ansiblock;
      end;
  
      {$IFDEF DELPHI2009_UP}
      largeblock := string(ansilargeblock);
      {$ELSE}
      largeblock := ansilargeblock;
      {$ENDIF}
  
      if not bInMethodDef then
      begin
        iSkip := Length(largeblock);
  
        largeblocklowercase := LowerCase(largeblock);
  
        pc := PosEx('constructor ', largeblocklowercase, Max(1, i - 11));
        pd := PosEx('destructor ', largeblocklowercase, Max(1, i - 10));
        pp := PosEx('procedure ', largeblocklowercase, Max(1, i - 9));
        pf := PosEx('function ', largeblocklowercase, Max(1, i - 8));
        largeblocklowercase := '';
  
        {$IFDEF DELPHI2009_UP}
        if (pc > 2) and not CharInSet(largeblock[pc - 1], [#$0A,#$0D,#$07,#$20]) then
        {$ELSE}
        if (pc > 2) and not (largeblock[pc - 1] in [#$0A,#$0D,#$07,#$20]) then
        {$ENDIF}
        begin
          iSkip := Min(pc + 12, iSkip);
  