forked from jrsoftware/issrc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
whatsnew.htm
278 lines (265 loc) · 28.5 KB
/
whatsnew.htm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Inno Setup 6 Revision History</title>
<base href="https://jrsoftware.org/" />
<style type="text/css">
body { font: calc(14rem/16)/1.5 "Segoe UI", sans-serif; color: #282828; background-color: white }
a[href] { text-decoration: none }
a[href]:hover { text-decoration: underline }
a:link { color: hsl(206 100 40); background-color: transparent }
a:visited, a[href]:active { color: hsl(206 100 55); background-color: transparent }
tt, pre { font: calc(13rem/16)/calc(21rem/16) monospace; color: inherit; background-color: #f0f0f0; padding: 2px 4px; border-radius: 4px }
pre { line-height: normal; padding: 10px; border-radius: 6px }
li, div.limargins { margin-top: 5px; margin-bottom: 5px }
div.bluehead { text-align: center; color: white; background-color: hsl(206 100 30); padding: 5px; font-weight: bold; line-height: normal }
.date { font-size: calc(11rem/16); font-weight: bold }
.head1 { font-size: calc(32rem/16) }
.head2 { font-size: calc(20rem/16) }
.ver { font-size: calc(20rem/16); font-weight: bold }
</style>
</head>
<body>
<div class="bluehead"><span class="head1">Inno Setup 6</span><br /><span class="head2">Revision History</span></div>
<p>Copyright © 1997-2024 <a href="./">Jordan Russell</a>. All rights reserved.<br />
Portions Copyright © 2000-2024 Martijn Laan. All rights reserved.<br />
For conditions of distribution and use, see <a href="files/is/license.txt">LICENSE.TXT</a>.
</p>
<p><b>Want to be notified by e-mail of new Inno Setup releases?</b> <a href="ismail.php">Subscribe</a> to the Inno Setup Mailing List!</p>
<p><a name="6.4.0"></a><span class="ver">6.4.0-dev </span><span class="date">(?)</span></p>
<p><span class="head2">Compiler IDE changes</span></p>
<p>Updated the Scintilla editor component used by the Compiler IDE to the latest version.</p>
<p>Multiple selection editing has been improved:</p>
<ul>
<li>Added new <i>Add Next Occurrence</i> menu item to the <i>Edit</i> menu to add the next occurrence of the current word or selected text as an additional selection (Shift+Alt+.).</li>
<li>Added new <i>Select All Occurrences</i> menu item to the <i>Edit</i> menu to select all occurrences of the current word or selected text (Shift+Alt+;).</li>
<li>Added new <i>Select All Find Matches</i> menu item to the <i>Edit</i> menu to select all matches of the last find text (Alt+Enter).<br />Additionally, the <i>Find</i> (Ctrl+F) and <i>Replace</i> (Ctrl+H) dialogs now both support being closed by Alt+Enter to directly select all matches.</li>
<li>Added shortcuts to add a cursor or selection up or down (Ctrl+Alt+Up and Ctrl+Alt+Down). For multi-line selections this extends the selection up or down and never shrinks.</li>
<li>Added shortcuts to add a word or line as an additional selection (Ctrl+Double Click and Ctrl+Triple Click).</li>
<li>Added shortcut to remove a selection by clicking it (Ctrl+Click).</li>
<li>Multiple selection now works over Left, Right, Up, Down, Home and End navigation and selection commands.</li>
<li>Multiple selection now works over word and line deletion commands, and line end insertion.</li>
<li>Left, Right, etc. navigation with rectangular selection is now allowed.</li>
<li>The Find and Replace dialogs and the tools from the <i>Tools</i> menu which generate script text now all work better with multiple selections present.</li>
<li>The Find and Replace dialogs now support using Shift+Enter to temporarily search in the opposite direction.</li>
</ul>
<p>Other editor changes:</p>
<ul>
<li>Added support for Visual Studio Code-style editor shortcuts, like Ctrl+D to Add Next Occurrence, Ctrl+Shift+K to delete a line and Alt+Click to add an additional cursor or remove a selection.<br />To activate this use the <i>Options</i> menu item in the <i>Tools</i> menu to set the new <i>Keys</i> option in the <i>Editor</i> group to <i>Visual Studio Code</i>.<br />The updated <a href="https://jrsoftware.org/ishelp/index.php?topic=compformshortcuts">Compiler IDE Keyboard And Mouse Commands</a> help topic lists all differences with the classic keyboard and mouse shortcuts.</li>
<li>Added new shortcuts only available if Visual Studio Code-style editor shortcuts have been activated: Shift+Alt+Down to copy line down and Ctrl+] and Ctrl+[ to ident or unindent lines.</li>
<li>Added parameter hints for all Pascal Scripting support functions for quick reference to the function's parameter names, types, and order. Parameter hints can be invoked manually by pressing Ctrl+Shift+Space or automatically by using the new <i>Invoke parameter hints automatically</i> option which is enabled by default.</li>
<li>Added autocompletion support for all Pascal Scripting support functions, types, constants, etcetera. Existing option <i>Invoke autocompletion automatically</i> controls whether the autocompletion suggestions appear automatically or only when invoked manually by pressing Ctrl+Space or Ctrl+I.</li>
<li>Added parameter hints and autocompletion support for all Pascal Scripting support class members and properties. Both always show all classes' members and properties instead of just those of the object's class.</li>
<li>Added new <i>Enable section folding</i> option which allows you to temporarily hide sections while editing by clicking the new minus or plus icons in the editor's gutter or by using the new keyboard shortcuts (Ctrl+Shift+[ to fold and Ctrl+Shift+] to unfold) or menu items. Enabled by default.</li>
<li>Added new <i>Use Regular Expressions</i> option to the <i>Edit</i> menu to enable or disable the use of regular expressions for all find and replace operations and added a shortcut for it (Alt+R).</li>
<li>The editor's gutter now shows change history to keep track of saved and unsaved modifications. Always enabled.</li>
<li>The editor's font now defaults to Consolas if available, consistent with most other modern editors.</li>
<li>The editor can now be scrolled horizontally instead of vertically by holding the Shift key while rotating the mouse wheel. Horizontal scroll wheels are now also supported.</li>
<li>Cut (Ctrl+X or Shift+Delete) and Copy (Ctrl+C or Ctrl+Insert) now cut or copy the entire line if there's no selection, consistent with most other modern editors.</li>
<li>Added new shortcuts to move selected lines up or down (Alt+Up and Alt+Down).</li>
<li>Added new shortcut and menu item to the <i>Edit</i> menu to toggle line comment (Ctrl+/).</li>
<li>Added new shortcut and menu item to the <i>Edit</i> menu to go to matching brace (Ctrl+Shift+\).</li>
<li>Moved the <i>Word Wrap</i> option to the <i>View</i> menu and added a shortcut for it (Alt+Z).</li>
<li>Added a right-click popup menu to the editor's gutter column for breakpoints.</li>
<li>Added dark mode support to autocompletion lists and also added a minimum width.</li>
<li>Improved brace highlighting.</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>
</ul>
<p>Other Compiler IDE changes:</p>
<ul>
<li>Shortcuts Alt+Left and Alt+Right now always navigate back and forward even if Visual Studio-style menu shortcuts have been activated.<br />Because of this Alt+Right can no longer be used to initiate auto complete, instead the existing Ctrl+Space or Ctrl+I alternatives must be used.</li>
<li>Moved the list of recently opened files into a new <i>Open Recent</i> submenu of the <i>Files</i> menu.</li>
<li>Added shortcuts to select a tab (Ctrl+1 through Ctrl+9).</li>
<li>Added shortcut to the <i>Options</i> menu item in the <i>Tools</i> menu (Ctrl+,).</li>
<li>Removed the length limitation when entering a Sign Tool command and increased control height.</li>
</ul>
<p><span class="head2">Other changes</span></p>
<ul>
<li>Updated the LZMA SDK used by Inno Setup to the latest version, increasing the speed of LZMA and LZMA2 compression and decompression (respectively by 21% and 11% in a test with default settings) without changing the compression ratio. Compression memory requirements have increased by about 4%.</li>
<li>Merged the Inno Setup Preprocessor documentation 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>Pascal Scripting changes:
<ul>
<li>Added new <tt>ExecAndCaptureOutput</tt> support function to execute a program or batch file and capture its <i>stdout</i> and <i>stderr</i> outputs separately.</li>
<li>Output logging now raises an exception if there was an error setting up output redirection (which should be very rare). The <i>PowerShell.iss</i> example script has been updated to catch the exception.</li>
<li>Documented support functions <tt>VarArrayGet</tt> and <tt>VarArraySet</tt> which were already available but not documented.</li>
</ul>
</li>
<li>ISPP change: Added support functions <tt>GetSHA256OfFile</tt>, <tt>GetSHA256OfString</tt>, and <tt>GetSHA256OfUnicodeString</tt>.</li>
<li>Various tweaks and other documentation improvements.</li>
</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>Thanks to Neil Hodgson and Igor Pavlov for their continued work on Scintilla and the LZMA SDK!</p>
<p><a name="6.3.3"></a><span class="ver">6.3.3 </span><span class="date">(2024-07-12)</span></p>
<ul>
<li>Improved support for ASLR.</li>
</ul>
<p><a name="6.3.2"></a><span class="ver">6.3.2 </span><span class="date">(2024-06-28)</span></p>
<ul>
<li>Pascal Scripting change: Fixed support function <tt>TStream.Seek</tt>.</li>
</ul>
<p><a name="6.3.1"></a><span class="ver">6.3.1 </span><span class="date">(2024-06-10)</span></p>
<ul>
<li>Fixed Compiler IDE startup error on systems with very high DPI.</li>
</ul>
<p><a name="6.3.0"></a><span class="ver">6.3.0 </span><span class="date">(2024-06-09)</span></p>
<p><span class="head2">Support for UTF-8 encoded files improved</span></p>
<ul>
<li>Added support for UTF-8 encoded files without a BOM for .iss script files, .isl messages files, <tt>LicenseFile</tt>, <tt>InfoBeforeFile</tt>, <tt>InfoAfterFile</tt>, and ISPP's <tt>#file</tt>.</li>
<li>Compiler IDE changes:
<ul>
<li>New script files are now saved as UTF-8 without a BOM by default, bringing the IDE into line with most other text editors. Existing files are still saved as they were until the save encoding is changed manually using the <i>Save Encoding</i> submenu of the <i>File</i> menu.</li>
<li>Added new <i>UTF-8 with BOM</i> menu item to the <i>Save Encoding</i> submenu of the <i>File</i> menu to save new files with a BOM anyway.</li>
</ul>
</li>
<li>Pascal Scripting changes:
<ul>
<li>Support function <tt>LoadStringsFromFile</tt> now also supports UTF-8 encoded files without a BOM.</li>
<li>Added new <tt>SaveStringsToUTF8FileWithoutBOM</tt> support function.</li>
</ul>
</li>
<li>ISPP change: Preprocessor output saved by <tt>SaveToFile</tt> is now always saved as UTF-8 without a BOM.</li>
</ul>
<p><span class="head2">Support for Arm64 systems improved, and related enhancements</span></p>
<ul>
<li>Setup now officially supports the installation of x64 apps on Arm64 Windows 11 systems, which are able to run x64 binaries via emulation. To enable your x64 app installers to run properly on Arm64 Windows 11, some minor changes may be needed in your scripts. Most importantly:
<ol>
<li>In <tt>ArchitecturesAllowed</tt> and <tt>ArchitecturesInstallIn64BitMode</tt>, change any use of <tt>x64</tt> to <tt>x64compatible</tt>.</li>
<li>In <tt>Check</tt> parameters and <tt>[Code]</tt>, change any use of <tt>IsX64</tt> to <tt>IsX64Compatible</tt>.</li>
<li>In <tt>[Code]</tt>, if there are any <tt>ProcessorArchitecture = paX64</tt> comparisons, replace them with calls to <tt>IsX64Compatible</tt>.</li>
</ol>
<div class="limargins">The key difference between <tt>x64</tt>/<tt>IsX64</tt> and the new <tt>x64compatible</tt>/<tt>IsX64Compatible</tt> is that the latter matches both x64 Windows and Arm64 Windows 11.</div>
In most cases, <b>you should make the above changes</b>, because otherwise, users on Arm64 systems may not be able to run your installers. For example, an <tt>ArchitecturesAllowed=x64</tt> setting will only allow the installer to run on x64 Windows — not on Arm64 Windows 11. Or, if you ship x86 and x64 versions of your app in the same installer, the 32-bit x86 version may be chosen instead of the expected x64 version when running on Arm64 Windows 11.</li>
<li>The <tt>[Setup]</tt> section directives <tt>ArchitecturesAllowed</tt> and <tt>ArchitecturesInstallIn64BitMode</tt> have been enhanced:
<ul>
<li>Six new architecture identifiers have been introduced. Briefly:
<ul>
<li><tt>arm32compatible</tt> matches systems capable of running 32-bit Arm binaries.</li>
<li><tt>x64compatible</tt> matches systems capable of running x64 binaries.</li>
<li><tt>x64os</tt> matches systems running x64 Windows only. (Equivalent to the existing <tt>x64</tt> identifier, which is now deprecated.)</li>
<li><tt>x86compatible</tt> matches systems capable of running 32-bit x86 binaries.</li>
<li><tt>x86os</tt> matches systems running 32-bit x86 Windows only. (Equivalent to the existing <tt>x86</tt> identifier.)</li>
<li><tt>win64</tt> matches systems running 64-bit Windows, regardless of architecture.</li>
</ul>
See the new <i>Architecture Identifiers</i> <a href="ishelp/index.php?topic=archidentifiers">help topic</a> for further details on each.</li>
<li>Boolean expressions are now supported. Through use of the <tt>and</tt> operator, for example, it is possible to require two architecture identifiers to match at the same time. See the <tt>ArchitecturesAllowed</tt> <a href="ishelp/index.php?topic=setup_architecturesallowed">help topic</a> for usage examples.</li>
</ul>
</li>
<li>The <tt>x64</tt> architecture identifier is now deprecated. If it is used, the compiler will issue a warning and substitute <tt>x64os</tt>, which has the same effect. But as mentioned above, in most cases, <b>scripts should be changed</b> to use <tt>x64compatible</tt> because it matches both x64 Windows and Arm64 Windows 11.</li>
<li>The 64-bit example scripts (<tt>64Bit*.iss</tt>) have all been updated to use <tt>x64compatible</tt> as preferred.</li>
<li>Certain 64-bit functionality that previously only worked on x64 Windows now works on Arm64 Windows 11 as well. This includes:
<ul>
<li>The <tt>Permissions</tt> parameter of the <tt>[Dirs]</tt> section when running in 64-bit install mode.</li>
<li>The <tt>Permissions</tt> parameter of the <tt>[Files]</tt> section when running in 64-bit install mode or when the <tt>64bit</tt> flag is used.</li>
<li>The <tt>Permissions</tt> parameter of the <tt>[Registry]</tt> section when running in 64-bit install mode or when the value of the <tt>Root</tt> parameter ends in <tt>64</tt>.</li>
<li>The <tt>regtypelib</tt> flag of the <tt>[Files]</tt> section when running in 64-bit install mode or when the <tt>64bit</tt> flag is used.</li>
</ul>
Note that all of the above remains unsupported on Arm64 Windows 10.
</li>
<li>Setup now logs the machine types supported by the system — that is, what types of EXEs can be executed, either natively or via emulation. For example, when running on an Arm64 Windows 11 system, it logs: <tt>Machine types supported by system: x86 x64 Arm32 Arm64</tt>.</li>
<li>The <tt>OnlyOnTheseArchitectures</tt> message is not used anymore. Instead, the <tt>WindowsVersionNotSupported</tt> message is now shown when Setup is started on an architecture that is not allowed by the <tt>ArchitecturesAllowed</tt> expression. (But please do not remove the message from translation files.)</li>
<li>Pascal Scripting change: Added new <tt>IsArm32Compatible</tt>, <tt>IsX64Compatible</tt>, <tt>IsX64OS</tt>, <tt>IsX86Compatible</tt>, and <tt>IsX86OS</tt> support functions. The <tt>IsX64</tt> support function still exists but is now deprecated as explained above. Example testing all architecture identifiers:
<pre>[Code]
function InitializeSetup: Boolean;
begin
if IsArm32Compatible then Log('IsArm32Compatible');
if IsArm64 then Log('IsArm64');
if IsX64OS then Log('IsX64OS');
if IsX64Compatible then Log('IsX64Compatible');
if IsX86 then Log('IsX86');
if IsX86OS then Log('IsX86OS');
if IsX86Compatible then Log('IsX86Compatible');
if IsWin64 then Log('IsWin64');
Result := True;
end;</pre>
</li>
</ul>
<p><span class="head2">Support for #include files improved</span></p>
<ul>
<li>The Compiler IDE now opens up to 20 #include files in tabs, instead of up to 10.</li>
<li>Tabs for opened #include files can now be closed: Added new <i>Close Tab</i> (Ctrl+F4), <i>Reopen Tab</i>, and <i>Reopen All Tabs</i> menu items to the <i>View</i> menu, also available by right clicking the tab bar.<br />Because of this the shortcut for the <i>Evaluate Constant</i> menu item in the <i>Run</i> menu has been changed from Ctrl+F4 to Ctrl+F7.</li>
<li>The selected and mouseover #include file tabs now show close buttons.</li>
<li>Added a clickable panel to the Status Bar showing the amount of closed tabs if there are any.</li>
<li>Removed flicker (especially visible in dark mode) when switching tabs.</li>
</ul>
<p><span class="head2">Support for Windows Vista, Windows Server 2008, and the Itanium architecture removed</span></p>
<ul>
<li><b>OS requirements change:</b> Windows Vista and Windows Server 2008 are no longer supported. Windows 7 and Windows Server 2008 R2 are now the minimum supported operating systems. <tt>[Setup]</tt> section directive <tt>MinVersion</tt> still defaults to <tt>6.1sp1</tt>, so by default Setup will still not run versions of Windows 7 and Windows Server 2008 R2 which have not been updated.</li>
<li>The defunct Itanium architecture is no longer supported. The <tt>ia64</tt> architecture identifier has been removed, and Setup will display the <tt>WindowsVersionNotSupported</tt> error message if it's started on an Itanium system.</li>
<li>Removed <tt>[Icons]</tt> section flag <tt>foldershortcut</tt> which was already ignored except when running on Windows Vista or Windows Server 2008, as folder shortcuts do not expand properly on the Start Menu anymore.</li>
</ul>
<p><span class="head2">Compiler IDE changes</span></p>
<ul>
<li>Added toolbar buttons and shortcuts to navigate back (Alt+Left) and forward (Alt+Right). Navigating by pressing the mouse X buttons is also supported. A navigation item is added when changing tabs or moving at least 11 lines at once, similar to Visual Studio 2022.<br />Because of this Alt+Right can no longer be used to initiate auto complete, instead the existing Ctrl+Space or new Ctrl+I alternative must be used. To still be able to also use Alt+Right for this activate Visual Studio-style shortcuts, see below.</li>
<li>Added support for Visual Studio-style shortcuts (like Ctrl+- to navigate back, Ctrl+B to compile and F5 to run) to the <i>Build</i> and <i>Run</i> menus. To activate this use the <i>Options</i> menu item in the <i>Tools</i> menu to set the new <i>Key Map</i> option to <i>Visual Studio</i>.</li>
<li>Added multiple selection support (Ctrl+Click or Ctrl+Drag). Typing, backspace, delete, undo, redo, copy, and paste all work with multiple selections added this way or via the pre-existing support for performing rectangular block selection (Shift+Alt+Arrow or Alt+Drag).</li>
<li>Added a shortcut to revert multiple selections into a single one or a single selection into an empty one (Esc).</li>
<li>Added dark mode support to the title bar on Windows 10 Version 2004 and later.</i>
<li>Added dark mode support to the main menu bar on all versions of Windows.</i>
<li>Added dark mode support to the menus on Windows 10 Version 1903 and later up to Windows 11 Version 23H2 which is currently the latest version of Windows 11.</i>
<li>Updated the icons used by the editor's gutter, including the automatic use of higher quality versions in a widened gutter on higher DPI settings.</i>
<li>Lines with a breakpoint are now displayed as normal lines with syntax highlighting, instead of as white text on a red background. The editor's gutter still displays an icon on such lines.</li>
<li>Breakpoints are now preserved on a per-file basis between sessions.</li>
<li>Added new <i>Delete All Breakpoints</i> (Shift+Ctrl+F5) menu item to the <i>Run</i> menu.</li>
<li>Added icons to the menus.</li>
<li>Added new <i>Highlight occurrences of current selection</i> and <i>Highlight occurrences of current word</i> options. The first is enabled by default and the second is disabled by default.</li>
<li>The <i>Allow cursor to move beyond end of lines</i> option ("virtual space") is now disabled by default, consistent with most other editors.</li>
<li>When the <i>Allow cursor to move beyond end of lines</i> option is enabled, pressing the left arrow key while the cursor is at the start of a line no longer moves the cursor to the end of the previous line unless the Ctrl key is also pressed, just like in Notepad++, Visual Studio, and RAD Studio.</li>
<li>The New Script Wizard now offers an option to import a Windows registry .reg file.</li>
<li>The New Script Wizard now automatically sets <tt>ArchitecturesInstallIn64BitMode</tt> and <tt>ArchitecturesAllowed</tt> to <tt>x64compatible</tt> if it detects that the chosen main executable file is 64-bit. The default main executable file is now the 64-bit MyProg-x64.exe example executable instead of 32-bit MyProg.exe.</li>
<li>Added new <i>Generate [Registry] Entries</i> (Shift+Ctrl+R) menu item to the <i>Tools</i> menu to import a Windows registry .reg file as extra entries to the <tt>[Registry]</tt> section at the cursor position, or to a new section.</li>
<li>Added new <i>Generate [Files] Entries</i> (Shift+Ctrl+I) menu item to the <i>Tools</i> menu to design and insert extra entries to the <tt>[Files]</tt> section at the cursor position, or to a new section.</li>
<li>The <i>Generate MsgBox/TaskDialogMsgBox Call</i> tool (previously named <i>MsgBox/TaskDialogMsgBox Designer</i>) now respects the tab width and tab character settings, indents the generated Pascal script one extra level, and warns if the cursor position is not in the [Code] section.</li>
<li>Minor theme color tweaks such as a different background color for the selected text.</li>
</ul>
<p><span class="head2">Support for logging improved</span></p>
<ul>
<li>Added new <tt>[Run]</tt> and <tt>[UninstallRun]</tt> section flag <tt>logoutput</tt>. Instructs Setup and Uninstall to log the output of the executed program or batch file. Cannot be combined with the <tt>nowait</tt>, <tt>runasoriginaluser</tt>, <tt>shellexec</tt>, and <tt>waituntilidle</tt> flags. Has no effect if logging is not enabled.</li>
<li>Added new <tt>[Setup]</tt> section directive <tt>UninstallLogging</tt>, which defaults to <tt>no</tt>. If set to <tt>yes</tt>, the uninstaller will always create a log file if it is launched from the <i>Add/Remove Programs</i> Control Panel applet. Equivalent to passing /LOG on the command line.</li>
<li>Digital signing change: Sign Tool output is now always logged in the Compiler IDE's "Compiler Output" view, making it easier to debug issues. Because of this, sign tools that are console programs will now always run hidden, as their output is being captured and they would display nothing in their window.</li>
<li>Pascal Scripting change: Added new <tt>ExecAndLogOutput</tt> support function. Can be used to log the output of the executed program or batch file to Setup and Uninstall's log, or to receive the output line by line in your own <tt>[Code]</tt> function, for example to read the first non-empty line from the output as shown in the help file and the new <i>PowerShell.iss</i> example script.</li>
<li>ISPP changes:
<ul>
<li>Output of programs or batch files executed using the <tt>Exec</tt> support function is now always logged in the Compiler IDE's "Compiler Output" view.</li>
<li>Added new support function <tt>ExecAndGetFirstLine</tt> to execute a program or batch file and read the first non-empty line from its output which can then be placed or used in the script as shown in the new <i>PowerShell.iss</i> example script.</li>
</ul>
</li>
</ul>
<p><span class="head2">Other changes</span></p>
<ul>
<li>Console-mode compiler (ISCC) change: Added support for Unicode output.</li>
<li>Added new <tt>[Files]</tt> section flag <tt>signcheck</tt>. Instructs the compiler to check the original source files for a digital signature before storing them.</li>
<li>During startup Setup would always ask Windows to create any missing <tt>{usercf}</tt>, <tt>{userpf}</tt>, and <tt>{usersavedgames}</tt> folders. It no longer does until the script asks for the folder. Note that scripts running in administrative install mode should not do this because it violates the <a href="ishelp/index.php?topic=setup_useduserareaswarning">used user areas warning</a>.</li>
<li>Changes to further help protect against potential DLL preloading attacks.</li>
<li>Added support for IIS group users identifiers (<tt>iisiusrs</tt>) for use in <tt>Permissions</tt> parameters.</li>
<li>ISPP changes:
<ul>
<li>Added support function <tt>AddQuotes</tt> to add a quote character to the left and right sides of a string if the string contains a space and it didn't have quotes already.</li>
<li>Support function <tt>Exec</tt> no longer requires the filename parameter to be quoted if it contains spaces. Additionally it now supports ">" as a filename and now includes special platform-independent support for .bat and .cmd files, both just like for example the <tt>[Run]</tt> section.</li>
</ul>
</li>
<li>Pascal Scripting changes:
<ul>
<li>Added support functions <tt>UTF8Encode</tt> and <tt>UTF8Decode</tt> to encode a Unicode string into a UTF-8 encoded ANSI string and vice versa.</li>
<li>Added support functions <tt>LoadStringFromLockedFile</tt> and <tt>LoadStringsFromLockedFile</tt> to read strings from a file even if it's already opened for writing by another program.</li>
<li>Added support class <tt>TNewLinkLabel</tt> which can display multi-line text with embedded links and internally uses a Windows SysLink control. See the <i>CodeClasses.iss</i> example script for examples.</li>
<li><tt>TWizardForm</tt>: Added new <tt>AdjustLinkLabelHeight</tt> function.</li>
<li><tt>TDownloadPage</tt>: Added new <tt>ShowBaseNameInsteadOfUrl</tt> property.</li>
<li>It is now possible to write <tt>var S: set of AnsiChar; begin S := ['a', 'b']; end;</tt>. In previous versions this would result in a type mismatch error.</tt>
<li>It is now possible to write <tt>Stream.ReadBuffer(S, Length(S));</tt> when S is of type <tt>AnsiString</tt>. In previous versions this would compile but not work at run time. Same applies to <tt>Read</tt>, <tt>Write</tt>, and <tt>WriteBuffer</tt>: all four functions now accept any type of string.</li>
<li>Added example which downloads and unzips a Zip file to the <i>CodeAutomation.iss</i> example script.</li>
<li>Type <tt>TShellFolderID</tt> was removed because it wasn't used by any support function.</li>
</ul>
</li>
<li>Improved the icons used by the <i>Select Language</i> dialog and the <i>Select Destination Location</i>, <i>Select Start Menu Folder</i>, and <i>Preparing to Install</i> wizard pages at 150% DPI and at 200% DPI.</li>
<li>Added modern icons to the MyProg example executables, now compiled with Visual Studio 2022.</li>
<li>Added official Korean translation.</li>
<li>Inno Setup is now built using Delphi 11.3 Alexandria instead of Delphi 10.3 Rio.</li>
<li>Inno Setup's Delphi projects have been recreated as new clean projects and have been added to a <i>Projects\Projects.groupproj</i> project group. This makes it a lot easier to get started with working with the Inno Setup source code and making contributions, even with the free Delphi Community Edition.</li>
<li>Minor tweaks and documentation improvements.</li>
</ul>
<p>Contributions via <a href="https://github.com/jrsoftware/issrc" target="_blank">GitHub</a>: Thanks to Achim Stuy, ser163, Jens Geyer, and Sergii Leonov for their contributions.</p>
<p><a href="files/is6.2-whatsnew.htm">Inno Setup 6.2 Revision History</a></p>
</body>
</html>