소스 검색

Cleanup for clarity, no actual changes.

Martijn Laan 4 년 전
부모
커밋
c1df43ba82
4개의 변경된 파일48개의 추가작업 그리고 48개의 파일을 삭제
  1. 6 41
      Projects/Compile.pas
  2. 2 2
      Projects/ScriptFunc_R.pas
  3. 2 2
      Projects/SetupTypes.pas
  4. 38 3
      Projects/Verinfo.pas

+ 6 - 41
Projects/Compile.pas

@@ -3072,46 +3072,11 @@ begin
   end;
 end;
 
-function StrToVersionInfoVersionNumber(const S: String; var Version: TFileVersionNumbers): Boolean;
-
-  function SplitNextNumber(var Z: String): Word;
-  var
-    I, N: Integer;
-  begin
-    if Trim(Z) <> '' then begin
-      I := Pos('.', Z);
-      if I = 0 then
-        I := Length(Z)+1;
-      N := StrToInt(Trim(Copy(Z, 1, I-1)));
-      if (N < Low(Word)) or (N > High(Word)) then
-        Abort;
-      Result := N;
-      Z := Copy(Z, I+1, Maxint);
-    end else
-      Result := 0;
-  end;
-
-var
-  Z: String;
-  W: Word;
-begin
-  try
-    Z := S;
-    W := SplitNextNumber(Z);
-    Version.MS := (DWord(W) shl 16) or SplitNextNumber(Z);
-    W := SplitNextNumber(Z);
-    Version.LS := (DWord(W) shl 16) or SplitNextNumber(Z);
-    Result := True;
-  except
-    Result := False;
-  end;
-end;
-
 procedure TSetupCompiler.ProcessMinVersionParameter(const ParamValue: TParamValue;
   var AMinVersion: TSetupVersionData);
 begin
   if ParamValue.Found then
-    if not StrToVersionNumbers(ParamValue.Data, AMinVersion) then
+    if not StrToSetupVersionData(ParamValue.Data, AMinVersion) then
       AbortCompileParamError(SCompilerParamInvalid2, ParamCommonMinVersion);
 end;
 
@@ -3119,7 +3084,7 @@ procedure TSetupCompiler.ProcessOnlyBelowVersionParameter(const ParamValue: TPar
   var AOnlyBelowVersion: TSetupVersionData);
 begin
   if ParamValue.Found then
-    if not StrToVersionNumbers(ParamValue.Data, AOnlyBelowVersion) then
+    if not StrToSetupVersionData(ParamValue.Data, AOnlyBelowVersion) then
       AbortCompileParamError(SCompilerParamInvalid2, ParamCommonOnlyBelowVersion);
 end;
 
@@ -3947,7 +3912,7 @@ begin
         AbortCompileOnLine(SCompilerMessagesFileObsolete);
       end;
     ssMinVersion: begin
-        if not StrToVersionNumbers(Value, SetupHeader.MinVersion) then
+        if not StrToSetupVersionData(Value, SetupHeader.MinVersion) then
           Invalid;
         if SetupHeader.MinVersion.WinVersion <> 0 then
           AbortCompileOnLine(SCompilerMinVersionWinMustBeZero);
@@ -3958,7 +3923,7 @@ begin
         MissingRunOnceIdsWarning := StrToBool(Value);
       end;
     ssOnlyBelowVersion: begin
-        if not StrToVersionNumbers(Value, SetupHeader.OnlyBelowVersion) then
+        if not StrToSetupVersionData(Value, SetupHeader.OnlyBelowVersion) then
           Invalid;
       end;
     ssOutput: begin
@@ -4207,7 +4172,7 @@ begin
       end;
     ssVersionInfoProductVersion: begin
         VersionInfoProductVersionOriginalValue := Value;
-        if not StrToVersionInfoVersionNumber(Value, VersionInfoProductVersion) then
+        if not StrToVersionNumbers(Value, VersionInfoProductVersion) then
           Invalid;
       end;
     ssVersionInfoProductTextVersion: begin
@@ -4218,7 +4183,7 @@ begin
       end;
     ssVersionInfoVersion: begin
         VersionInfoVersionOriginalValue := Value;
-        if not StrToVersionInfoVersionNumber(Value, VersionInfoVersion) then
+        if not StrToVersionNumbers(Value, VersionInfoVersion) then
           Invalid;
       end;
     ssWindowResizable: begin

+ 2 - 2
Projects/ScriptFunc_R.pas

@@ -1061,9 +1061,9 @@ begin
   end else if Proc.Name = 'GETSHELLFOLDERBYCSIDL' then begin
     Stack.SetString(PStart, GetShellFolderByCSIDL(Stack.GetInt(PStart-1), Stack.GetBool(PStart-2)));
   end else if Proc.Name = 'INSTALLONTHISVERSION' then begin
-    if not StrToVersionNumbers(Stack.GetString(PStart-1), MinVersion) then
+    if not StrToSetupVersionData(Stack.GetString(PStart-1), MinVersion) then
       InternalError('InstallOnThisVersion: Invalid MinVersion string')
-    else if not StrToVersionNumbers(Stack.GetString(PStart-2), OnlyBelowVersion) then
+    else if not StrToSetupVersionData(Stack.GetString(PStart-2), OnlyBelowVersion) then
       InternalError('InstallOnThisVersion: Invalid OnlyBelowVersion string')
     else
       Stack.SetBool(PStart, (InstallOnThisVersion(MinVersion, OnlyBelowVersion) = irInstall));

+ 2 - 2
Projects/SetupTypes.pas

@@ -57,7 +57,7 @@ const
 
 function StringsToCommaString(const Strings: TStrings): String;
 procedure SetStringsFromCommaString(const Strings: TStrings; const Value: String);
-function StrToVersionNumbers(const S: String; var VerData: TSetupVersionData): Boolean;
+function StrToSetupVersionData(const S: String; var VerData: TSetupVersionData): Boolean;
 procedure HandleRenamedConstants(var Cnst: String; const RenamedConstantCallback: TRenamedConstantCallback);
 
 implementation
@@ -193,7 +193,7 @@ begin
   end;
 end;
 
-function StrToVersionNumbers(const S: String; var VerData: TSetupVersionData): Boolean;
+function StrToSetupVersionData(const S: String; var VerData: TSetupVersionData): Boolean;
 
   procedure Split(const Str: String; var Ver: TSetupVersionDataVersion;
     var ServicePack: Word);

+ 38 - 3
Projects/Verinfo.pas

@@ -2,13 +2,11 @@ unit VerInfo;
 
 {
   Inno Setup
-  Copyright (C) 1997-2007 Jordan Russell
+  Copyright (C) 1997-2020 Jordan Russell
   Portions by Martijn Laan
   For conditions of distribution and use, see LICENSE.TXT.
 
   Version info functions
-
-  $jrsoftware: issrc/Projects/VerInfo.pas,v 1.10 2007/02/03 20:06:44 jr Exp $
 }
 
 interface
@@ -27,6 +25,8 @@ function GetVersionInfo(const Filename: String;
   var VersionInfo: TVSFixedFileInfo): Boolean;
 function GetVersionNumbers(const Filename: String;
   var VersionNumbers: TFileVersionNumbers): Boolean;
+function StrToVersionNumbers(const S: String;
+  var Version: TFileVersionNumbers): Boolean;
 
 implementation
 
@@ -212,4 +212,39 @@ begin
   end;
 end;
 
+function StrToVersionNumbers(const S: String; var Version: TFileVersionNumbers): Boolean;
+
+  function SplitNextNumber(var Z: String): Word;
+  var
+    I, N: Integer;
+  begin
+    if Trim(Z) <> '' then begin
+      I := Pos('.', Z);
+      if I = 0 then
+        I := Length(Z)+1;
+      N := StrToInt(Trim(Copy(Z, 1, I-1)));
+      if (N < Low(Word)) or (N > High(Word)) then
+        Abort;
+      Result := N;
+      Z := Copy(Z, I+1, Maxint);
+    end else
+      Result := 0;
+  end;
+
+var
+  Z: String;
+  W: Word;
+begin
+  try
+    Z := S;
+    W := SplitNextNumber(Z);
+    Version.MS := (DWord(W) shl 16) or SplitNextNumber(Z);
+    W := SplitNextNumber(Z);
+    Version.LS := (DWord(W) shl 16) or SplitNextNumber(Z);
+    Result := True;
+  except
+    Result := False;
+  end;
+end;
+
 end.