anchor.diff:  end;
   
   procedure DoInstallAddonFromZip(
  -  const fn_zip: string;
  -  const dir_acp: string;
  -  out StrReport, StrMessage: string;
  -  out IsInstalled: boolean;
  -  out NAddonType: TAppAddonType;
  -  out DirTarget: string;
  -  Silent: boolean);
  +  const AFilenameZip: string;
  +  const ADirAcp: string;
  +  out AStrReport, AStrMessage: string;
  +  out AIsInstalled: boolean;
  +  out AAddonType: TAppAddonType;
  +  out ADirTarget: string;
  +  ASilent: boolean);
   var
     unzip: TUnZipper;
     list: TStringlist;
     dir, dir_zipped, fn_inf: string;
     s_title, s_type, s_desc, s_api: string;
   begin
  -  StrReport:= '';
  -  StrMessage:= '';
  -  IsInstalled:= false;
  -  NAddonType:= cAddonTypeUnknown;
  -  DirTarget:= '';
  +  AStrReport:= '';
  +  AStrMessage:= '';
  +  AIsInstalled:= false;
  +  AAddonType:= cAddonTypeUnknown;
  +  ADirTarget:= '';
     dir:= GetTempDirCounted;
   
     if not DirectoryExists(dir) then
  
positive.code: 
        if FileExists(fn_lexer) then
        begin
          CopyFile(fn_lexer, dir_lexlib+DirectorySeparator+ExtractFileName(fn_lexer));
          s_report:= s_report+msgStatusPackageLexer+' '+s_lexer+#10;
        end;
  
        if FileExists(fn_lexmap) then
          CopyFile(fn_lexmap, dir_lexlib+DirectorySeparator+ExtractFileName(fn_lexmap))
        else
          s_report:= s_report+msgStatusPackageMissedLexerMap+#10;
  
        if FileExists(fn_acp) then
        begin
          if dir_acp<>'' then
            CopyFile(fn_acp, dir_acp+DirectorySeparator+ExtractFileName(fn_acp));
          s_report:= s_report+msgStatusPackageAutoCompletion+' '+s_lexer+#10;
        end;
  
        //install from file
        an:= Manager.FindAnalyzer(s_lexer);
        if an=nil then
          an:= Manager.AddAnalyzer;
        an.LoadFromFile(fn_lexer);
  
        //also "restore lexer styles"
  
negative.code: 
    unzip:= TUnZipper.Create;
    try
      unzip.FileName:= AFilenameZip;
      unzip.OutputPath:= dir;
      try
        unzip.Examine;
        if unzip.Entries.Count=0 then
          raise Exception.Create('Zip is empty');
      except
        MsgBox(msgCannotHandleZip+#10+AFilenameZip, MB_OK+MB_ICONERROR);
        exit;
      end;
  
  