anchor.diff:    uProject.Free;
     uProject := nil;
   end;
  +
  +function tiNumToken(const AValue, AToken : string): integer;
  +var
  +  i, iCount : integer;
  +  lsValue : string;
  +begin
  +  Result := 0;
  +  if AValue = '' then
  +    Exit; //==>
  +
  +  iCount := 0;
  +  lsValue := AValue;
  +  i := pos(AToken, lsValue);
  +  while i <> 0 do begin
  +    delete(lsValue, i, length(AToken));
  +    inc(iCount);
  +    i := pos(AToken, lsValue);
  +  end;
  +  Result := iCount + 1;
  +end;
  +
  +
  +function tiToken(const AValue, AToken : string; const APos : integer): string;
  +var
  +  i, iCount, iNumToken : integer;
  +  lsValue : string;
  +begin
  +  result := '';
  +
  +  iNumToken := tiNumToken(AValue, AToken);
  +  if APos = 1 then
  +  begin
  +    if pos(AToken, AValue) = 0 then
  +      result := AValue
  +    else
  +      result := copy(AValue, 1, pos(AToken, AValue)-1);
  +  end
  +  else if (iNumToken < APos-1) or (APos<1) then
  +  begin
  +    result := '';
  +  end
  +  else
  +  begin
  +    { Remove leading blocks }
  +    iCount := 1;
  +    lsValue := AValue;
  +    i := pos(AToken, lsValue);
  +    while (i<>0) and (iCount<APos) do
  +    begin
  +      delete(lsValue, 1, i + length(AToken) - 1);
  +      inc(iCount);
  +      i := pos(AToken, lsValue);
  +    end;
  +
  +    if (i=0) and (iCount=APos) then
  +      result := lsValue
  +    else if (i=0) and (iCount<>APos) then
  +      result := ''
  +    else
  +      result := copy(lsValue, 1, i-1);
  +  end;
  +end;
  +
   
   { TProject }
   
  
positive.code: 
    // Load make options
    LoadList(MakeOptions, 'MakeOptionsCount', 'MakeOption');
  
    // Load Macro definitions
    LoadList(MacroNames, 'MacroCount', 'Macro');
  
    // Load Unit search dirs
    LoadList(UnitDirs, 'UnitDirsCount', 'unitdir');
  
    UnitOutputDir := FIniFile.ReadString(cProjectOptions, 'UnitOutputDir', 'units/i386-linux/');
  
  
negative.code:     property    UnitList: TUnitList read FUnitList;
      property    DefaultMake: integer read FDefaultMake write FDefaultMake;
      property    MakeOptions: TStringList read FMakeOptions;
      property    MakeOptionsGrid: TBooleanGrid read FMakeOptionsGrid write FMakeOptionsGrid;
      property    MacroNames: TStringList read FMacroNames;
      property    UnitDirs: TStringList read FUnitDirs;
      property    UnitOutputDir: TfpgString read FUnitOutputDir write FUnitOutputDir;
      property    UnitDirsGrid: TBooleanGrid read FUnitDirsGrid write FUnitDirsGrid;
    end;
  
  
  