Parcourir la source

Merge branch 'darkhelp'

Todo: lighten dark mode link colors & check contents.css->#tabbody-contents->A:hover->color & update Staging-dark's styles.css.
Martijn Laan il y a 1 an
Parent
commit
1c489645a7
44 fichiers modifiés avec 254 ajouts et 477 suppressions
  1. 0 7
      .github/workflows/build.yml
  2. 1 0
      ISHelp/.gitignore
  3. 26 31
      ISHelp/ISHelpGen/ISHelpGen.dpr
  4. 6 0
      ISHelp/Staging-dark/.gitignore
  5. BIN
      ISHelp/Staging-dark/images/extlink.png
  6. 17 7
      ISHelp/Staging-dark/styles.css
  7. 33 12
      ISHelp/Staging/contents.css
  8. 1 1
      ISHelp/Staging/contents.js
  9. 0 11
      ISHelp/Staging/hh_isppredirect.xhtm
  10. 0 6
      ISHelp/Staging/hh_project.hhp
  11. BIN
      ISHelp/Staging/images/contentsheadclosed.png
  12. 7 0
      ISHelp/Staging/images/contentsheadclosed.svg
  13. BIN
      ISHelp/Staging/images/contentsheadopen.png
  14. 7 0
      ISHelp/Staging/images/contentsheadopen.svg
  15. BIN
      ISHelp/Staging/images/contentstopic.png
  16. 9 0
      ISHelp/Staging/images/contentstopic.svg
  17. BIN
      ISHelp/Staging/images/extlink.png
  18. 8 0
      ISHelp/Staging/images/extlink.svg
  19. 31 7
      ISHelp/Staging/styles.css
  20. 27 10
      ISHelp/compile.bat
  21. 24 1
      ISHelp/isetup.xml
  22. 0 0
      ISHelp/ispp.dtd
  23. 13 13
      ISHelp/ispp.xml
  24. 1 23
      ISHelp/ispp.xsl
  25. 15 0
      ISHelp/synch-darkfiles.bat
  26. 0 2
      ISPPHelp/.gitignore
  27. 0 10
      ISPPHelp/Staging/.gitignore
  28. 0 37
      ISPPHelp/Staging/contents-template.htm
  29. 0 19
      ISPPHelp/Staging/hh_project.hhp
  30. 0 4
      ISPPHelp/Staging/images/.gitignore
  31. 0 48
      ISPPHelp/Staging/index.htm
  32. 0 17
      ISPPHelp/Staging/index.php
  33. 0 85
      ISPPHelp/Staging/stoplist.stp
  34. 0 57
      ISPPHelp/compile.bat
  35. 0 21
      ISPPHelp/synch-isfiles.bat
  36. 3 1
      Projects/Bin/synch-isfiles.bat
  37. 1 1
      Projects/Src/Compil32/CompForm.dfm
  38. 3 10
      Projects/Src/Compil32/CompForm.pas
  39. 11 2
      Projects/Src/Compil32/CompFunc.pas
  40. 0 8
      README.md
  41. 2 12
      build-ce.bat
  42. 2 12
      build.bat
  43. 3 1
      setup.iss
  44. 3 1
      whatsnew.htm

+ 0 - 7
.github/workflows/build.yml

@@ -53,7 +53,6 @@ jobs:
           "set DELPHIXEROOT=$env:DELPHIXEROOT" | Out-File -NoNewline -Encoding ascii compilesettings.bat
           "set DELPHIXEROOT=$env:DELPHIXEROOT" | Out-File -NoNewline -Encoding ascii compilesettings.bat
           "set DELPHIXEROOT=$env:DELPHIXEROOT" | Out-File -NoNewline -Encoding ascii ISHelp\ISHelpGen\compilesettings.bat
           "set DELPHIXEROOT=$env:DELPHIXEROOT" | Out-File -NoNewline -Encoding ascii ISHelp\ISHelpGen\compilesettings.bat
           "set HHCEXE=%ProgramFiles(x86)%\HTML Help Workshop\hhc.exe" | Out-File -NoNewline -Encoding ascii ISHelp\compilesettings.bat
           "set HHCEXE=%ProgramFiles(x86)%\HTML Help Workshop\hhc.exe" | Out-File -NoNewline -Encoding ascii ISHelp\compilesettings.bat
-          "set HHCEXE=%ProgramFiles(x86)%\HTML Help Workshop\hhc.exe" | Out-File -NoNewline -Encoding ascii ISPPHelp\compilesettings.bat
           .\build.bat
           .\build.bat
       - name: Clean up temporary files
       - name: Clean up temporary files
         if: always()
         if: always()
@@ -63,7 +62,6 @@ jobs:
         run: |
         run: |
           copy license.txt Files
           copy license.txt Files
           copy license.txt Output
           copy license.txt Output
-          copy license.txt ISPPHelp/Staging
           copy license.txt ISHelp/Staging
           copy license.txt ISHelp/Staging
       - name: upload Files
       - name: upload Files
         uses: actions/upload-artifact@v3
         uses: actions/upload-artifact@v3
@@ -75,11 +73,6 @@ jobs:
         with:
         with:
           name: Output
           name: Output
           path: Output
           path: Output
-      - name: upload ISPPHelp
-        uses: actions/upload-artifact@v3
-        with:
-          name: ISPPHelp
-          path: ISPPHelp/Staging
       - name: upload ISHelp
       - name: upload ISHelp
         uses: actions/upload-artifact@v3
         uses: actions/upload-artifact@v3
         with:
         with:

+ 1 - 0
ISHelp/.gitignore

@@ -3,3 +3,4 @@ compilesettings.bat
 e*.bat
 e*.bat
 isxclasses_generated.xml
 isxclasses_generated.xml
 isxfunc_generated.xml
 isxfunc_generated.xml
+ispp_generated.xml

+ 26 - 31
ISHelp/ISHelpGen/ISHelpGen.dpr

@@ -13,7 +13,7 @@ uses
   UIsxclassesParser in 'UIsxclassesParser.pas';
   UIsxclassesParser in 'UIsxclassesParser.pas';
 
 
 const
 const
-  Version = '1.13';
+  Version = '1.14';
 
 
   XMLFileVersion = '1';
   XMLFileVersion = '1';
 
 
@@ -71,7 +71,7 @@ type
 
 
 var
 var
   SourceDir, OutputDir: String;
   SourceDir, OutputDir: String;
-  ISPP: Boolean;
+  NoContentsHtm: Boolean;
   Keywords, DefinedTopics, TargetTopics, SetupDirectives: TStringList;
   Keywords, DefinedTopics, TargetTopics, SetupDirectives: TStringList;
   TopicsGenerated: Integer = 0;
   TopicsGenerated: Integer = 0;
   CurrentTopicName: String;
   CurrentTopicName: String;
@@ -404,7 +404,7 @@ begin
           if Pos('ms-its:', S) = 1 then
           if Pos('ms-its:', S) = 1 then
             Result := Result + Format('<a href="%s">%s</a>', [S, ParseFormattedText(Node)])
             Result := Result + Format('<a href="%s">%s</a>', [S, ParseFormattedText(Node)])
           else
           else
-            Result := Result + Format('<a href="%s" target="_blank" title="%s">%s</a><img src="images/extlink.png" alt=" [external link]" />',
+            Result := Result + Format('<a href="%s" target="_blank" title="%s">%s</a><img src="images/extlink.png" srcset="images/extlink.svg" alt=" [external link]" />',
               [S, S, ParseFormattedText(Node)]);
               [S, S, ParseFormattedText(Node)]);
         end;
         end;
       elHeading:
       elHeading:
@@ -672,11 +672,6 @@ var
       Node := Node.NextSibling;
       Node := Node.NextSibling;
     end;
     end;
     SL.Add('</ul>');
     SL.Add('</ul>');
-    if not ISPP and (ParentNode = ContentsNode) then begin
-      { Don't put next 2 lines on 1 line or hhc will hang... }
-      SL.Add('<object type="text/sitemap">');
-      SL.Add('<param name="Merge" value="ispp.chm::\hh_generated_contents.hhc"></object>');
-    end;
   end;
   end;
 
 
 begin
 begin
@@ -701,7 +696,7 @@ var
 
 
   procedure AddLeaf(const Title, TopicName: String);
   procedure AddLeaf(const Title, TopicName: String);
   begin
   begin
-    SL.Add(Format('<tr><td><img src="images/contentstopic.png" alt="" /></td>' +
+    SL.Add(Format('<tr><td><img src="images/contentstopic.svg" alt="" /></td>' +
       '<td><a href="%s" target="bodyframe">%s</a></td></tr>',
       '<td><a href="%s" target="bodyframe">%s</a></td></tr>',
       [EscapeHTML(GenerateTopicLink(TopicName, '')), EscapeHTML(Title)]));
       [EscapeHTML(GenerateTopicLink(TopicName, '')), EscapeHTML(Title)]));
   end;
   end;
@@ -946,8 +941,10 @@ procedure Go;
               begin
               begin
                 Writeln('  - Generating hh_generated_contents.hhc');
                 Writeln('  - Generating hh_generated_contents.hhc');
                 GenerateHTMLHelpContents(Node);
                 GenerateHTMLHelpContents(Node);
-                Writeln('  - Generating contents.htm');
-                GenerateStaticContents(Node);
+                if not NoContentsHtm then begin
+                  Writeln('  - Generating contents.htm');
+                  GenerateStaticContents(Node);
+                end;
               end;
               end;
             elSetupTopic: ParseTopic(Node, True);
             elSetupTopic: ParseTopic(Node, True);
             elTopic: ParseTopic(Node, False);
             elTopic: ParseTopic(Node, False);
@@ -965,11 +962,9 @@ procedure Go;
 var
 var
   I: Integer;
   I: Integer;
 begin
 begin
-  if not ISPP then begin
-    TransformFile('isxfunc.xml', 'isxfunc.xsl', 'isxfunc_generated.xml');
-    GenerateIsxClassesFile;
-  end else
-    TransformFile('ispp.xml', 'ispp.xsl', 'ispp_generated.xml');
+  TransformFile('isxfunc.xml', 'isxfunc.xsl', 'isxfunc_generated.xml');
+  GenerateIsxClassesFile;
+  TransformFile('ispp.xml', 'ispp.xsl', 'ispp_generated.xml');
 
 
   Keywords := TStringList.Create;
   Keywords := TStringList.Create;
   Keywords.Duplicates := dupAccept;
   Keywords.Duplicates := dupAccept;
@@ -982,20 +977,20 @@ begin
   SetupDirectives.Duplicates := dupError;
   SetupDirectives.Duplicates := dupError;
   SetupDirectives.Sorted := True;
   SetupDirectives.Sorted := True;
   try
   try
-    if not ISPP then begin
-      DoDoc('isetup.xml');
-      DoDoc('isx.xml');
-      DoDoc('isxfunc_generated.xml');
-      DoDoc('isxclasses_generated.xml');
-    end else
-      DoDoc('ispp_generated.xml');
+    DoDoc('isetup.xml');
+    DoDoc('isx.xml');
+    DoDoc('isxfunc_generated.xml');
+    DoDoc('isxclasses_generated.xml');
+    DoDoc('ispp_generated.xml');
 
 
     CheckForNonexistentTargetTopics;
     CheckForNonexistentTargetTopics;
 
 
     Writeln('- Generating hh_generated_index.hhk');
     Writeln('- Generating hh_generated_index.hhk');
     GenerateHTMLHelpIndex;
     GenerateHTMLHelpIndex;
-    Writeln('- Generating contentsindex.js');
-    GenerateStaticIndex;
+    if not NoContentsHtm then begin
+      Writeln('- Generating contentsindex.js');
+      GenerateStaticIndex;
+    end;
   finally
   finally
     SetupDirectives.Free;
     SetupDirectives.Free;
     TargetTopics.Free;
     TargetTopics.Free;
@@ -1014,16 +1009,16 @@ begin
   try
   try
     Writeln('ISHelpGen v' + Version + ' by Jordan Russell & Martijn Laan');
     Writeln('ISHelpGen v' + Version + ' by Jordan Russell & Martijn Laan');
 
 
-    if ParamCount <> 1 then begin
-      Writeln('usage: ISHelpGen [source-dir]');
+    if (ParamCount = 0) or (ParamCount > 2) then begin
+      Writeln('usage: ISHelpGen <source-dir> [postfix]');
       Halt(2);
       Halt(2);
     end;
     end;
     SourceDir := ParamStr(1) + '\';
     SourceDir := ParamStr(1) + '\';
-    OutputDir := SourceDir + 'Staging\';
+    OutputDir := SourceDir + 'Staging' + ParamStr(2) + '\';
 
 
-    ISPP := FileExists(SourceDir + 'ispp.xml');
-    if ISPP then
-      Writeln('Running in ISPP mode');
+    NoContentsHtm := not FileExists(OutputDir + 'contents-template.htm');
+    if NoContentsHtm then
+      Writeln('Running in NoContentsHtm mode');
 
 
     OleCheck(CoInitialize(nil));  { for MSXML }
     OleCheck(CoInitialize(nil));  { for MSXML }
 
 

+ 6 - 0
ISHelp/Staging-dark/.gitignore

@@ -0,0 +1,6 @@
+hh_project.hhp
+stoplist.stp
+topic.js
+hh_generated_contents.hhc
+hh_generated_index.hhk
+isetup.chm

BIN
ISHelp/Staging-dark/images/extlink.png


+ 17 - 7
ISPPHelp/Staging/styles.css → ISHelp/Staging-dark/styles.css

@@ -1,13 +1,17 @@
 /*
 /*
   Inno Setup
   Inno Setup
-  Copyright (C) 1997-2010 Jordan Russell
+  Copyright (C) 1997-2024 Jordan Russell
   Portions by Martijn Laan
   Portions by Martijn Laan
   For conditions of distribution and use, see LICENSE.TXT.
   For conditions of distribution and use, see LICENSE.TXT.
+
+	Style sheet used by topic_*.htm
 */
 */
 
 
 BODY {
 BODY {
 	font: small arial, sans-serif;
 	font: small arial, sans-serif;
 	margin: 0;
 	margin: 0;
+	background-color: #1f1f1f;
+	color:#d6d6d6;
 }
 }
 PRE, TT {
 PRE, TT {
 	font: small "courier new", monospace;
 	font: small "courier new", monospace;
@@ -35,6 +39,12 @@ TD {
            (firefox 1.5 and opera 9 don't have this problem) */
            (firefox 1.5 and opera 9 don't have this problem) */
 	vertical-align: baseline;
 	vertical-align: baseline;
 }
 }
+IMG {
+	width: 16px;
+	height: 16px;
+	border-style: none;
+	padding-left: 2px;
+}
 A {
 A {
 	text-decoration: none;
 	text-decoration: none;
 }
 }
@@ -79,8 +89,8 @@ LI.compact {
 }
 }
 
 
 .topicheading {
 .topicheading {
-	background: ButtonFace;
-	color: WindowText;
+	background-color: #403E41;
+	color: #d6d6d6;
 	padding: 4px 8px;
 	padding: 4px 8px;
 	margin: 0;
 	margin: 0;
 	font-size: 120%;
 	font-size: 120%;
@@ -91,10 +101,10 @@ LI.compact {
 }
 }
 
 
 .examplebox {
 .examplebox {
-	background: #f8f8f8;
-	color: black;
+	background-color: #403E41; 
+	color: #d6d6d6;
 	padding: 4px;
 	padding: 4px;
-	border: 1px solid #e0e0e0;
+	border: 1px solid #716F71;
 	/* on IE6, if the content of the box is wider than the page,
 	/* on IE6, if the content of the box is wider than the page,
 	   the width of the box is increased. on firefox 1.5, by default
 	   the width of the box is increased. on firefox 1.5, by default
 	   the box width stays the same, and the content is drawn outside
 	   the box width stays the same, and the content is drawn outside
@@ -143,7 +153,7 @@ TD.setuphdrr {
 
 
 #redirectbox {
 #redirectbox {
 	position: absolute;
 	position: absolute;
-	background: InfoBackground;
+	background-color: InfoBackground;
 	color: InfoText;
 	color: InfoText;
 	padding: 16px 24px;
 	padding: 16px 24px;
 	border: 1px solid ThreeDDarkShadow;
 	border: 1px solid ThreeDDarkShadow;

+ 33 - 12
ISHelp/Staging/contents.css

@@ -7,12 +7,23 @@
   Style sheet used by contents.htm
   Style sheet used by contents.htm
 */
 */
 
 
+:root {
+  color-scheme: light dark;
+  --light-color: WindowText;
+  --dark-color: #d6d6d6;
+  --light-background-color: Window;
+  --dark-background-color: #1f1f1f;
+  --light-tool-background-color: ButtonFace;
+  --dark-tool-background-color: #403E41;
+}
 BODY {
 BODY {
 	font-family: "Segoe UI", Tahoma, sans-serif;
 	font-family: "Segoe UI", Tahoma, sans-serif;
 	font-size: 75%;   /* 9pt (12px/16px) */
 	font-size: 75%;   /* 9pt (12px/16px) */
 	margin: 0;
 	margin: 0;
-	color: WindowText;
-	background-color: Window;
+	color: WindowText; /* for IE */
+	color: light-dark(var(--light-color), var(--dark-color));
+	background-color: Window; /* for IE */
+	background-color: light-dark(var(--light-background-color), var(--dark-background-color));
 }
 }
 INPUT {
 INPUT {
 	font: inherit;
 	font: inherit;
@@ -20,8 +31,10 @@ INPUT {
 
 
 
 
 #tabbar {
 #tabbar {
-	background-color: ButtonFace;
-	color: WindowText;
+	background-color: ButtonFace; /* for IE */
+	background-color: light-dark(var(--light-tool-background-color), var(--dark-tool-background-color));
+	color: WindowText; /* for IE */
+	color: light-dark(var(--light-color), var(--dark-color));
 	padding-top: 6px;
 	padding-top: 6px;
 	cursor: default;
 	cursor: default;
 	-moz-user-select: none;
 	-moz-user-select: none;
@@ -31,7 +44,8 @@ INPUT {
 	font-weight: bold;
 	font-weight: bold;
 }
 }
 #tabbar TD.selectedtab {
 #tabbar TD.selectedtab {
-	background-color: Window;
+	background-color: Window; /* for IE */
+	background-color: light-dark(var(--light-background-color), var(--dark-background-color));
 	padding: 2px 6px 3px 6px;
 	padding: 2px 6px 3px 6px;
 	border-bottom: none;
 	border-bottom: none;
 }
 }
@@ -41,7 +55,8 @@ INPUT {
 }
 }
 #tabbar A {
 #tabbar A {
 	background-color: transparent;
 	background-color: transparent;
-	color: WindowText;
+	color: WindowText; /* for IE */
+	color: light-dark(var(--light-color), var(--dark-color));
 	text-decoration: none;
 	text-decoration: none;
 	outline: none;
 	outline: none;
 }
 }
@@ -63,7 +78,8 @@ INPUT {
 #tabbody-contents A:link,
 #tabbody-contents A:link,
 #tabbody-contents A:visited,
 #tabbody-contents A:visited,
 #tabbody-contents A:active {
 #tabbody-contents A:active {
-	color: WindowText;
+	color: WindowText; /* for IE */
+	color: light-dark(var(--light-color), var(--dark-color));
 	background-color: transparent;
 	background-color: transparent;
 	text-decoration: none;
 	text-decoration: none;
 }
 }
@@ -73,15 +89,18 @@ INPUT {
 }
 }
 #tabbody-contents A.selectedlink:link,
 #tabbody-contents A.selectedlink:link,
 #tabbody-contents A.selectedlink:visited {
 #tabbody-contents A.selectedlink:visited {
-	color: WindowText;
-	background-color: ButtonFace;
+	color: WindowText; /* for IE */
+	color: light-dark(var(--light-color), var(--dark-color));
+	background-color: ButtonFace; /* for IE */
+	background-color: light-dark(var(--light-tool-background-color), var(--dark-tool-background-color));
 }
 }
 /* It would be cleaner to use :focus, but IE<8 doesn't support it */
 /* It would be cleaner to use :focus, but IE<8 doesn't support it */
 #tabbody-contents A.focusedlink:link,
 #tabbody-contents A.focusedlink:link,
 #tabbody-contents A.focusedlink:visited {
 #tabbody-contents A.focusedlink:visited {
 	color: HighlightText;
 	color: HighlightText;
 	background-color: Highlight;
 	background-color: Highlight;
-	outline-color: WindowText;   /* needed for focus rect to appear on Firefox (3.5) */
+	outline-color: WindowText; /* for IE */
+	outline-color: light-dark(var(--light-color), var(--dark-color));   /* needed for focus rect to appear on Firefox (3.5) */
 }
 }
 #tabbody-contents TABLE {
 #tabbody-contents TABLE {
 	border-collapse: collapse;
 	border-collapse: collapse;
@@ -110,7 +129,8 @@ INPUT {
 #tabbody-index A:link,
 #tabbody-index A:link,
 #tabbody-index A:visited,
 #tabbody-index A:visited,
 #tabbody-index A:active {
 #tabbody-index A:active {
-	color: WindowText;
+	color: WindowText; /* for IE */
+	color: light-dark(var(--light-color), var(--dark-color));
 	background-color: transparent;
 	background-color: transparent;
 	text-decoration: none;
 	text-decoration: none;
 }
 }
@@ -121,5 +141,6 @@ INPUT {
 #tabbody-index A:focus {
 #tabbody-index A:focus {
 	color: HighlightText;
 	color: HighlightText;
 	background-color: Highlight;
 	background-color: Highlight;
-	outline-color: WindowText;   /* needed for focus rect to appear on Firefox (3.5) */
+	outline-color: WindowText; /* for IE */
+	outline-color: light-dark(var(--light-color), var(--dark-color));   /* needed for focus rect to appear on Firefox (3.5) */
 }
 }

+ 1 - 1
ISHelp/Staging/contents.js

@@ -80,7 +80,7 @@ function toggle_node(id)
 	objContent.style.display = expanding ? "" : "none";
 	objContent.style.display = expanding ? "" : "none";
 
 
 	document.getElementById("nodeimg_" + id).src =
 	document.getElementById("nodeimg_" + id).src =
-		expanding ? "images/contentsheadopen.png" : "images/contentsheadclosed.png";
+		expanding ? "images/contentsheadopen.svg" : "images/contentsheadclosed.svg";
 
 
 	if (expanding) {
 	if (expanding) {
 		// Scroll expanded items into view. This is similar to calling scrollIntoView() but
 		// Scroll expanded items into view. This is similar to calling scrollIntoView() but

+ 0 - 11
ISHelp/Staging/hh_isppredirect.xhtm

@@ -1,11 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Note: This file has an "xhtm" extension so that the Search tab will ignore it -->
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta http-equiv="Refresh" content="0; url=ms-its:ispp.chm::/topic_isppoverview.htm" />
-<title>ISPP Redirect Page</title>
-</head>
-<body>
-</body>
-</html>

+ 0 - 6
ISHelp/Staging/hh_project.hhp

@@ -15,11 +15,5 @@ Title=Inno Setup Help
 $global_ismain=,"hh_generated_contents.hhc","hh_generated_index.hhk",,,,,,,0x22520,,0x300e,,,,,,,,0
 $global_ismain=,"hh_generated_contents.hhc","hh_generated_index.hhk",,,,,,,0x22520,,0x300e,,,,,,,,0
 
 
 
 
-[FILES]
-hh_isppredirect.xhtm
-
-[MERGE FILES]
-ispp.chm
-
 [INFOTYPES]
 [INFOTYPES]
 
 

BIN
ISHelp/Staging/images/contentsheadclosed.png


+ 7 - 0
ISHelp/Staging/images/contentsheadclosed.svg

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="16px" height="16px" viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve">
+  <g id="icon">
+    <path d="M4.779,1.455l6.442,6.524l-6.442,6.524" fill="none" stroke="#7A7672" stroke-width="1.1" stroke-miterlimit="50"/>
+  </g>
+</svg>

BIN
ISHelp/Staging/images/contentsheadopen.png


+ 7 - 0
ISHelp/Staging/images/contentsheadopen.svg

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="16px" height="16px" viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve">
+  <g id="icon">
+    <path d="M14.524,4.758L8,11.2L1.476,4.758" fill="none" stroke="#7A7672" stroke-width="1.1" stroke-miterlimit="50"/>
+  </g>
+</svg>

BIN
ISHelp/Staging/images/contentstopic.png


+ 9 - 0
ISHelp/Staging/images/contentstopic.svg

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="16px" height="16px" viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve">
+  <g id="icon">
+    <circle cx="7.5" cy="7.5" r="7" fill="none" stroke="#228BCB" stroke-width="1" stroke-miterlimit="50"/>
+    <path d="M4.977,4.908C5.357,4.107,6.165,3.5,7.4,3.5c1.754,0,2.723,1.133,2.7,2.381c-0.023,1.225,-0.796,1.659,-1.488,2.026c-0.588,0.309,-1.12,0.561,-1.108,1.27v0.815" fill="none" stroke="#228BCB" stroke-width="1" stroke-miterlimit="50"/>
+    <rect x="6.7" y="11" width="1.6" height="1.3" fill="#238BCB"/>
+  </g>
+</svg>

BIN
ISHelp/Staging/images/extlink.png


+ 8 - 0
ISHelp/Staging/images/extlink.svg

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="16px" height="16px" viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve">
+  <g id="icon">
+    <path d="M12.45,12.45c-2.734,2.734,-7.166,2.734,-9.899,0s-2.734,-7.166,0,-9.899s7.166,-2.734,9.899,0S15.183,9.716,12.45,12.45z" fill="none" stroke="#228BCB" stroke-width="1" stroke-miterlimit="50"/>
+    <path d="M5,4.5h5.5v5.5M4.406,10.594L10.25,4.75" fill="none" stroke="#228BCB" stroke-width="1" stroke-miterlimit="50"/>
+  </g>
+</svg>

+ 31 - 7
ISHelp/Staging/styles.css

@@ -1,13 +1,26 @@
 /*
 /*
   Inno Setup
   Inno Setup
-  Copyright (C) 1997-2010 Jordan Russell
+  Copyright (C) 1997-2024 Jordan Russell
   Portions by Martijn Laan
   Portions by Martijn Laan
   For conditions of distribution and use, see LICENSE.TXT.
   For conditions of distribution and use, see LICENSE.TXT.
+
+	Style sheet used by topic_*.htm
 */
 */
 
 
+:root {
+  color-scheme: light dark;
+  --light-color: WindowText;
+  --dark-color: #d6d6d6;
+  --light-background-color: Window;
+  --dark-background-color: #1f1f1f;
+  --light-tool-background-color: ButtonFace;
+  --dark-tool-background-color: #403E41;
+}
 BODY {
 BODY {
 	font: small arial, sans-serif;
 	font: small arial, sans-serif;
 	margin: 0;
 	margin: 0;
+	color: light-dark(var(--light-color), var(--dark-color));
+	background-color: light-dark(var(--light-background-color), var(--dark-background-color));
 }
 }
 PRE, TT {
 PRE, TT {
 	font: small "courier new", monospace;
 	font: small "courier new", monospace;
@@ -35,6 +48,12 @@ TD {
            (firefox 1.5 and opera 9 don't have this problem) */
            (firefox 1.5 and opera 9 don't have this problem) */
 	vertical-align: baseline;
 	vertical-align: baseline;
 }
 }
+IMG {
+	width: 16px;
+	height: 16px;
+	border-style: none;
+	padding-left: 2px;
+}
 A {
 A {
 	text-decoration: none;
 	text-decoration: none;
 }
 }
@@ -79,8 +98,10 @@ LI.compact {
 }
 }
 
 
 .topicheading {
 .topicheading {
-	background: ButtonFace;
-	color: WindowText;
+	background-color: ButtonFace; /* for IE */
+	background-color: light-dark(var(--light-tool-background-color), var(--dark-tool-background-color));
+	color: WindowText; /* for IE */
+	color: light-dark(var(--light-color), var(--dark-color));
 	padding: 4px 8px;
 	padding: 4px 8px;
 	margin: 0;
 	margin: 0;
 	font-size: 120%;
 	font-size: 120%;
@@ -91,10 +112,13 @@ LI.compact {
 }
 }
 
 
 .examplebox {
 .examplebox {
-	background: #f8f8f8;
-	color: black;
+	background-color: #f8f8f8; /* for IE */
+	background-color: light-dark(#f8f8f8, var(--dark-tool-background-color));
+	color: black; /* for IE */
+	color: light-dark(black, var(--dark-color));
 	padding: 4px;
 	padding: 4px;
-	border: 1px solid #e0e0e0;
+	border: 1px solid #e0e0e0; /* for IE */
+	border: 1px solid light-dark(#e0e0e0, #716f71);
 	/* on IE6, if the content of the box is wider than the page,
 	/* on IE6, if the content of the box is wider than the page,
 	   the width of the box is increased. on firefox 1.5, by default
 	   the width of the box is increased. on firefox 1.5, by default
 	   the box width stays the same, and the content is drawn outside
 	   the box width stays the same, and the content is drawn outside
@@ -143,7 +167,7 @@ TD.setuphdrr {
 
 
 #redirectbox {
 #redirectbox {
 	position: absolute;
 	position: absolute;
-	background: InfoBackground;
+	background-color: InfoBackground;
 	color: InfoText;
 	color: InfoText;
 	padding: 16px 24px;
 	padding: 16px 24px;
 	border: 1px solid ThreeDDarkShadow;
 	border: 1px solid ThreeDDarkShadow;

+ 27 - 10
ISHelp/compile.bat

@@ -9,6 +9,8 @@ rem  Batch file to compile the help file
 
 
 setlocal
 setlocal
 
 
+cd /d %~dp0
+
 if exist compilesettings.bat goto compilesettingsfound
 if exist compilesettings.bat goto compilesettingsfound
 :compilesettingserror
 :compilesettingserror
 echo ISHelp\compilesettings.bat is missing or incomplete. It needs to be created
 echo ISHelp\compilesettings.bat is missing or incomplete. It needs to be created
@@ -24,27 +26,42 @@ if "%HHCEXE%"=="" goto compilesettingserror
 
 
 rem -------------------------------------------------------------------------
 rem -------------------------------------------------------------------------
 
 
-echo Generating help files using ISHelpGen:
+echo Synching dark files:
 echo.
 echo.
-ISHelpGen\ISHelpGen.exe .
+call synch-darkfiles.bat nopause
 if errorlevel 1 goto failed
 if errorlevel 1 goto failed
 
 
+call :generate_help
+if errorlevel 1 goto failed
+call :generate_help -dark
+if errorlevel 1 goto failed
+
+del /q Staging-dark\topic_*.htm
+
+echo Success!
+exit /b 0
+
+:generate_help
+echo Generating help files using ISHelpGen:
+echo.
+ISHelpGen\ISHelpGen.exe . %1
+if errorlevel 1 exit /b 1
+
 echo.
 echo.
 echo Running HTML Help Compiler (hhc.exe):
 echo Running HTML Help Compiler (hhc.exe):
 echo.
 echo.
-if exist Staging\isetup.chm del Staging\isetup.chm
-if exist Staging\isetup.chm goto failed
-"%HHCEXE%" Staging\hh_project.hhp
-if %errorlevel% neq 1 goto failed
-if not exist Staging\isetup.chm goto failed
+if exist Staging%1\isetup.chm del Staging%1\isetup.chm
+if exist Staging%1\isetup.chm exit /b 1
+"%HHCEXE%" Staging%1\hh_project.hhp
+if %errorlevel% neq 1 exit /b 1
+if not exist Staging%1\isetup.chm exit /b 1
 
 
 rem  HHC leaves behind a temporary file each time it runs...
 rem  HHC leaves behind a temporary file each time it runs...
 if exist "%TEMP%\~hh*.tmp" del /q "%TEMP%\~hh*.tmp"
 if exist "%TEMP%\~hh*.tmp" del /q "%TEMP%\~hh*.tmp"
 
 
-copy Staging\isetup.chm ..\Files\ISetup.chm
-if not exist ..\Files\ISetup.chm goto failed
+copy Staging%1\isetup.chm ..\Files\ISetup%1.chm
+if not exist ..\Files\ISetup%1.chm exit /b 1
 
 
-echo Success!
 exit /b 0
 exit /b 0
 
 
 :failed
 :failed

+ 24 - 1
ISHelp/isetup.xml

@@ -56,6 +56,19 @@
     <contentstopic title="Using COM Automation objects" topic="scriptautomation" />
     <contentstopic title="Using COM Automation objects" topic="scriptautomation" />
     <contentstopic title="Debugging" topic="scriptdebug" />
     <contentstopic title="Debugging" topic="scriptdebug" />
   </contentsheading>
   </contentsheading>
+  <contentsheading title="Inno Setup Preprocessor">
+    <contentstopic title="Introduction" topic="isppoverview" />
+    <contentstopic title="Directives Reference" topic="directives" />
+    <contentstopic title="Support Functions Reference" topic="funcs" />
+    <contentstopic title="User Defined Functions" topic="macros" />
+    <contentstopic title="Expression Syntax" topic="expressions" />
+    <contentstopic title="Predefined Variables" topic="predefinedvars" />
+    <contentstopic title="Line Spanning" topic="linespan" />
+    <contentstopic title="Visibility of Identifiers" topic="visibility" />
+    <contentstopic title="Example Script" topic="example" />
+    <contentstopic title="ISPPBuiltins.iss" topic="builtinsiss" />
+    <contentstopic title="Extended Command Line Compiler" topic="isppcc" />
+  </contentsheading>
   <contentsheading title="Other Information">
   <contentsheading title="Other Information">
     <contentstopic title="Support Inno Setup" topic="donate" />
     <contentstopic title="Support Inno Setup" topic="donate" />
     <contentstopic title="Unicode Inno Setup" topic="unicode" />
     <contentstopic title="Unicode Inno Setup" topic="unicode" />
@@ -3377,12 +3390,22 @@ Filename: "{win}\MYPROG.INI"; Section: "InstallSettings"; Key: "InstallPath"; St
 
 
 <p>As shown in the example above, filenames that include spaces must be enclosed in quotes.</p>
 <p>As shown in the example above, filenames that include spaces must be enclosed in quotes.</p>
 
 
-<p>Valid options are: "/O-" to disable output (overriding any <tt>Output</tt> setting in the script), "/O+" to enable output (overriding any <tt>Output</tt> setting in the script), "/O" to specify an output path (overriding any <tt>OutputDir</tt> setting in the script), "/F" to specify an output filename (overriding any <tt>OutputBaseFilename</tt> setting in the script), "/S" to specify a Sign Tool (any Sign Tools configured using the Compiler IDE will be specified automatically), "/Q[p]" for quiet compile (print only error messages, "p" will show progress info), and "/?" to show a help screen.</p>
+<p>Valid options are:</p>
 
 
 <indent>
 <indent>
+<table>
+<tr><td>/O(+|-)</td><td>Enable or disable output (overrides <tt>Output</tt>)</td></tr>
+<tr><td>/O&lt;path&gt;</td><td>Output files to specified path (overrides <tt>OutputDir</tt>)</td></tr>
+<tr><td>/F&lt;filename&gt;</td><td>Specifies an output filename (overrides <tt>OutputBaseFilename</tt>)</td></tr>
+<tr><td>/S&lt;name&gt;=&lt;command></td><td>Sets a SignTool with the specified name and command (any Sign Tools configured using the Compiler IDE will be specified automatically)</td></tr>
+<tr><td>/Q</td><td>Quiet compile (print error messages only)</td></tr>
+<tr><td>/Qp</td><td>Enable quiet compile while still displaying progress</td></tr>
+</table>
 <example>iscc /Qp /O"My Output" /F"MyProgram-1.0" /Sbyparam=$p "c:\isetup\samples\my script.iss"</example>
 <example>iscc /Qp /O"My Output" /F"MyProgram-1.0" /Sbyparam=$p "c:\isetup\samples\my script.iss"</example>
 </indent>
 </indent>
 
 
+<p>Also see <link topic="isppcc">Inno Setup Preprocessor: Command Line Compiler</link> for additional options.</p>
+
 <p>ISCC will return an exit code of 0 if the compile was successful, 1 if the command line parameters were invalid or an internal error occurred, or 2 if the compile failed.</p>
 <p>ISCC will return an exit code of 0 if the compile was successful, 1 if the command line parameters were invalid or an internal error occurred, or 2 if the compile failed.</p>
 </li>
 </li>
 
 

+ 0 - 0
ISPPHelp/ispp.dtd → ISHelp/ispp.dtd


+ 13 - 13
ISPPHelp/ispp.xml → ISHelp/ispp.xml

@@ -37,7 +37,7 @@
 		<title>Introduction</title>
 		<title>Introduction</title>
 		<description header="no">
 		<description header="no">
 			<p>The main purpose of Inno Setup Preprocessor (ISPP) is to automate compile-time tasks and avoid repetition in your scripts. For example, you can declare a compile-time ISPP variable &dash; containing your application name, for instance &dash; and then use its value in several places of your script. If for some reason you need to change the name of your application, you'll have to change it only once in your script. Without ISPP, you would need to change all occurrences of your application name throughout the script.</p>
 			<p>The main purpose of Inno Setup Preprocessor (ISPP) is to automate compile-time tasks and avoid repetition in your scripts. For example, you can declare a compile-time ISPP variable &dash; containing your application name, for instance &dash; and then use its value in several places of your script. If for some reason you need to change the name of your application, you'll have to change it only once in your script. Without ISPP, you would need to change all occurrences of your application name throughout the script.</p>
-			<p>Another example of using ISPP would be gathering version information from your application at compile-time by reading the version info of an EXE file, and using it in your <extlink href="ms-its:isetup.chm::/topic_setup_appvername.htm">AppVerName</extlink> [Setup] section directive or anywhere else. Without ISPP, you would have to modify your script each time the version of your application changes.</p>
+			<p>Another example of using ISPP would be gathering version information from your application at compile-time by reading the version info of an EXE file, and using it in your <link href="setup_appvername">AppVerName</link> [Setup] section directive or anywhere else. Without ISPP, you would have to modify your script each time the version of your application changes.</p>
 			<p>ISPP can even scan your source folder and generate script lines for the found files. Without ISPP, you would have to manually maintain the list of files.</p>
 			<p>ISPP can even scan your source folder and generate script lines for the found files. Without ISPP, you would have to manually maintain the list of files.</p>
 			<p>Conditional in- and exclusion of portions of script is also possible by using ISPP: you can create one single script for different versions/levels of your applications (for example, trial versus fully functional). Without ISPP, you would need multiple scripts.</p>
 			<p>Conditional in- and exclusion of portions of script is also possible by using ISPP: you can create one single script for different versions/levels of your applications (for example, trial versus fully functional). Without ISPP, you would need multiple scripts.</p>
 			<p>Finally, ISPP makes it possible to split long lines using a line spanning symbol.</p>
 			<p>Finally, ISPP makes it possible to split long lines using a line spanning symbol.</p>
@@ -690,7 +690,7 @@ The first group of options (<tt>option</tt>) controls the general options, while
 		<topic id="funcs">
 		<topic id="funcs">
 			<title>Support Functions Reference</title>
 			<title>Support Functions Reference</title>
 			<description header="no">
 			<description header="no">
-				<p>There are a number of built-in support functions which you can use to perform compile-time actions and/or change your script. For example the following uses ISPP function <link href="GetVersionNumbersString">GetVersionNumbersString</link> to read version info from an EXE and uses the return value of the function to set the <extlink href="ms-its:isetup.chm::/topic_setup_appvername.htm">AppVerName</extlink> [Setup] section directive using ISPP directive &emit;:</p>
+				<p>There are a number of built-in support functions which you can use to perform compile-time actions and/or change your script. For example the following uses ISPP function <link href="GetVersionNumbersString">GetVersionNumbersString</link> to read version info from an EXE and uses the return value of the function to set the <link href="setup_appvername">AppVerName</link> [Setup] section directive using ISPP directive &emit;:</p>
         <pre>
         <pre>
           <line>#define MyAppVer GetVersionNumbersString(AddBackslash(SourcePath) + "MyProg.exe")</line>
           <line>#define MyAppVer GetVersionNumbersString(AddBackslash(SourcePath) + "MyProg.exe")</line>
           <line></line>
           <line></line>
@@ -932,7 +932,7 @@ The first group of options (<tt>option</tt>) controls the general options, while
 					<pre><line><b>str</b> SetupSetting(<b>str</b>)</line></pre>
 					<pre><line><b>str</b> SetupSetting(<b>str</b>)</line></pre>
 				</section>
 				</section>
 				<description>
 				<description>
-					<p>Parses <extlink href="ms-its:isetup.chm::/topic_setupsection.htm">[Setup] section</extlink> in &curtrans; to find the key whose name is specified as function parameter. Function returns the value of that key if it's found, or an empty string otherwise.</p>
+					<p>Parses <link href="setupsection">[Setup] section</link> in &curtrans; to find the key whose name is specified as function parameter. Function returns the value of that key if it's found, or an empty string otherwise.</p>
 				</description>
 				</description>
 			</topic>
 			</topic>
 			<topic id="SetSetupSetting">
 			<topic id="SetSetupSetting">
@@ -2041,18 +2041,18 @@ The first group of options (<tt>option</tt>) controls the general options, while
 			</description>
 			</description>
 		</topic>
 		</topic>
 		<topic id="isppcc">
 		<topic id="isppcc">
-			<title>Command Line Compiler Execution</title>
+			<title>Command Line Compiler</title>
 			<description header="no">
 			<description header="no">
-				<p>If Inno Setup Preprocessor is installed the console-mode compiler ISCC.exe automatically provides extra parameters to control Inno Setup Preprocessor:</p>
+				<p>The <link href="compilercmdline">console-mode compiler</link> (ISCC.exe) provides extra parameters to control Inno Setup Preprocessor:</p>
 				<table>
 				<table>
-					<tr><td><code>/D&lt;name&gt;[=&lt;value&gt;]</code></td><td>Emulate <code>#define public &lt;name&gt; &lt;value&gt;</code></td></tr>
-					<tr><td><code>/$&lt;letter&gt;(+|-)</code></td><td>Emulate <code>#pragma option -&lt;letter&gt;(+|-)</code></td></tr>
-					<tr><td><code>/P&lt;letter&gt;(+|-)</code></td><td>Emulate <code>#pragma parseroption -&lt;letter&gt;(+|-)</code></td></tr>
-					<tr><td><code>/I&lt;paths&gt;</code></td><td>Emulate <code>#pragma include &lt;paths&gt;</code></td></tr>
-					<tr><td><code>/J&lt;filename&gt;</code></td><td>Emulate <code>#include &lt;filename&gt;</code></td></tr>
-					<tr><td><code>/{#&lt;string&gt;</code></td><td>Emulate <code>#pragma inlinestart &lt;string&gt;</code></td></tr>
-					<tr><td><code>/}&lt;string&gt;</code></td><td>Emulate <code>#pragma inlineend &lt;string&gt;</code></td></tr>
-					<tr><td><code>/V&lt;number&gt;</code></td><td>Emulate <code>#pragma verboselevel &lt;number&gt;</code></td></tr>
+					<tr><td>/D&lt;name&gt;[=&lt;value&gt;]</td><td>Emulate <code>#define public &lt;name&gt; &lt;value&gt;</code></td></tr>
+					<tr><td>/$&lt;letter&gt;(+|-)</td><td>Emulate <code>#pragma option -&lt;letter&gt;(+|-)</code></td></tr>
+					<tr><td>/P&lt;letter&gt;(+|-)</td><td>Emulate <code>#pragma parseroption -&lt;letter&gt;(+|-)</code></td></tr>
+					<tr><td>/I&lt;paths&gt;</td><td>Emulate <code>#pragma include &lt;paths&gt;</code></td></tr>
+					<tr><td>/J&lt;filename&gt;</td><td>Emulate <code>#include &lt;filename&gt;</code></td></tr>
+					<tr><td>/{#&lt;string&gt;</td><td>Emulate <code>#pragma inlinestart &lt;string&gt;</code></td></tr>
+					<tr><td>/}&lt;string&gt;</td><td>Emulate <code>#pragma inlineend &lt;string&gt;</code></td></tr>
+					<tr><td>/V&lt;number&gt;</td><td>Emulate <code>#pragma verboselevel &lt;number&gt;</code></td></tr>
 				</table>
 				</table>
 				<p>Example: <tt>iscc /$c- /Pu+ "/DLicenseFile=Trial License.txt" /Ic:\inc;d:\inc /Jdefines.iss "c:\isetup\samples\my script.iss"</tt></p>
 				<p>Example: <tt>iscc /$c- /Pu+ "/DLicenseFile=Trial License.txt" /Ic:\inc;d:\inc /Jdefines.iss "c:\isetup\samples\my script.iss"</tt></p>
 			</description>
 			</description>

+ 1 - 23
ISPPHelp/ispp.xsl → ISHelp/ispp.xsl

@@ -10,7 +10,7 @@
   <xsl:comment>
   <xsl:comment>
     Inno Setup Preprocessor Reference
     Inno Setup Preprocessor Reference
     Copyright (C) 1997-2024 Jordan Russell
     Copyright (C) 1997-2024 Jordan Russell
-    Portions Copyright (C) 2000-2020 Martijn Laan
+    Portions Copyright (C) 2000-2024 Martijn Laan
     For conditions of distribution and use, see LICENSE.TXT.
     For conditions of distribution and use, see LICENSE.TXT.
     Portions Copyright (C) 2001-2004 Alex Yackimoff
     Portions Copyright (C) 2001-2004 Alex Yackimoff
 
 
@@ -19,28 +19,6 @@
 
 
   <ishelp version="1">
   <ishelp version="1">
 
 
-  <xsl:comment>Table of contents</xsl:comment>
-
-  <contents>
-    <contentsheading title="Inno Setup Preprocessor">
-      <contentstopic title="Introduction" topic="isppoverview" />
-      <contentstopic title="Directives Reference" topic="directives" />
-      <contentstopic title="Support Functions Reference" topic="funcs" />
-      <contentstopic title="User Defined Functions" topic="macros" />
-      <contentstopic title="Expression Syntax" topic="expressions" />
-      <contentstopic title="Predefined Variables" topic="predefinedvars" />
-      <contentstopic title="Line Spanning" topic="linespan" />
-      <contentsheading title="Other Information">
-        <contentstopic title="Visibility of Identifiers" topic="visibility" />
-        <contentstopic title="Example Script" topic="example" />
-        <contentstopic title="ISPPBuiltins.iss" topic="builtinsiss" />
-        <contentstopic title="Extended Command Line Compiler" topic="isppcc" />
-      </contentsheading>
-    </contentsheading>
-  </contents>
-
-  <xsl:comment>Topics</xsl:comment>
-
   <xsl:apply-templates/>
   <xsl:apply-templates/>
 
 
   </ishelp>
   </ishelp>

+ 15 - 0
ISHelp/synch-darkfiles.bat

@@ -0,0 +1,15 @@
+@echo off
+
+cd /d %~dp0
+
+echo - Synching files from Staging to Staging-dark
+
+copy Staging\hh_project.hhp Staging-dark
+copy Staging\stoplist.stp Staging-dark
+copy Staging\topic.js Staging-dark
+
+echo - Synching files done
+
+if "%1"=="nopause" goto :eof
+
+pause

+ 0 - 2
ISPPHelp/.gitignore

@@ -1,2 +0,0 @@
-isetup.dtd
-ispp_generated.xml

+ 0 - 10
ISPPHelp/Staging/.gitignore

@@ -1,10 +0,0 @@
-contents.css
-contents.js
-styles.css
-topic.js
-contents.htm
-contentsindex.js
-hh_generated_contents.hhc
-hh_generated_index.hhk
-ispp.chm
-topic_*.htm

+ 0 - 37
ISPPHelp/Staging/contents-template.htm

@@ -1,37 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta http-equiv="X-UA-Compatible" content="IE=8" />
-<title>Inno Setup Preprocessor Help Contents</title>
-<!--[if IE 6]><style type="text/css">html{overflow-y:scroll}</style><![endif]-->
-<link rel="stylesheet" type="text/css" href="contents.css" />
-<script type="text/javascript" src="contents.js"></script>
-</head>
-<body onload="init_contents(2);">
-
-<div id="tabbar">
-<table cellspacing="0">
-<tr>
-<td><div style="width: 4px"></div></td>
-<td id="tab-contents" class="selectedtab" onmousedown="select_tab('contents');"><a href="javascript:select_tab('contents');">Contents</a></td>
-<td id="tab-index" class="unselectedtab" onmousedown="select_tab('index');"><a href="javascript:select_tab('index');">Index</a></td>
-<td style="width: 100%">&nbsp;</td>
-</tr>
-</table>
-</div>
-
-<div style="padding: 4px 2px 2px 2px">
-
-<div id="tabbody-contents">
-%CONTENTSTABLES%
-</div>
-
-<div id="tabbody-index" style="display: none">
-<div style="margin-top: 1em; text-align: center; color: GrayText">Loading...</div>
-</div>
-
-</div>
-
-</body>
-</html>

+ 0 - 19
ISPPHelp/Staging/hh_project.hhp

@@ -1,19 +0,0 @@
-[OPTIONS]
-Compatibility=1.1 or later
-Compiled file=ispp.chm
-Contents file=hh_generated_contents.hhc
-Default Window=$global_ismain
-Default topic=topic_isppoverview.htm
-Display compile progress=Yes
-Full-text search=Yes
-Full text search stop list file=stoplist.stp
-Index file=hh_generated_index.hhk
-Language=0x409 English (United States)
-Title=Inno Setup Preprocessor Help
-
-[WINDOWS]
-$global_ismain=,"hh_generated_contents.hhc","hh_generated_index.hhk",,,,,,,0x22520,,0x300e,,,,,,,,0
-
-
-[INFOTYPES]
-

+ 0 - 4
ISPPHelp/Staging/images/.gitignore

@@ -1,4 +0,0 @@
-contentsheadclosed.png
-contentsheadopen.png
-contentstopic.png
-extlink.png

+ 0 - 48
ISPPHelp/Staging/index.htm

@@ -1,48 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta http-equiv="X-UA-Compatible" content="IE=8" />
-<title>Inno Setup Preprocessor Help</title>
-<script type="text/javascript"><!--
-
-var contentsFrameLoaded = false;
-var bodyFrameLoaded = false;
-
-// When this page is first loaded, trigger_sync_contents() isn't called
-// until both contentsframe.onload and bodyframe.onload have fired
-// (order does not matter). After that, trigger_sync_contents() is
-// called whenever further onload events come in on either frame (as
-// a result of refreshing, clicking a link, or clicking Back/Forward).
-
-function trigger_sync_contents()
-{
-	window.frames["contentsframe"].sync_contents();
-}
-
-function bodyframe_loaded()
-{
-	bodyFrameLoaded = true;
-	if (contentsFrameLoaded) trigger_sync_contents();
-}
-
-function contentsframe_loaded()
-{
-	contentsFrameLoaded = true;
-	if (bodyFrameLoaded) trigger_sync_contents();
-}
-
---></script>
-</head>
-<frameset cols="242, *">
-  <frame name="contentsframe" src="contents.htm" onload="contentsframe_loaded();" />
-  <frame name="bodyframe" src="topic_isppoverview.htm" onload="bodyframe_loaded();" />
-  <noframes>
-    <body>
-      <p>Your browser does not support frames.</p>
-      <p><a href="contents.htm">View the table of contents</a></p>
-    </body>
-  </noframes>
-</frameset>
-</html>

+ 0 - 17
ISPPHelp/Staging/index.php

@@ -1,17 +0,0 @@
-<?php
-
-$topic = @$_GET['topic'];
-if (!preg_match('/^[a-z0-9_\-]+\z/', $topic))
-  $topic = 'isppoverview';
-
-$anchor = '#' . @$_GET['anchor'];
-if (!preg_match('/^#[a-zA-Z0-9_\-.]+\z/', $anchor))
-  $anchor = '';
-
-$text = @file_get_contents('index.htm');
-if (!$text) die('Error reading file');
-
-$text = str_replace('topic_isppoverview.htm', htmlspecialchars("topic_$topic.htm$anchor"), $text);
-echo $text;
-
-?>

+ 0 - 85
ISPPHelp/Staging/stoplist.stp

@@ -1,85 +0,0 @@
-a
-about
-after
-against
-all
-also
-among
-an
-and
-are
-as
-at
-be
-became
-because
-been
-between
-but
-by
-can
-come
-do
-during
-each
-early
-form
-found
-from
-had
-has
-have
-he
-her
-his
-however
-in
-into
-is
-it
-its
-late
-later
-me
-made
-many
-may
-more
-most
-near
-no
-non
-not
-of
-on
-only
-or
-other
-over
-several
-she
-some
-such
-than
-that
-the
-their
-then
-there
-these
-they
-this
-through
-to
-under
-until
-use
-was
-we
-were
-when
-where
-which
-who
-with
-you

+ 0 - 57
ISPPHelp/compile.bat

@@ -1,57 +0,0 @@
-@echo off
-
-rem  Inno Setup Preprocessor
-rem  Copyright (C) 2001-2004 Alex Yackimoff
-rem  Portions by Martijn Laan
-rem
-rem  Batch file to compile the help file
-
-setlocal
-
-if exist compilesettings.bat goto compilesettingsfound
-:compilesettingserror
-echo ISPPHelp\compilesettings.bat is missing or incomplete. It needs
-echo to be created with the following lines, adjusted for your system:
-echo.
-echo   set HHCEXE=%%ProgramFiles%%\HTML Help Workshop\hhc.exe   [Path to help compiler]
-goto failed2
-
-:compilesettingsfound
-set HHCEXE=
-call .\compilesettings.bat
-if "%HHCEXE%"=="" goto compilesettingserror
-
-rem -------------------------------------------------------------------------
-
-echo Synching IS files:
-echo.
-call synch-isfiles.bat
-if errorlevel 1 goto failed
-
-echo Generating help files using ISHelpGen:
-echo.
-..\ISHelp\ISHelpGen\ISHelpGen.exe .
-if errorlevel 1 goto failed
-
-echo.
-echo Running HTML Help Compiler (hhc.exe):
-echo.
-del Staging\ispp.chm
-if exist Staging\ispp.chm goto failed
-"%HHCEXE%" Staging\hh_project.hhp
-if %errorlevel% neq 1 goto failed
-if not exist Staging\ispp.chm goto failed
-
-rem  HHC leaves behind a temporary file each time it runs...
-if exist "%TEMP%\~hh*.tmp" del /q "%TEMP%\~hh*.tmp"
-
-copy Staging\ispp.chm ..\Files\ISPP.chm
-if not exist ..\Files\ISPP.chm goto failed
-
-echo Success!
-exit /b 0
-
-:failed
-echo *** FAILED ***
-:failed2
-exit /b 1

+ 0 - 21
ISPPHelp/synch-isfiles.bat

@@ -1,21 +0,0 @@
-@echo off
-
-cd /d %~dp0
-
-echo - Synching files from ISHelp to ISPPHelp
-
-copy ..\ISHelp\isetup.dtd
-copy ..\ISHelp\Staging\contents.css Staging
-copy ..\ISHelp\Staging\contents.js Staging
-copy ..\ISHelp\Staging\styles.css Staging
-copy ..\ISHelp\Staging\topic.js Staging
-copy ..\ISHelp\Staging\images\contentsheadclosed.png Staging\images
-copy ..\ISHelp\Staging\images\contentsheadopen.png Staging\images
-copy ..\ISHelp\Staging\images\contentstopic.png Staging\images
-copy ..\ISHelp\Staging\images\extlink.png Staging\images
-
-echo - Synching files done
-
-if "%1"=="nopause" goto :eof
-
-pause

+ 3 - 1
Projects/Bin/synch-isfiles.bat

@@ -1,3 +1,5 @@
+@echo off
+
 cd /d %~dp0
 cd /d %~dp0
 
 
 echo - Synching files from Files to Projects\Bin
 echo - Synching files from Files to Projects\Bin
@@ -10,7 +12,7 @@ copy ..\..\Files\isscint.dll
 copy ..\..\Files\islzma.dll
 copy ..\..\Files\islzma.dll
 copy ..\..\Files\islzma*.exe
 copy ..\..\Files\islzma*.exe
 copy ..\..\Files\ISetup.chm
 copy ..\..\Files\ISetup.chm
-copy ..\..\Files\ISPP.chm
+copy ..\..\Files\ISetup-dark.chm
 
 
 echo - Synching files done
 echo - Synching files done
 
 

+ 1 - 1
Projects/Src/Compil32/CompForm.dfm

@@ -828,7 +828,7 @@ object CompileForm: TCompileForm
     end
     end
     object HMenu: TMenuItem
     object HMenu: TMenuItem
       Caption = '&Help'
       Caption = '&Help'
-      OnClick = HMenuClick
+      OnClick = SimpleMenuClick
       object HDonate: TMenuItem
       object HDonate: TMenuItem
         Caption = 'D&onate - Thank you!'
         Caption = 'D&onate - Thank you!'
         OnClick = HDonateClick
         OnClick = HDonateClick

+ 3 - 10
Projects/Src/Compil32/CompForm.pas

@@ -294,7 +294,6 @@ type
     procedure RParametersClick(Sender: TObject);
     procedure RParametersClick(Sender: TObject);
     procedure POutputListCopyClick(Sender: TObject);
     procedure POutputListCopyClick(Sender: TObject);
     procedure BStopCompileClick(Sender: TObject);
     procedure BStopCompileClick(Sender: TObject);
-    procedure HMenuClick(Sender: TObject);
     procedure EGotoClick(Sender: TObject);
     procedure EGotoClick(Sender: TObject);
     procedure RTerminateClick(Sender: TObject);
     procedure RTerminateClick(Sender: TObject);
     procedure BMenuClick(Sender: TObject);
     procedure BMenuClick(Sender: TObject);
@@ -3220,14 +3219,6 @@ begin
     PChar(Format('/select,"%s"', [FCompiledExe])), PChar(Dir), SW_SHOWNORMAL);
     PChar(Format('/select,"%s"', [FCompiledExe])), PChar(Dir), SW_SHOWNORMAL);
 end;
 end;
 
 
-procedure TCompileForm.HMenuClick(Sender: TObject);
-begin
-  HISPPDoc.Visible := NewFileExists(PathExtractPath(NewParamStr(0)) + 'ispp.chm');
-  HISPPSep.Visible := HISPPDoc.Visible;
-
-  ApplyMenuBitmaps(Sender as TMenuItem);
-end;
-
 procedure TCompileForm.HShortcutsDocClick(Sender: TObject);
 procedure TCompileForm.HShortcutsDocClick(Sender: TObject);
 begin
 begin
   if Assigned(HtmlHelp) then
   if Assigned(HtmlHelp) then
@@ -3272,7 +3263,7 @@ end;
 procedure TCompileForm.HISPPDocClick(Sender: TObject);
 procedure TCompileForm.HISPPDocClick(Sender: TObject);
 begin
 begin
   if Assigned(HtmlHelp) then
   if Assigned(HtmlHelp) then
-    HtmlHelp(GetDesktopWindow, PChar(GetHelpFile + '::/hh_isppredirect.xhtm'), HH_DISPLAY_TOPIC, 0);
+    HtmlHelp(GetDesktopWindow, PChar(GetHelpFile), HH_DISPLAY_TOPIC, Cardinal(PChar('topic_isppoverview.htm')));
 end;
 end;
 
 
 procedure TCompileForm.HDonateClick(Sender: TObject);
 procedure TCompileForm.HDonateClick(Sender: TObject);
@@ -6044,6 +6035,8 @@ procedure TCompileForm.UpdateTheme;
 begin
 begin
   FTheme.Typ := FOptions.ThemeType;
   FTheme.Typ := FOptions.ThemeType;
 
 
+  SetHelpFileDark(FTheme.Dark);
+
   for var Memo in FMemos do begin
   for var Memo in FMemos do begin
     Memo.UpdateThemeColorsAndStyleAttributes;
     Memo.UpdateThemeColorsAndStyleAttributes;
     SetControlWindowTheme(Memo, FTheme.Dark);
     SetControlWindowTheme(Memo, FTheme.Dark);

+ 11 - 2
Projects/Src/Compil32/CompFunc.pas

@@ -65,6 +65,7 @@ procedure SaveTextToFile(const Filename: String;
   const S: String; const SaveEncoding: TSaveEncoding);
   const S: String; const SaveEncoding: TSaveEncoding);
 procedure AddLines(const ListBox: TListBox; const S: String; const AObject: TObject; const LineBreaks: Boolean; const Prefix: TAddLinesPrefix; const PrefixParam: Cardinal);
 procedure AddLines(const ListBox: TListBox; const S: String; const AObject: TObject; const LineBreaks: Boolean; const Prefix: TAddLinesPrefix; const PrefixParam: Cardinal);
 procedure SetLowPriority(ALowPriority: Boolean; var SavePriorityClass: DWORD);
 procedure SetLowPriority(ALowPriority: Boolean; var SavePriorityClass: DWORD);
+procedure SetHelpFileDark(const Dark: Boolean);
 function GetHelpFile: String;
 function GetHelpFile: String;
 function FindOptionsToSearchOptions(const FindOptions: TFindOptions): TScintFindOptions;
 function FindOptionsToSearchOptions(const FindOptions: TFindOptions): TScintFindOptions;
 procedure StartAddRemovePrograms;
 procedure StartAddRemovePrograms;
@@ -79,7 +80,7 @@ function GetPreferredMemoFont: String;
 implementation
 implementation
 
 
 uses
 uses
-  ActiveX, ShlObj, ShellApi, CommDlg, SysUtils, IOUtils,
+  ActiveX, ShlObj, ShellApi, CommDlg, SysUtils, IOUtils, StrUtils,
   Messages, DwmApi, Consts,
   Messages, DwmApi, Consts,
   CmnFunc2, PathFunc, FileClass, NewUxTheme,
   CmnFunc2, PathFunc, FileClass, NewUxTheme,
   CompForm, CompMsgs2, CompTypes;
   CompForm, CompMsgs2, CompTypes;
@@ -703,9 +704,17 @@ begin
   end;
   end;
 end;
 end;
 
 
+var
+  HelpFileDark: Boolean;
+
+procedure SetHelpFileDark(const Dark: Boolean);
+begin
+  HelpFileDark := Dark;
+end;
+
 function GetHelpFile: String;
 function GetHelpFile: String;
 begin
 begin
-  Result := PathExtractPath(NewParamStr(0)) + 'isetup.chm';
+  Result := Format('%sisetup%s.chm', [PathExtractPath(NewParamStr(0)), IfThen(HelpFileDark, '-dark', '')]);
 end;
 end;
 
 
 function FindOptionsToSearchOptions(const FindOptions: TFindOptions): TScintFindOptions;
 function FindOptionsToSearchOptions(const FindOptions: TFindOptions): TScintFindOptions;

+ 0 - 8
README.md

@@ -79,11 +79,6 @@ Getting Started
    instructions. The former batch file cannot be used with the
    instructions. The former batch file cannot be used with the
    Community Edition, open Projects\Projects.groupproj instead.
    Community Edition, open Projects\Projects.groupproj instead.
 
 
-   To just compile the Inno Setup Preprocessor help file and its web version run
-   **ISHelp\ISHelpGen\compile.bat** and **ISPPHelp\compile.bat** and
-   follow the instructions. The former batch file cannot be used with the
-   Community Edition, open Projects\Projects.groupproj instead.
-
 
 
 Component Installation
 Component Installation
 ----------------------
 ----------------------
@@ -159,9 +154,6 @@ How do the projects link together?
   all units used by the Compiler IDE only. Check the .dpr files of the
   all units used by the Compiler IDE only. Check the .dpr files of the
   projects for unit usage details.
   projects for unit usage details.
 
 
-- The ISPP help file uses various copies of other Inno Setup files. To synch
-  these run **ISPPHelp\synch-isfiles.bat**.
-
 
 
 Source code tips
 Source code tips
 ----------------
 ----------------

+ 2 - 12
build-ce.bat

@@ -11,8 +11,7 @@ rem  Calls setup-sign.bat if it exists, else creates setup.exe without signing
 rem
 rem
 rem  This batch files does the following things:
 rem  This batch files does the following things:
 rem  -Ask the user to compile Inno Setup and ISHelpGen after clearing output first
 rem  -Ask the user to compile Inno Setup and ISHelpGen after clearing output first
-rem  -Compile ISPP.chm
-rem  -Compile ISetup.chm
+rem  -Compile ISetup*.chm
 rem  -Create Inno Setup installer
 rem  -Create Inno Setup installer
 rem
 rem
 rem  Once done the installer can be found in Output
 rem  Once done the installer can be found in Output
@@ -53,22 +52,13 @@ call :waitforfile ishelp\ishelpgen\ishelpgen.exe
 echo Found all, waiting 2 seconds more...
 echo Found all, waiting 2 seconds more...
 timeout /t 2 /nobreak >nul
 timeout /t 2 /nobreak >nul
 
 
-cd ispphelp
-if errorlevel 1 goto failed
-call .\compile.bat
-if errorlevel 1 goto failed
-cd ..
-if errorlevel 1 goto failed
-echo Compiling ISPP.chm done
-pause
-
 cd ishelp
 cd ishelp
 if errorlevel 1 goto failed
 if errorlevel 1 goto failed
 call .\compile.bat
 call .\compile.bat
 if errorlevel 1 goto failed
 if errorlevel 1 goto failed
 cd ..
 cd ..
 if errorlevel 1 goto failed
 if errorlevel 1 goto failed
-echo Compiling ISetup.chm done
+echo Compiling ISetup*.chm done
 pause
 pause
 
 
 :setup
 :setup

+ 2 - 12
build.bat

@@ -11,8 +11,7 @@ rem  Calls setup-sign.bat if it exists, else creates setup.exe without signing
 rem
 rem
 rem  This batch files does the following things:
 rem  This batch files does the following things:
 rem  -Compile ISHelpGen
 rem  -Compile ISHelpGen
-rem  -Compile ISPP.chm
-rem  -Compile ISetup.chm
+rem  -Compile ISetup*.chm
 rem  -Compile Inno Setup
 rem  -Compile Inno Setup
 rem  -Create Inno Setup installer
 rem  -Create Inno Setup installer
 rem
 rem
@@ -39,22 +38,13 @@ if errorlevel 1 goto failed
 echo Compiling ISHelpGen done
 echo Compiling ISHelpGen done
 pause
 pause
 
 
-cd ispphelp
-if errorlevel 1 goto failed
-call .\compile.bat
-if errorlevel 1 goto failed
-cd ..
-if errorlevel 1 goto failed
-echo Compiling ISPP.chm done
-pause
-
 cd ishelp
 cd ishelp
 if errorlevel 1 goto failed
 if errorlevel 1 goto failed
 call .\compile.bat
 call .\compile.bat
 if errorlevel 1 goto failed
 if errorlevel 1 goto failed
 cd ..
 cd ..
 if errorlevel 1 goto failed
 if errorlevel 1 goto failed
-echo Compiling ISetup.chm done
+echo Compiling ISetup*.chm done
 pause
 pause
 
 
 call .\compile.bat
 call .\compile.bat

+ 3 - 1
setup.iss

@@ -89,6 +89,7 @@ Name: fileassoc; Description: "{cm:AssocFileExtension,Inno Setup,.iss}"; Check:
 ; Remove old ISPP files
 ; Remove old ISPP files
 Type: files; Name: "{app}\ISCmplr.dls"
 Type: files; Name: "{app}\ISCmplr.dls"
 Type: files; Name: "{app}\Builtins.iss"
 Type: files; Name: "{app}\Builtins.iss"
+Type: files; Name: "{app}\ISPP.chm"
 ; Remove desktop icon if needed
 ; Remove desktop icon if needed
 Type: files; Name: {autodesktop}\Inno Setup Compiler.lnk; Tasks: not desktopicon; Check: not PortableCheck
 Type: files; Name: {autodesktop}\Inno Setup Compiler.lnk; Tasks: not desktopicon; Check: not PortableCheck
 ; Remove old FAQ file
 ; Remove old FAQ file
@@ -114,6 +115,7 @@ Type: files; Name: "{app}\WizModernSmallImage-IS.bmp"
 [Files]
 [Files]
 Source: "license.txt"; DestDir: "{app}"; Flags: ignoreversion touch
 Source: "license.txt"; DestDir: "{app}"; Flags: ignoreversion touch
 Source: "files\ISetup.chm"; DestDir: "{app}"; Flags: ignoreversion touch
 Source: "files\ISetup.chm"; DestDir: "{app}"; Flags: ignoreversion touch
+Source: "files\ISetup-dark.chm"; DestDir: "{app}"; Flags: ignoreversion touch
 Source: "files\Compil32.exe"; DestDir: "{app}"; Flags: ignoreversion signonce touch
 Source: "files\Compil32.exe"; DestDir: "{app}"; Flags: ignoreversion signonce touch
 Source: "files\isscint.dll"; DestDir: "{app}"; Flags: ignoreversion signonce touch
 Source: "files\isscint.dll"; DestDir: "{app}"; Flags: ignoreversion signonce touch
 #ifndef isccexe
 #ifndef isccexe
@@ -184,7 +186,6 @@ Source: "Examples\MyDll\C#\MyDll.sln"; DestDir: "{app}\Examples\MyDll\C#"; Flags
 Source: "Examples\MyDll\C#\packages.config"; DestDir: "{app}\Examples\MyDll\C#"; Flags: ignoreversion touch
 Source: "Examples\MyDll\C#\packages.config"; DestDir: "{app}\Examples\MyDll\C#"; Flags: ignoreversion touch
 Source: "Examples\MyDll\C#\Properties\AssemblyInfo.cs"; DestDir: "{app}\Examples\MyDll\C#\Properties"; Flags: ignoreversion touch
 Source: "Examples\MyDll\C#\Properties\AssemblyInfo.cs"; DestDir: "{app}\Examples\MyDll\C#\Properties"; Flags: ignoreversion touch
 Source: "Examples\MyDll\Delphi\MyDll.dpr"; DestDir: "{app}\Examples\MyDll\Delphi"; Flags: ignoreversion touch
 Source: "Examples\MyDll\Delphi\MyDll.dpr"; DestDir: "{app}\Examples\MyDll\Delphi"; Flags: ignoreversion touch
-Source: "files\ISPP.chm"; DestDir: "{app}"; Flags: ignoreversion touch
 #ifndef isppdll
 #ifndef isppdll
   #define isppdll "ispp.dll"
   #define isppdll "ispp.dll"
 #endif
 #endif
@@ -201,6 +202,7 @@ Type: files; Name: "{app}\isfaq.url"
 ; All these will be automatically skipped on portable mode, either because of NoIconsCheck being checked, or because of the desktopicon task being removed
 ; All these will be automatically skipped on portable mode, either because of NoIconsCheck being checked, or because of the desktopicon task being removed
 Name: "{group}\Inno Setup Compiler"; Filename: "{app}\Compil32.exe"; WorkingDir: "{app}"; AppUserModelID: "JR.InnoSetup.IDE.6"
 Name: "{group}\Inno Setup Compiler"; Filename: "{app}\Compil32.exe"; WorkingDir: "{app}"; AppUserModelID: "JR.InnoSetup.IDE.6"
 Name: "{group}\Inno Setup Documentation"; Filename: "{app}\ISetup.chm"
 Name: "{group}\Inno Setup Documentation"; Filename: "{app}\ISetup.chm"
+Name: "{group}\Inno Setup Documentation (Dark)"; Filename: "{app}\ISetup-dark.chm"
 Name: "{group}\Inno Setup Example Scripts"; Filename: "{app}\Examples\"
 Name: "{group}\Inno Setup Example Scripts"; Filename: "{app}\Examples\"
 Name: "{group}\Inno Setup FAQ"; Filename: "{app}\isfaq.url"
 Name: "{group}\Inno Setup FAQ"; Filename: "{app}\isfaq.url"
 Name: "{group}\Inno Setup Revision History"; Filename: "{app}\whatsnew.htm"
 Name: "{group}\Inno Setup Revision History"; Filename: "{app}\whatsnew.htm"

+ 3 - 1
whatsnew.htm

@@ -78,7 +78,9 @@ For conditions of distribution and use, see <a href="files/is/license.txt">LICEN
   <li>Pascal Scripting change: Added new <tt>ExecAndCaptureOutput</tt> support function to execute a program or batch file and capture its <i>stdout</i> and <i>stderr</i> output.</li>
   <li>Pascal Scripting change: Added new <tt>ExecAndCaptureOutput</tt> support function to execute a program or batch file and capture its <i>stdout</i> and <i>stderr</i> output.</li>
   <li>Fixed an issue when the <i>Auto indent mode</i> and <i>Allow cursor to move beyond end of lines</i> options are both enabled.</li>  
   <li>Fixed an issue when the <i>Auto indent mode</i> and <i>Allow cursor to move beyond end of lines</i> options are both enabled.</li>  
   <li>Pascal Scripting change: documented support functions <tt>VarArrayGet</tt> and <tt>VarArraySet</tt> which were already available but not documented.</li>
   <li>Pascal Scripting change: documented support functions <tt>VarArrayGet</tt> and <tt>VarArraySet</tt> which were already available but not documented.</li>
-  <li>Various tweaks and documentation improvements.</li>
+  <li>The Inno Setup Preprocessor documentation has been merged into the main documentation instead of being separate.</li>
+  <li>Added a dark mode version of the documentation, automatically used by the Compiler IDE if a dark theme is chosen.</li>
+  <li>Various tweaks and other documentation improvements.</li>
 </ul>
 </ul>
 
 
 <p>Contributions via <a href="https://github.com/jrsoftware/issrc" target="_blank">GitHub</a>: Thanks to Sergii Leonov, John Stevenson, and jogo- for their contributions!</p>
 <p>Contributions via <a href="https://github.com/jrsoftware/issrc" target="_blank">GitHub</a>: Thanks to Sergii Leonov, John Stevenson, and jogo- for their contributions!</p>