anchor.diff:    CodeTreeFilterInput.OnChange(nil);
   end;
   
  +procedure TfmMain.MsgStatusFileOpened(const AFileName1, AFileName2: string);
  +var
  +  S: string;
  +begin
  +  S:= msgStatusOpened+' "'+ExtractFileName(AFileName1)+'"';
  +  if AFileName2<>'' then
  +    S+= ', "'+ExtractFileName(AFileName2)+'"';
  +  MsgStatus(S);
  +end;
  +
   function TfmMain.DoFileOpen(AFileName, AFileName2: string; APages: TATPages;
     const AOptions: string): TEditorFrame;
   var
  
positive.code:     procedure MsgLogDebug(const AText: string);
      procedure MsgLogToFilename(const AText, AFilename: string; AWithTime: boolean);
      procedure MsgStatusAlt(const AText: string; ASeconds: integer);
      procedure PopupListboxOutputCopyClick(Sender: TObject);
      procedure PopupListboxOutputClearClick(Sender: TObject);
      procedure PopupListboxValidateClearClick(Sender: TObject);
  
negative.code:   end;
    F:= D.TabObject as TEditorFrame;
  
    //tick:= GetTickCount64;
    F.DoFileOpen(AFileName, AFileName2, bEnableHistory, true, OpenMode);
    Result:= F;
    //tick:= (GetTickCount64-tick) div 1000;
  
    UpdateStatus;
    //if tick>2 then
    //  msg:= msg+' ('+IntToStr(tick)+'s)';
    MsgStatusFileOpened(AFileName, AFileName2);
  
    DoPyEvent(F.Ed1, cEventOnOpen, []);
    if F.IsText and (F.LexerName[F.Ed1]='') then
  