anchor.diff:      procedure setSrcs(const aValue: TStringList);
       procedure setIncl(const aValue: TStringList);
       procedure setImpt(const aValue: TStringList);
  +    procedure strLstChange(sender: TObject);
     published
       property outputFilename: string read fFname write setFname;
       property objectDirectory: string read fObjDir write setObjDir;
  
positive.code: begin
    for str in fSrcs do if str <> '' then
    begin
      if not
        listAsteriskPath(str, aList, dExtList)
      then
        aList.Add(str);
  
negative.code:   fSrcs := TStringList.Create;
    fIncl := TStringList.Create;
    fImpt := TStringList.Create;
    // setSrcs(), setIncl(), setImpt() are not called when reloading from
    // a stream but rather the TSgringList.Assign()
    fSrcs.OnChange:= @strLstChange;
    fIncl.OnChange:= @strLstChange;
    fImpt.OnChange:= @strLstChange;
  end;
  
  procedure TPathsOpts.strLstChange(sender: TObject);
  begin
    TStringList(sender).BeginUpdate; // onChange not called anymore
    patchPlateformPaths(TStringList(sender));
    // EndUpdate is not called to avoid an infinite loop
  end;
  
  procedure TPathsOpts.getOpts(const aList: TStrings);
  