- Added new control type "Button"

- Added new flag "NOTIFY"
- Added new flag "NOWORDWRAP" for multi-line text boxes
- Reduced size down to 12K


git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@3254 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
eccles 2003-12-04 22:12:25 +00:00
parent c0e8dc4f73
commit 6b73b0e490
7 changed files with 686 additions and 462 deletions

View file

@ -1,3 +1,9 @@
DLL version 2.3 (12/4/2003)
* Added new control type "Button"
* Added new flag "NOTIFY"
* Added new flag "NOWORDWRAP" for multi-line text boxes
* Reduced size down to 12K
DLL version 2.2 (6/10/2003)
* Added New control type LINK
* \r\n converts to newline in Multiline edit box
@ -24,45 +30,45 @@ DLL version 2.0 (1/4/2003)
* New documentation (by Joost Verburg)
* New GROUP/NOTABSTOP/DISABLED flags
DLL version 1.7 beta (11/2/2002)
DLL version 1.7 beta (11/2/2002)
* Added initDialog and show DLL functions
DLL version 1.6 beta (9/30/2002)
* CancelConfirmIcon becomes CancelConfirmFlags and can now take the other common MessageBox flags
DLL version 1.5 beta (9/26/2002)
DLL version 1.5 beta (9/26/2002)
* Made close [x] button behave like Cancel (thanks brainsucker)
DLL version 1.4 beta (9/4/2002)
* Added Icon and Bitmap controls (by Amir Szekely)
DLL version 1.3 beta (8/15/2002)
* Added CancelShow (by ORTIM)
* Added CancelShow (by ORTIM)
* Added pixel transformation for widgets (by ORTIM)
DLL version 1.2 beta (7/31/2002)
* Added CancelEnabled (by ORTIM)
* Added CancelConfirmCaption and CancelConfirmIcon (by Amir Szekely)
* Added CancelConfirmCaption and CancelConfirmIcon (by Amir Szekely)
DLL version 1.1 beta (7/22/2002)
* Font is now taken from the main NSIS window (by Amir Szekely)
DLL version 1.0 beta (12/16/2001)
* Moved to DLL, no longer need parentwnd ini writing
* Tons of changes - no longer fully compatible (see source for a big list)
* removed support for silent installers (it seems the old version would bring up it's own dialog)
* Moved to DLL, no longer need parentwnd ini writing
* Tons of changes - no longer fully compatible (see source for a big list)
* removed support for silent installers (it seems the old version would bring up it's own dialog)
version 1.4 (11/18/2001)
* Added Listbox controls.
* Added MULTISELECT flag.
* Added Listbox controls.
* Added MULTISELECT flag.
* Made the HWND list for the parent window controls dynamically allocated. This prevents a crash if NSIS ever gets more than 150 controls on it's main window.
* The TEXT property of DirRequest control can be used to specify an initial directory. The current directory is automatically selected when clicking the browse button of the DirRequest control.
* Added ROOT property to DirRequest which can be used to set the root directory (mostly due to felfert)
* Edit controls will now auto scroll (thanks felfert)
* Fixed a problem where the window wouldn't draw properly on some systems (thanks felfert)
* The TEXT property of DirRequest control can be used to specify an initial directory. The current directory is automatically selected when clicking the browse button of the DirRequest control.
* Added ROOT property to DirRequest which can be used to set the root directory (mostly due to felfert)
* Edit controls will now auto scroll (thanks felfert)
* Fixed a problem where the window wouldn't draw properly on some systems (thanks felfert)
version 1.3 (11/03/2001)
* Got rid of the call to RedrawWindow() because it's no longer needed with the WS_CLIPCHILDREN flag for NSIS.
* Got rid of the call to RedrawWindow() because it's no longer needed with the WS_CLIPCHILDREN flag for NSIS.
* Removed a few hardcoded limits of buffer sizes
* Added Checkbox and RadioButton controls
* Added RIGHT and CHECKED flags
@ -71,10 +77,10 @@ version 1.2.2 (10/30/2001)
* Additional size reductions. Further reduced the size down to 8k.
* The text parameter to a combobox can now be used to specify the initial value
* Changed from InvalidateRect() to RedrawWindow() to force a redraw after a browse dialog
* On startup, set the flags of the NSIS window to include WS_CLIPCHILDREN. Otherwise, our controls don't get drawn right.
* On startup, set the flags of the NSIS window to include WS_CLIPCHILDREN. Otherwise, our controls don't get drawn right.
version 1.2.1 (10/28/2001)
* Bug fix. ControlID for the caption and the OK button were reused by the first two controls. (Thanks Schultz)
* Bug fix. ControlID for the caption and the OK button were reused by the first two controls. (Thanks Schultz)
version 1.2j (10/28/2001)
* 8.5kb from 44kb. heh. (by Justin Frankel)
@ -98,4 +104,4 @@ version 1.01 (10/25/2001)
* Added the license to the documentation
version 1.0 (10/25/2001)
* Barely qualifies as a distribution
* Barely qualifies as a distribution

File diff suppressed because it is too large Load diff

View file

@ -54,14 +54,14 @@ h1
text-align: center;
margin: 20px;
}
h2
{
font-size: 165%;
color: #7A7272;
font-weight: normal;
}
h3
{
font-size: 150%;
@ -85,13 +85,13 @@ a:link, a:visited, a:active
color: #294F75;
text-decoration: none;
}
a:hover
{
color: #182634;
text-decoration: underline;
}
.subtable
{
border: 0px;
@ -199,6 +199,14 @@ according to a different rect than NSIS's dialogs rect.</td>
<td class="righttable">If 1 is specified the dialog will be mirrored and all texts will be aligned
to the right. Use NSIS's $(^RTL) to fill this field, it's the easiest way.</td>
</tr>
<tr>
<td class="lefttable"><strong>State</strong></td>
<td class="lefttable"><em>(output)</em></td>
<td class="righttable">This is not something you have to supply yourself but is set by
InstallOptions, before calling your custom page validation function, to the field
number of the custom Button control (or other control having the Notify flag) the
user pressed, if any.
</tr>
</table>
<p>Each field section has the heading "Field #" where # must be sequential numbers from 1 to
NumFields. Each Field section can contain the following values:</p>
@ -209,14 +217,14 @@ NumFields. Each Field section can contain the following values:</p>
<td class="righttable">Type of control to be created. Valid values are "<em>Label</em>",
"<em>Text</em>", "<em>Password</em>", "<em>Combobox</em>", "<em>DropList</em>", "<em>Listbox</em>",
"<em>CheckBox</em>", "<em>RadioButton</em>", "<em>FileRequest</em>", "<em>DirRequest</em>"
"<em>Icon</em>", "<em>Bitmap</em>" or "<em>GroupBox</em>".<br />
"<em>Icon</em>", "<em>Bitmap</em>", "<em>GroupBox</em>", "<em>Link</em>" or "<em>Button</em>".<br />
<br />
A "<em>Label</em>" is used to display static text. (i.e. a caption for a textbox)<br />
A "<em>Text</em>" and "<em>Password</em>" accept text input from the user. "<em>Password</em>"
masks the input with * characters.<br />
A "<em>Combobox</em>" allows the user to type text not in the popup list, a "<em>Droplist</em>"
only allows selection of items in the list.<br />
A "<em>listbox</em>" shows multiple items and can optionally allow the user to select more than one
A "<em>Listbox</em>" shows multiple items and can optionally allow the user to select more than one
item.<br />
A "<em>CheckBox</em>" control displays a check box with label.<br />
A "<em>RadioButton</em>" control displays a radio button with label.<br />
@ -228,7 +236,9 @@ An "<em>Icon</em>" control displays an icon. Use no Text to use the installer ic
A "<em>Bitmap</em>" control displays a bitmap.<br />
A "<em>GroupBox</em>" control displays a frame to group controls.<br />
A "<em>Link</em>" control displays a static hot text, when the user click the control the contents
of <strong>State</strong> (e.g. http://...) will be executed using ShellExecute<br /></td>
of <strong>State</strong> (e.g. http://...) will be executed using ShellExecute<br />
A "<em>Button</em>" control displays a push button that your NSIS script can act on
when pressed. See the "<em>NOTIFY</em>" flag for more information.</td>
</tr>
<tr>
<td class="lefttable"><strong>Text</strong></td>
@ -271,7 +281,7 @@ You should not use this on a "<em>combobox</em>" since the user can not control
selected.<br />
This should be set to a maximum of 260 for "<em>FileRequest</em>" and "<em>DirRequest</em>"
controls.<br />
Ignored on "<em>label</em>" controls.</td>
Ignored on "<em>Label</em>" controls.</td>
</tr>
<tr>
<td class="lefttable"><strong>MinLen</strong></td>
@ -444,9 +454,16 @@ carriage return be inserted when the user presses the ENTER key while entering t
box.</td>
</tr>
<tr>
<td class="righttable">NOWORDWRAP</td>
<td class="righttable">Used by "<em>Text</em>" controls with multiple-line. Disables the
word-wrap that occurs when long lines are entered. Long lines instead scroll off to the
side. Specifying the HSCROLL flag also has this effect.
</td>
</tr>
<tr>
<td class="righttable">HSCROLL</td>
<td class="righttable">Used by "<em>Text</em>" controls with multiple-line. Show a horizontal
scrollbar.</td>
scrollbar and disable word-wrap.</td>
</tr>
<tr>
<td class="righttable">VSCROLL</td>
@ -458,6 +475,16 @@ scrollbar.</td>
<td class="righttable">Used by "<em>Text</em>" controls. Prevents the user from entering or editing
text in the edit control, but allow the user to select and copy the text.</td>
</tr>
<tr>
<td class="righttable">NOTIFY</td>
<td class="righttable">Used by "<em>Button</em>", "<em>CheckBox</em>" and "<em>RadioButton</em>"
controls. Causes InstallOptions to call your NSIS custom page validation/leave function
whenever the button is pressed. Your validation/leave function can read the "<em>State</em>"
value from the "<em>Settings</em>" section to determine which custom button has been
pressed, if any, and perform some appropriate action followed by an Abort instruction
(to tell NSIS to return to the page). The Contrib\InstallOptions folder contains an
example script showing how this might be used.</td>
</tr>
</table>
</td>
</tr>
@ -691,6 +718,16 @@ FunctionEnd
</pre>
<h2>Version history</h2>
<ul>
<li>DLL version 2.3 (12/4/2003)
<ul>
<li>Added new control type "Button"</li>
<li>Added new flag "NOTIFY"</li>
<li>Added new flag "NOWORDWRAP" for multi-line text boxes</li>
<li>Reduced size down to 12K</li>
</ul>
</li>
</ul>
<ul>
<li>DLL version 2.2 (4/9/2003)
<ul>
<li>Added new control "link"</li>

View file

@ -0,0 +1,83 @@
[Settings]
NumFields=9
[Field 1]
Type=Groupbox
Text="This is a group box..."
Left=0
Right=-1
Top=0
Bottom=-4
[Field 2]
Type=Checkbox
Text=Install support for X
Flags=NOTIFY
State=1
Left=10
Right=100
Top=17
Bottom=25
[Field 3]
Type=Checkbox
Text=Install support for Y
State=0
Left=10
Right=100
Top=30
Bottom=38
[Field 4]
Type=Checkbox
Text=Install support for Z
State=0
Left=10
Right=100
Top=43
Bottom=51
[Field 5]
Type=FileRequest
Flags=GROUP|FILE_MUST_EXIST|FILE_EXPLORER|FILE_HIDEREADONLY
State=C:\poop.poop
Filter=Poop Files|*.poop|All files|*.*
Left=10
Right=-10
Top=56
Bottom=69
[Field 6]
Type=DirRequest
Text=Select a directory...
State=C:\Program Files\NSIS
Left=10
Right=-10
Top=74
Bottom=87
[Field 7]
Type=Label
Text=This is a label...
Left=10
Right=-10
Top=89
Bottom=97
[Field 8]
Type=Text
Flags=MULTILINE|VSCROLL|WANTRETURN|NOWORDWRAP
State="Multiline\r\nedit..."
Left=10
Right=-10
Top=97
Bottom=118
[Field 9]
Type=Button
Flags=NOTIFY
Text=Clear
Left=-60
Right=-10
Top=27
Bottom=41

View file

@ -0,0 +1,105 @@
; InstallOptions script demonstrating custom buttons
;----------------------------------------------------
!include WinMessages.nsh
Var hwnd ; Window handle of the custom page
; The name of the installer
Name "InstallOptions Test"
; The file to write
OutFile "TestNotify.exe"
; Show install details
ShowInstDetails show
; Called before anything else as installer initialises
Function .onInit
; Extract InstallOptions files
; $PLUGINSDIR will automatically be removed when the installer closes
InitPluginsDir
File /oname=$PLUGINSDIR\test.ini "testnotify.ini"
FunctionEnd
; Our custom page
Page custom ShowCustom LeaveCustom ": Testing InstallOptions"
Function ShowCustom
; Initialise the dialog but don't show it yet
InstallOptions::initDialog /NOUNLOAD "$PLUGINSDIR\test.ini"
; In this mode InstallOptions returns the window handle so we can use it
Pop $hwnd
; Now show the dialog and wait for it to finish
InstallOptions::show
; Finally fetch the InstallOptions status value (we don't care what it is though)
Pop $0
FunctionEnd
Function LeaveCustom
; At this point the user has either pressed Next or one of our custom buttons
; We find out which by reading from the INI file
ReadINIStr $0 "$PLUGINSDIR\test.ini" "Settings" "State"
StrCmp $0 0 validate ; Next button?
StrCmp $0 2 supportx ; "Install support for X"?
StrCmp $0 9 clearbtn ; "Clear" button?
Abort ; Return to the page
supportx:
; Make the FileRequest field depend on the first checkbox
ReadINIStr $0 "$PLUGINSDIR\test.ini" "Field 2" "State"
GetDlgItem $1 $hwnd 1204 ; PathRequest control (1200 + field 5 - 1)
EnableWindow $1 $0
GetDlgItem $1 $hwnd 1205 ; ... button (the following control)
EnableWindow $1 $0
Abort ; Return to the page
clearbtn:
; Clear all text fields
GetDlgItem $1 $hwnd 1204 ; PathRequest control (1200 + field 5 - 1)
SendMessage $1 ${WM_SETTEXT} 0 "STR:"
GetDlgItem $1 $hwnd 1206 ; DirRequest control (1200 + field 6 - 1 + 1 browse button)
SendMessage $1 ${WM_SETTEXT} 0 "STR:"
GetDlgItem $1 $hwnd 1209 ; DirRequest control (1200 + field 8 - 1 + 2 browse buttons)
SendMessage $1 ${WM_SETTEXT} 0 "STR:"
Abort ; Return to the page
validate:
; At this point we know the Next button was pressed, so perform any validation
ReadINIStr $0 "$PLUGINSDIR\test.ini" "Field 2" "State"
StrCmp $0 1 done
ReadINIStr $0 "$PLUGINSDIR\test.ini" "Field 3" "State"
StrCmp $0 1 done
ReadINIStr $0 "$PLUGINSDIR\test.ini" "Field 4" "State"
StrCmp $0 1 done
MessageBox MB_ICONEXCLAMATION|MB_OK "You must select at least one install option!"
Abort
done:
FunctionEnd
; Installation page
Page instfiles
Section
;Get Install Options dialog user input
ReadINIStr $0 "$PLUGINSDIR\test.ini" "Field 2" "State"
DetailPrint "Install X=$0"
ReadINIStr $0 "$PLUGINSDIR\test.ini" "Field 3" "State"
DetailPrint "Install Y=$0"
ReadINIStr $0 "$PLUGINSDIR\test.ini" "Field 4" "State"
DetailPrint "Install Z=$0"
ReadINIStr $0 "$PLUGINSDIR\test.ini" "Field 5" "State"
DetailPrint "File=$0"
ReadINIStr $0 "$PLUGINSDIR\test.ini" "Field 6" "State"
DetailPrint "Dir=$0"
ReadINIStr $0 "$PLUGINSDIR\test.ini" "Field 8" "State"
DetailPrint "Info=$0"
SectionEnd

View file

@ -79,9 +79,9 @@ Page custom PageReinstall PageLeaveReinstall
;--------------------------------
;Reserve Files
;These files should be inserted before other files in the data block
ReserveFile "makensis.ini"
!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
@ -104,7 +104,7 @@ Section "NSIS Core Files (required)" SecCore
File ..\makensisw.exe
File ..\license.txt
File ..\NSIS.chm
File ..\NSIS.exe
IfFileExists $INSTDIR\nsisconf.nsi "" +2
Rename $INSTDIR\nsisconf.nsi $INSTDIR\nsisconf.nsh
@ -119,23 +119,23 @@ Section "NSIS Core Files (required)" SecCore
SetOutPath $INSTDIR\Contrib\Makensisw
File ..\contrib\makensisw\*.txt
SetOutPath $INSTDIR\Menu
File ..\Menu\*.html
SetOutPath $INSTDIR\Menu\images
File ..\Menu\images\*.gif
Delete $INSTDIR\makensis.htm
Delete $INSTDIR\Docs\*.html
Delete $INSTDIR\Docs\style.css
RMDir $INSTDIR\Docs
ReadRegStr $R0 HKCR ".nsi" ""
StrCmp $R0 "NSISFile" 0 no_nsioldassoc
DeleteRegKey HKCR "NSISFile"
Goto nsi
no_nsioldassoc:
StrCmp $R0 "NSIS.Script" 0 no_nsi
nsi:
WriteRegStr HKCR ".nsi" "" "NSIS.Script"
@ -144,20 +144,20 @@ Section "NSIS Core Files (required)" SecCore
ReadRegStr $R0 HKCR "NSIS.Script\shell\open\command" ""
StrCmp $R0 "" 0 no_nsiopen
WriteRegStr HKCR "NSIS.Script\shell" "" "open"
WriteRegStr HKCR "NSIS.Script\shell\open\command" "" 'notepad.exe "%1"'
WriteRegStr HKCR "NSIS.Script\shell\open\command" "" 'notepad.exe "%1"'
no_nsiopen:
WriteRegStr HKCR "NSIS.Script\shell\compile" "" "Compile NSIS Script"
WriteRegStr HKCR "NSIS.Script\shell\compile\command" "" '"$INSTDIR\makensisw.exe" "%1"'
WriteRegStr HKCR "NSIS.Script\shell\compile-compressor" "" "Compile NSIS Script (Choose Compressor)"
WriteRegStr HKCR "NSIS.Script\shell\compile-compressor\command" "" '"$INSTDIR\makensisw.exe" /ChooseCompressor "%1"'
no_nsi:
ReadRegStr $R0 HKCR ".nsh" ""
StrCmp $R0 "NSHFile" 0 no_nsholdassoc
DeleteRegKey HKCR "NSHFile"
Goto nsh
no_nsholdassoc:
StrCmp ".nsh" "NSIS.Header" 0 no_nsh
nsh:
WriteRegStr HKCR ".nsh" "" "NSIS.Header"
@ -166,7 +166,7 @@ Section "NSIS Core Files (required)" SecCore
ReadRegStr $R0 HKCR "NSIS.Header\shell\open\command" ""
StrCmp $R0 "" 0 no_nshopen
WriteRegStr HKCR "NSIS.Header\shell" "" "open"
WriteRegStr HKCR "NSIS.Header\shell\open\command" "" 'notepad.exe "%1"'
WriteRegStr HKCR "NSIS.Header\shell\open\command" "" 'notepad.exe "%1"'
no_nshopen:
no_nsh:
@ -228,11 +228,11 @@ Section "Desktop Shortcut" SecShortcuts
CreateShortCut "$SMPROGRAMS\NSIS\NSIS Documentation.lnk" "$INSTDIR\NSIS.chm"
WriteINIStr "$SMPROGRAMS\NSIS\NSIS Site.url" "InternetShortcut" "URL" "http://nsis.sourceforge.net/"
CreateShortCut "$SMPROGRAMS\NSIS\Uninstall NSIS.lnk" "$INSTDIR\uninst-nsis.exe"
!endif
CreateShortCut "$DESKTOP\Nullsoft Install System.lnk" "$INSTDIR\NSIS.exe"
SectionEnd
SubSection "User Interfaces" SecInterfaces
@ -280,7 +280,7 @@ Section "Modern User Interface" SecInterfacesModernUI
SetOutPath $INSTDIR\Include
File "..\Include\MUI.nsh"
SectionEnd
Section "Default User Interface" SecInterfacesDefaultUI
@ -362,10 +362,10 @@ Section "NSIS Update" SecToolsUpdate
SetOutPath $INSTDIR\Bin
File ..\Bin\NSISUpdate.exe
File ..\Bin\InstallCVSData.exe
IfFileExists "$INSTDIR\CVS\Root" 0 +2
Exec '"$INSTDIR\Bin\InstallCVSData.exe"'
SectionEnd
Section "Zip2Exe" SecToolsZ2E
@ -478,7 +478,7 @@ SectionEnd
Section "InstallOptions" SecPluginsIO
SetDetailsPrint textonly
DetailPrint "Installing Plug-inss | InstallOptions..."
DetailPrint "Installing Plug-ins | InstallOptions..."
SetDetailsPrint listonly
SectionIn 1 2
@ -492,6 +492,8 @@ Section "InstallOptions" SecPluginsIO
File ..\contrib\installoptions\test.nsi
File ..\contrib\installoptions\testlink.ini
File ..\contrib\installoptions\testlink.nsi
File ..\contrib\installoptions\testnotify.ini
File ..\contrib\installoptions\testnotify.nsi
SectionEnd
Section "Math" SecPluginsMath
@ -983,17 +985,17 @@ Section -post
; * Always install default icons / bitmaps
!insertmacro SectionFlagIsSet ${SecInterfacesModernUI} ${SF_SELECTED} mui nomui
mui:
mui:
SetDetailsPrint textonly
DetailPrint "Configurating Modern UI..."
SetDetailsPrint listonly
!insertmacro SectionFlagIsSet ${SecLangFiles} ${SF_SELECTED} langfiles nolangfiles
nolangfiles:
SetOutPath "$INSTDIR\Contrib\Language files"
File "..\Contrib\Language files\English.nlf"
SetOutPath "$INSTDIR\Contrib\Modern UI\Language files"
@ -1003,9 +1005,9 @@ Section -post
langfiles:
!insertmacro SectionFlagIsSet ${SecGraphics} ${SF_SELECTED} graphics nographics
nographics:
SetOutPath $INSTDIR\Contrib\Graphics
SetOutPath $INSTDIR\Contrib\Graphics\Checks
File "..\Contrib\Graphics\Checks\modern.bmp"
@ -1176,7 +1178,7 @@ Section -post
SetDetailsPrint none
RMDir $INSTDIR\Contrib\Source
SetDetailsPrint lastused
WriteUninstaller $INSTDIR\uninst-nsis.exe
SetDetailsPrint both
@ -1250,10 +1252,10 @@ FunctionEnd
Function PageReinstall
ReadRegStr $R0 HKLM "Software\NSIS" ""
StrCmp $R0 "" 0 +2
Abort
;Detect version
ReadRegDWORD $R0 HKLM "Software\NSIS" "VersionMajor"
IntCmp $R0 ${VER_MAJOR} minor_check new_version older_version
@ -1296,43 +1298,43 @@ Function PageReinstall
reinst_start:
!insertmacro MUI_INSTALLOPTIONS_DISPLAY "makensis.ini"
FunctionEnd
Function PageLeaveReinstall
!insertmacro MUI_INSTALLOPTIONS_READ $R1 "makensis.ini" "Field 2" "State"
StrCmp $R0 "1" 0 +2
StrCmp $R1 "1" reinst_uninstall reinst_done
StrCmp $R0 "2" 0 +3
StrCmp $R1 "1" reinst_done reinst_uninstall
reinst_uninstall:
ReadRegStr $R1 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "UninstallString"
;Run uninstaller
HideWindow
ClearErrors
ExecWait '$R1 _?=$INSTDIR'
IfErrors no_remove_uninstaller
IfFileExists "$INSTDIR\makensis.exe" no_remove_uninstaller
Delete $R1
RMDir $INSTDIR
no_remove_uninstaller:
StrCmp $R0 "2" 0 +2
Quit
BringToFront
reinst_done:
FunctionEnd
!macro secSelected SEC
@ -1415,18 +1417,18 @@ Section Uninstall
SetDetailsPrint textonly
DetailPrint "Deleting Registry Keys..."
SetDetailsPrint listonly
ReadRegStr $R0 HKCR ".nsi" ""
StrCmp $R0 "NSIS.Script" 0 +2
DeleteRegKey HKCR ".nsi"
ReadRegStr $R0 HKCR ".nsh" ""
StrCmp $R0 "NSIS.Header" 0 +2
DeleteRegKey HKCR ".nsh"
DeleteRegKey HKCR "NSIS.Script"
DeleteRegKey HKCR "NSIS.Header"
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS"
DeleteRegKey HKLM "Software\NSIS"
@ -1444,7 +1446,7 @@ Section Uninstall
Delete $INSTDIR\nsisconf.nsi
Delete $INSTDIR\nsisconf.nsh
Delete $INSTDIR\NSIS.chm
RMDIR /r $INSTDIR\CVS
RMDIR /r $INSTDIR\CVS
RMDir /r $INSTDIR\Contrib
RMDir /r $INSTDIR\Menu
RMDir /r $INSTDIR\Source
@ -1456,4 +1458,4 @@ Section Uninstall
SetDetailsPrint both
SectionEnd
SectionEnd

Binary file not shown.