소스 검색

Merge branch 'main' into files-download

# Conflicts:
#	ISHelp/isetup.xml
Martijn Laan 3 달 전
부모
커밋
069e871f19
3개의 변경된 파일9개의 추가작업 그리고 8개의 파일을 삭제
  1. 1 1
      ISHelp/isetup.xml
  2. 6 6
      Projects/Src/Compiler.SetupCompiler.pas
  3. 2 1
      Projects/Src/Setup.Install.pas

+ 1 - 1
ISHelp/isetup.xml

@@ -1844,7 +1844,7 @@ Instructs Setup to proceed to comparing time stamps (last write/modified time) i
 </flag>
 <flag name="skipifsourcedoesntexist">
 <p>This flag instructs the compiler -- or Setup, if the <tt>external</tt> flag is also used -- to silently skip over the entry if the source file does not exist, instead of displaying an error message.</p>
-<p>When combined with the <tt>download</tt> flag, this flag instructs Setup to skip if the download fails for any reason.</p>
+<p>When combined with the <tt>download</tt> or <tt>extractarchive</tt> flags, this flag instructs Setup to skip if the download or extraction fails for any reason.</p>
 </flag>
 <flag name="solidbreak">
 <p>When <link topic="setup_solidcompression">solid compression</link> is enabled, this flag instructs the compiler to finalize the current compression stream and begin a new one before compressing the file(s) matched by <tt>Source</tt>. This allows Setup to seek to the file instantly without having to decompress any preceding files first. May be useful in a large, multi-component installation if you find too much time is being spent decompressing files belonging to components that weren't selected.</p>

+ 6 - 6
Projects/Src/Compiler.SetupCompiler.pas

@@ -5467,10 +5467,10 @@ begin
 
         if foExtractArchive in Options then begin
           if not ExternalFile then
-            AbortCompileFmt(SCompilerParamFlagMissing, ['external', 'extractarchive'])
-          else if not(foIgnoreVersion in Options) then
-            AbortCompileFmt(SCompilerParamFlagMissing, ['ignoreversion', 'extractarchive'])
-          else if SetupHeader.SevenZipLibraryName = '' then
+            AbortCompileFmt(SCompilerParamFlagMissing, ['external', 'extractarchive']);
+          if not(foIgnoreVersion in Options) then
+            AbortCompileFmt(SCompilerParamFlagMissing, ['ignoreversion', 'extractarchive']);
+          if SetupHeader.SevenZipLibraryName = '' then
             AbortCompileFmt(SCompilerEntryValueUnsupported, ['Setup', 'ArchiveExtraction', 'basic', 'extractarchive']);
         end;
 
@@ -5485,8 +5485,8 @@ begin
         if Sign in [fsYes, fsOnce] then begin
           if foISSigVerify in Options then
             AbortCompileFmt(SCompilerParamErrorBadCombo2,
-              [ParamCommonFlags, SignFlags[Sign], 'issigverify'])
-          else if SignTools.Count = 0 then
+              [ParamCommonFlags, SignFlags[Sign], 'issigverify']);
+          if SignTools.Count = 0 then
             Sign := fsNoSetting
         end;
 

+ 2 - 1
Projects/Src/Setup.Install.pas

@@ -1996,7 +1996,7 @@ var
     begin
       { See above }
 
-      Result := NewFileExistsRedir(DisableFsRedir, ArchiveFilename);
+      Result := True; { We handle errors ourselves }
 
       if foCustomDestName in CurFile^.Options then
         InternalError('Unexpected custom DestName');
@@ -2032,6 +2032,7 @@ var
             Failed := GetExceptMessage;
           end;
         until (Failed = '') or
+              (foSkipIfSourceDoesntExist in CurFile^.Options) or
               AbortRetryIgnoreTaskDialogMsgBox(
                 ArchiveFilename + SNewLine2 + SetupMessages[msgErrorExtracting] + SNewLine + Failed,
                 [SetupMessages[msgAbortRetryIgnoreRetry], SetupMessages[msgFileAbortRetryIgnoreSkipNotRecommended], SetupMessages[msgAbortRetryIgnoreCancel]]);