anchor.diff:      SetLength(result, idx+1);
       result[idx] := arg;
       Inc(idx);
  +    if (P^ = ',') then begin
  +      IncP;
  +    end;
     end;
     if (P^ <> ')') then begin
       raise Exception.Create('Missing )');
  
positive.code:     wrapped := true;
    end;
    Start := P;
    while (P^ in ['0'..'9', 'a'..'z', 'A'..'Z', '_', '#', #0]) do begin
      IncP;
    end;
    SetString(result, Start, P-Start);
    if (wrapped) then begin
      if (not (P^ = '}')) then begin
        // TODO: include line?
  
negative.code:   while (macroIfCnt > 0) do begin
      if ((P = FSourceEnd) or (P^ = #0)) then begin
        // TODO end of buffer?
        Log('end of buffer @ skipif', ltInfo);
        FSourcePtr := P;
        ReadBuffer;
        P := FSourcePtr;
      end;
      if (P^ = CALL_MACRO_CHAR) then begin
        IncP;
  