Code

Spray Tool: translated forgotten strings from French to English
[inkscape.git] / packaging / win32 / inkscape.nsi
index 0b735596997088a7c3a1ae663e998c5b98c3c768..651ba3cb2ac33da07e00e4dff66f5f694b24a311 100644 (file)
@@ -7,17 +7,20 @@
 ; DEFINES
 ; #######################################
 !define PRODUCT_NAME "Inkscape"
-!define PRODUCT_VERSION "0.46+devel"
+!define PRODUCT_VERSION "0.47+devel"
+!define PRODUCT_REVISION 3
+!define PRODUCT_VERSION_4 "0.47.0.3"
 !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\inkscape.exe"
 !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
-;!define DUMMYINSTALL ; define this to make it build quickly, not including any of the files or proper sections, for quick testing of pre-install features of the installer
+;!define DUMMYINSTALL ; Define this to make it build quickly, not including any of the files or code in the sections, for quick testing of features of the installer and development thereof.
 
 ; #######################################
 ; MUI   SETTINGS
 ; #######################################
 ; MUI 1.67 compatible ------
 SetCompressor /SOLID lzma
-RequestExecutionLevel highest
+SetCompressorDictSize 32
+RequestExecutionLevel admin
 !include "MUI.nsh"
 !include "LogicLib.nsh"
 !include "sections.nsh"
@@ -88,22 +91,24 @@ ShowUninstDetails hide
 ; default language first
 
 ; Language files
-!include "english.nsh"
-!include "breton.nsh"
-!include "catalan.nsh"
-!include "czech.nsh"
-!include "finnish.nsh"
-!include "french.nsh"
-!include "galician.nsh"
-!include "german.nsh"
-!include "italian.nsh"
-!include "japanese.nsh"
-!include "polish.nsh"
-!include "russian.nsh"
-!include "slovak.nsh"
-!include "slovenian.nsh"
-!include "spanish.nsh"
-!include "tradchinese.nsh"
+!insertmacro MUI_RESERVEFILE_LANGDLL
+!include English.nsh
+!include Breton.nsh
+!include Catalan.nsh
+!include Czech.nsh
+!include Finnish.nsh
+!include French.nsh
+!include Galician.nsh
+!include German.nsh
+!include Italian.nsh
+!include Japanese.nsh
+!include Polish.nsh
+!include Russian.nsh
+!include Slovak.nsh
+!include Slovenian.nsh
+!include Spanish.nsh
+!include SimpChinese.nsh
+!include TradChinese.nsh
 
 ReserveFile "inkscape.nsi.uninstall"
 ReserveFile "${NSISDIR}\Plugins\UserInfo.dll"
@@ -116,10 +121,24 @@ ReserveFile "${NSISDIR}\Plugins\UserInfo.dll"
 Name              "${PRODUCT_NAME}"
 Caption           "$(lng_Caption)"
 BrandingText      "$(lng_Caption)"
-OutFile           "Inkscape-${PRODUCT_VERSION}-1.win32.exe"
+!ifndef PRODUCT_REVISION
+OutFile           "Inkscape-${PRODUCT_VERSION}.exe"
+!else
+OutFile           "Inkscape-${PRODUCT_VERSION}-${PRODUCT_REVISION}.exe"
+!endif
 InstallDir        "$PROGRAMFILES\Inkscape"
 InstallDirRegKey  HKLM "${PRODUCT_DIR_REGKEY}" ""
 
+VIProductVersion "${PRODUCT_VERSION_4}"
+VIAddVersionKey ProductName "${PRODUCT_NAME}"
+VIAddVersionKey Comments "Licensed under the GNU GPL"
+VIAddVersionKey CompanyName "inkscape.org"
+VIAddVersionKey LegalCopyright "© 2009 Inkscape"
+VIAddVersionKey FileDescription "${PRODUCT_NAME}"
+VIAddVersionKey FileVersion "${PRODUCT_VERSION_4}"
+VIAddVersionKey ProductVersion "${PRODUCT_VERSION_4}"
+VIAddVersionKey InternalName "${PRODUCT_NAME}"
+
 Var askMultiUser
 Var filename
 Var MultiUser
@@ -130,7 +149,6 @@ Var CMDARGS
 ;  I N S T A L L E R    S E C T I O N S
 ; #######################################
 
-!ifndef DUMMYINSTALL
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -139,8 +157,8 @@ Var CMDARGS
 ;;;;;;;;;;;;;;;;;;;;;;;;;;
 !macro delprefs
   StrCpy $0 0
-  DetailPrint "Delete personal preferences ..."
-  DetailPrint "try to find all users ..."
+  DetailPrint "Deleting personal preferences..."
+  DetailPrint "Finding all users..."
   ${Do}
  ; FIXME
   ; this will loop through all the logged users and "virtual" windows users
@@ -151,7 +169,7 @@ Var CMDARGS
     IntOp $0 $0 + 1
     ReadRegStr $2 HKU "$1\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" AppData
     ${IfThen} $2 == "" ${|} ${Continue} ${|}
-    DetailPrint "$2\Inkscape will be removed"
+    DetailPrint "Removing $2\Inkscape"
     Delete "$2\Inkscape\preferences.xml"
     Delete "$2\Inkscape\extension-errors.log"
     RMDir "$2\Inkscape"
@@ -162,21 +180,7 @@ Var CMDARGS
 ;--------------------------------
 ; Installer Sections
 Section -removeInkscape
-  ; check for an old installation and clean its DLLs etc.
-  FindFirst $0 $1 $INSTDIR\*.*
-  ${Do}
-    ${IfThen} $1 == "" ${|} ${ExitDo} ${|}
-    ${If} $1 == "."
-    ${OrIf} $1 == ".."
-      FindNext $0 $1
-      ${Continue}
-    ${EndIf}
-    ${If} ${Cmd} ${|} MessageBox MB_RETRYCANCEL|MB_ICONEXCLAMATION "$(lng_ClearDirectoryBefore)" /SD IDCANCEL IDCANCEL ${|}
-      FindFirst $0 $1 $INSTDIR\*.*
-      ${Continue}
-    ${Else}
-    ${EndIf}
-  ${Loop}
+!ifndef DUMMYINSTALL
   ;remove the old Inkscape shortcuts from the startmenu
   ;just in case they are still there
   SetShellVarContext current
@@ -189,11 +193,13 @@ Section -removeInkscape
   Delete "$SMPROGRAMS\Inkscape\Inkscape.lnk"
   RMDir  "$SMPROGRAMS\Inkscape"
   Delete "$SMPROGRAMS\Inkscape.lnk"
+!endif
 SectionEnd
 
 Section $(lng_Core) SecCore
   SectionIn 1 2 3 RO
-  DetailPrint "Installing Inkscape Core Files ..."
+!ifndef DUMMYINSTALL
+  DetailPrint "Installing Inkscape core files..."
   SetOutPath $INSTDIR
   !insertmacro UNINSTALL.LOG_OPEN_INSTALL
   SetOverwrite on
@@ -234,11 +240,13 @@ Section $(lng_Core) SecCore
   !insertmacro UNINSTALL.LOG_OPEN_INSTALL
   File /nonfatal /a /r "..\..\inkscape\python\*.*"
   !insertmacro UNINSTALL.LOG_CLOSE_INSTALL
+!endif
 SectionEnd
 
 Section $(lng_GTKFiles) SecGTK
   SectionIn 1 2 3 RO
-  DetailPrint "Installing GTK Files ..."
+!ifndef DUMMYINSTALL
+  DetailPrint "Installing GTK files..."
   SetOutPath $INSTDIR
   !insertmacro UNINSTALL.LOG_OPEN_INSTALL
   SetOverwrite on
@@ -246,119 +254,121 @@ Section $(lng_GTKFiles) SecGTK
   File /a /r /x "locale" "..\..\inkscape\lib"
   File /a /r "..\..\inkscape\etc"
   !insertmacro UNINSTALL.LOG_CLOSE_INSTALL
+!endif
 SectionEnd
 
 Section -SetCurrentUserOnly
+!ifndef DUMMYINSTALL
   StrCpy $MultiUser 0
   SetShellVarContext current
+!endif
 SectionEnd
 
 Section $(lng_Alluser) SecAlluser
-  ; disable this option in Win95/Win98/WinME
   SectionIn 1 2 3
+!ifndef DUMMYINSTALL
+  ; disable this option in Win95/Win98/WinME
   StrCpy $MultiUser 1
-  DetailPrint "admin mode, registry root will be HKLM"
+  DetailPrint "Installing in administrator mode (registry root will be HKLM)"
   SetShellVarContext all
+!endif
 SectionEnd
 
 SectionGroup $(lng_Shortcuts) SecShortcuts
 
-Section /o $(lng_Desktop) SecDesktop
-  ClearErrors
+Section $(lng_Desktop) SecDesktop
+!ifndef DUMMYINSTALL
   CreateShortCut "$DESKTOP\Inkscape.lnk" "$INSTDIR\inkscape.exe"
-  ${IfThen} ${Errors} ${|} DetailPrint "Uups! Problems creating desktop shortcuts" ${|}
+!endif
 SectionEnd
 
-Section /o $(lng_Quicklaunch) SecQuicklaunch
-  ClearErrors
+Section $(lng_Quicklaunch) SecQuicklaunch
+!ifndef DUMMYINSTALL
   ${IfThen} $QUICKLAUNCH != $TEMP ${|} CreateShortCut "$QUICKLAUNCH\Inkscape.lnk" "$INSTDIR\inkscape.exe" ${|}
-  ${IfThen} ${Errors} ${|} DetailPrint "Uups! Problems creating quicklaunch shortcuts" ${|}
+!endif
 SectionEnd
 
 Section $(lng_SVGWriter) SecSVGWriter
   SectionIn 1 2 3
-  ; create file associations, test before if needed
-  DetailPrint "creating file associations"
-  ClearErrors
+!ifndef DUMMYINSTALL
+  DetailPrint "Associating SVG files with Inkscape"
   ReadRegStr $0 HKCR ".svg" ""
   ${If} $0 == ""
-    WriteRegStr HKCR ".svg" "" "svgfile"
+    StrCpy $0 svgfile
+    WriteRegStr HKCR ".svg" "" $0
     WriteRegStr HKCR "svgfile" "" "Scalable Vector Graphics file"
   ${EndIf}
+  WriteRegStr HKCR "$0\shell\edit\command" "" `"$INSTDIR\Inkscape.exe" "%1"`
+
   ReadRegStr $0 HKCR ".svgz" ""
   ${If} $0 == ""
-    WriteRegStr HKCR ".svgz" "" "svgfile"
+    StrCpy $0 svgfile
+    WriteRegStr HKCR ".svgz" "" $0
     WriteRegStr HKCR "svgfile" "" "Scalable Vector Graphics file"
   ${EndIf}
-  ${IfThen} ${Errors} ${|} DetailPrint "Uups! Problems creating file assoziations for svg writer" ${|}
-
-  DetailPrint "creating default editor"
-  ClearErrors
-  ReadRegStr $0 HKCR ".svg" ""
-  WriteRegStr HKCR "$0\shell\edit\command" "" '"$INSTDIR\Inkscape.exe" "%1"'
-  ReadRegStr $0 HKCR ".svgz" ""
-  WriteRegStr HKCR "$0\shell\edit\command" "" '"$INSTDIR\Inkscape.exe" "%1"'
-  ${IfThen} ${Errors} ${|} DetailPrint "Uups! Problems creating default editor" ${|}
+  WriteRegStr HKCR "$0\shell\edit\command" "" `"$INSTDIR\Inkscape.exe" "%1"`
+!endif
 SectionEnd
 
 Section $(lng_ContextMenu) SecContextMenu
   SectionIn 1 2 3
-  ; create file associations, test before if needed
-  DetailPrint "creating file associations"
-  ClearErrors
+!ifndef DUMMYINSTALL
+  DetailPrint "Adding Inkscape to SVG file context menu"
   ReadRegStr $0 HKCR ".svg" ""
   ${If} $0 == ""
-    WriteRegStr HKCR ".svg" "" "svgfile"
+    StrCpy $0 svgfile
+    WriteRegStr HKCR ".svg" "" $0
     WriteRegStr HKCR "svgfile" "" "Scalable Vector Graphics file"
   ${EndIf}
+  WriteRegStr HKCR "$0\shell\${PRODUCT_NAME}\command" "" `"$INSTDIR\Inkscape.exe" "%1"`
 
   ReadRegStr $0 HKCR ".svgz" ""
   ${If} $0 == ""
-    WriteRegStr HKCR ".svgz" "" "svgfile"
+    StrCpy $0 svgfile
+    WriteRegStr HKCR ".svgz" "" $0
     WriteRegStr HKCR "svgfile" "" "Scalable Vector Graphics file"
   ${EndIf}
-
-  ${IfThen} ${Errors} ${|} DetailPrint "Uups! Problems creating file assoziations for context menu" ${|}
-
-  DetailPrint "creating context menue"
-  ClearErrors
-  ReadRegStr $0 HKCR ".svg" ""
-  WriteRegStr HKCR "$0\shell\${PRODUCT_NAME}\command" "" '"$INSTDIR\Inkscape.exe" "%1"'
-  ReadRegStr $0 HKCR ".svgz" ""
-  WriteRegStr HKCR "$0\shell\${PRODUCT_NAME}\command" "" '"$INSTDIR\Inkscape.exe" "%1"'
-  ${IfThen} ${Errors} ${|} DetailPrint "Uups! Problems creating context menue integration" ${|}
+  WriteRegStr HKCR "$0\shell\${PRODUCT_NAME}\command" "" `"$INSTDIR\Inkscape.exe" "%1"`
+!endif
 SectionEnd
 
 SectionGroupEnd
 
 Section /o $(lng_DeletePrefs) SecPrefs
+!ifndef DUMMYINSTALL
   !insertmacro delprefs
+!endif
 SectionEnd
 
 SectionGroup $(lng_Addfiles) SecAddfiles
 
 Section $(lng_Examples) SecExamples
   SectionIn 1 2
+!ifndef DUMMYINSTALL
   SetOutPath $INSTDIR\share
   !insertmacro UNINSTALL.LOG_OPEN_INSTALL
   File /nonfatal /a /r /x "*.??*.???*" "..\..\inkscape\share\examples"
   !insertmacro UNINSTALL.LOG_CLOSE_INSTALL
+!endif
 SectionEnd
 
 Section $(lng_Tutorials) SecTutorials
   SectionIn 1 2
+!ifndef DUMMYINSTALL
   SetOutPath $INSTDIR\share
   !insertmacro UNINSTALL.LOG_OPEN_INSTALL
   File /nonfatal /a /r /x "*.??*.???*" "..\..\inkscape\share\tutorials"
   !insertmacro UNINSTALL.LOG_CLOSE_INSTALL
+!endif
 SectionEnd
 
 SectionGroupEnd
 
 SectionGroup $(lng_Languages) SecLanguages
   !macro Language SecName lng
-    Section $(lng_${lng}) Sec${SecName}
-      SectionIn 1 2 3
+    Section /o $(lng_${lng}) Sec${SecName}
+      ;SectionIn 1 2 3
+!ifndef DUMMYINSTALL
       SetOutPath $INSTDIR
       !insertmacro UNINSTALL.LOG_OPEN_INSTALL
       File /nonfatal /a "..\..\inkscape\*.${lng}.txt" ; FIXME: remove this?  No such files.
@@ -397,6 +407,7 @@ SectionGroup $(lng_Languages) SecLanguages
         File /nonfatal /a "..\..\inkscape\share\tutorials\*.${lng}.*"
         !insertmacro UNINSTALL.LOG_CLOSE_INSTALL
       ${EndIf}
+    !endif
     SectionEnd
   !macroend
 
@@ -465,50 +476,34 @@ SectionGroupEnd
 
 
 Section -FinalizeInstallation
-  DetailPrint "finalize installation"
-  ${If} $MultiUser = 1
-    DetailPrint "admin mode, registry root will be HKLM"
-    SetShellVarContext all
-  ${Else}
-    DetailPrint "single user mode, registry root will be HKCU"
-    SetShellVarContext current
-  ${EndIf}
+!ifndef DUMMYINSTALL
+  DetailPrint "Finalizing installation"
+  ${IfThen} $MultiUser  = 1 ${|} SetShellVarContext all ${|}
+  ${IfThen} $MultiUser != 1 ${|} SetShellVarContext current ${|}
 
-  ; check for writing registry
-  ClearErrors
   WriteRegStr SHCTX "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\inkscape.exe"
-  ;${If} ${Errors}
-  ;  DetailPrint "fatal: failed to write to ${PRODUCT_DIR_REGKEY}"
-  ;  DetailPrint "aborting installation"
-  ;  Abort
-  ;${EndIf}
   WriteRegStr SHCTX "${PRODUCT_DIR_REGKEY}" "MultiUser" $MultiUser
   WriteRegStr SHCTX "${PRODUCT_DIR_REGKEY}" "askMultiUser" $askMultiUser
   WriteRegStr SHCTX "${PRODUCT_DIR_REGKEY}" "User" $User
-  ${IfThen} ${Errors} ${|} DetailPrint "Fatal: failed to write to registry installation info" ${|}
 
   ; start menu entries
-  ClearErrors
-  CreateShortCut "$SMPROGRAMS\Inkscape.lnk" "$INSTDIR\inkscape.exe"
-  ${IfThen} ${Errors} ${|} DetailPrint "Fatal: failed to write to start menu info" ${|}
+  CreateShortcut "$SMPROGRAMS\Inkscape.lnk" "$INSTDIR\inkscape.exe"
 
   ; uninstall settings
-  ClearErrors
   ; WriteUninstaller "$INSTDIR\uninst.exe"
   WriteRegExpandStr SHCTX "${PRODUCT_UNINST_KEY}" "UninstallString" "${UNINST_EXE}"
-  WriteRegExpandStr SHCTX "${PRODUCT_UNINST_KEY}" "InstallDir" "$INSTDIR"
-  WriteRegExpandStr SHCTX "${PRODUCT_UNINST_KEY}" "InstallLocation" "$INSTDIR"
+  WriteRegExpandStr SHCTX "${PRODUCT_UNINST_KEY}" "InstallDir" $INSTDIR
+  WriteRegExpandStr SHCTX "${PRODUCT_UNINST_KEY}" "InstallLocation" $INSTDIR
   WriteRegStr SHCTX "${PRODUCT_UNINST_KEY}" "DisplayName" "${PRODUCT_NAME} ${PRODUCT_VERSION}"
   WriteRegStr SHCTX "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\Inkscape.exe,0"
   WriteRegStr SHCTX "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
-  WriteRegDWORD SHCTX "${PRODUCT_UNINST_KEY}" "NoModify" "1"
-  WriteRegDWORD SHCTX "${PRODUCT_UNINST_KEY}" "NoRepair" "1"
-  ${IfThen} ${Errors} ${|} DetailPrint "fatal: failed to write to registry un-installation info" ${|}
+  WriteRegDWORD SHCTX "${PRODUCT_UNINST_KEY}" "NoModify" 1
+  WriteRegDWORD SHCTX "${PRODUCT_UNINST_KEY}" "NoRepair" 1
 
   ;create/update log always within .onInstSuccess function
   !insertmacro UNINSTALL.LOG_UPDATE_INSTALL
 
-  DetailPrint "Creating MD5 checksums..."
+  DetailPrint "Creating MD5 checksums"
   ClearErrors
   FileOpen $0 $INSTDIR\Uninstall.dat r
   FileOpen $9 $INSTDIR\Uninstall.log w
@@ -527,6 +522,7 @@ Section -FinalizeInstallation
   FileClose $9
   ; Not needed any more
   Delete $INSTDIR\Uninstall.dat
+!endif
 SectionEnd
 
 ; Last the Descriptions
@@ -562,6 +558,33 @@ SectionEnd
 !macroend
 
 Function .onInit
+  !insertmacro MUI_LANGDLL_DISPLAY
+
+  !macro LanguageAutoSelect SecName LocaleID
+    ${If} $LANGUAGE = ${LocaleID}
+      SectionGetFlags ${Sec${SecName}} $0
+      IntOp $0 $0 | ${SF_SELECTED}
+      SectionSetFlags ${Sec${SecName}} $0
+    ${EndIf}
+  !macroend
+
+  ;!insertmacro LanguageAutoSelect English 1033
+  !insertmacro LanguageAutoSelect Breton 1150
+  !insertmacro LanguageAutoSelect Catalan 1027
+  !insertmacro LanguageAutoSelect Czech 1029
+  !insertmacro LanguageAutoSelect Finnish 1035
+  !insertmacro LanguageAutoSelect French 1036
+  !insertmacro LanguageAutoSelect Gallegan 1110 ; Galician, but section is called Gallegan
+  !insertmacro LanguageAutoSelect German 1031
+  !insertmacro LanguageAutoSelect Italian 1040
+  !insertmacro LanguageAutoSelect Japanese 1041
+  !insertmacro LanguageAutoSelect Polish 1045
+  !insertmacro LanguageAutoSelect Russian 1049
+  !insertmacro LanguageAutoSelect Slovak 1051
+  !insertmacro LanguageAutoSelect Slovenian 1060
+  !insertmacro LanguageAutoSelect Spanish 1034
+  !insertmacro LanguageAutoSelect ChineseTaiwan 1028 ; TradChinese, but section is called ChineseTaiwan
+
   ${GetParameters} $CMDARGS
   ;prepare log always within .onInit function
   !insertmacro UNINSTALL.LOG_PREPARE_INSTALL
@@ -588,8 +611,8 @@ Function .onInit
   ClearErrors
   UserInfo::GetName
   ${If} ${Errors}
-    # This one means you don't need to care about admin or
-    # not admin because Windows 9x doesn't either
+    ; This one means you don't need to care about admin or
+    ; not admin because Windows 9x doesn't either
     ${IfCmd} MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "$(lng_NOT_SUPPORTED)$(lng_OK_CANCEL_DESC)" /SD IDOK IDCANCEL ${||} Quit ${|}
   ${Else}
     Pop $User
@@ -621,10 +644,7 @@ Function .onInit
     ${EndIf}
     ${If} $R0 != ""
     ${AndIf} ${Cmd} ${|} MessageBox MB_YESNO|MB_ICONEXCLAMATION $(lng_WANT_UNINSTALL_BEFORE) /SD IDNO IDYES ${|}
-      ;Run the uninstaller
-      DetailPrint "Execute $R0 in $INSTDIR"
-      ClearErrors
-      ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file
+      ExecWait $R0 ;Was '$R0 _?=$INSTDIR' but we do NOT want it leaving the uninstaller behind.
     ${EndIf}
 
   ; proccess command line parameter
@@ -732,12 +752,8 @@ Function un.CustomPageUninstall
   !insertmacro MUI_HEADER_TEXT "$(lng_UInstOpt)" "$(lng_UInstOpt1)"
   !insertmacro MUI_INSTALLOPTIONS_WRITE "inkscape.nsi.uninstall" "Field 1" "Text" "$APPDATA\Inkscape\"
   !insertmacro MUI_INSTALLOPTIONS_WRITE "inkscape.nsi.uninstall" "Field 2" "Text" "$(lng_PurgePrefs)"
-
   !insertmacro MUI_INSTALLOPTIONS_DISPLAY "inkscape.nsi.uninstall"
   !insertmacro MUI_INSTALLOPTIONS_READ $MultiUser "inkscape.nsi.uninstall" "Field 2" "State"
-  DetailPrint "keepfiles = $MultiUser"
-  ;MessageBox MB_OK "adminmode = $MultiUser MultiUserOS = $askMultiUser"
-
 FunctionEnd
 
 Function un.onInit
@@ -782,10 +798,11 @@ Function un.onInit
 FunctionEnd
 
 Section Uninstall
+!ifndef DUMMYINSTALL
   ; remove personal settings
   Delete "$APPDATA\Inkscape\extension-errors.log"
   ${If} $MultiUser = 0
-    DetailPrint "purge personal settings in $APPDATA\Inkscape"
+    DetailPrint "Purging personal settings in $APPDATA\Inkscape"
     ;RMDir /r "$APPDATA\Inkscape"
     !insertmacro delprefs
   ${EndIf}
@@ -794,48 +811,33 @@ Section Uninstall
   StrCpy $3 "svg"
   ${For} $2 0 1
     ${IfThen} $2 = 1 ${|} StrCpy $3 $3z ${|}
-    DetailPrint "removing file associations for $3 editor"
+    DetailPrint "Removing file associations for $3 editor"
     ClearErrors
     ReadRegStr $0 HKCR ".$3" ""
-    DetailPrint ".$3 associated as $0"
     ${IfNot} ${Errors}
       ReadRegStr $1 HKCR "$0\shell\edit\command" ""
-      ${IfNotThen} ${Errors} ${|} DetailPrint "$3 editor is $1" ${|}
-      ${If} $1 == '"$INSTDIR\Inkscape.exe" "%1"'
-        DetailPrint "removing default .$3 editor"
+      ${If} $1 == `"$INSTDIR\Inkscape.exe" "%1"`
         DeleteRegKey HKCR "$0\shell\edit\command"
       ${EndIf}
 
       ClearErrors
       ReadRegStr $1 HKCR "$0\shell\open\command" ""
-      ${IfNotThen} ${Errors} ${|} DetailPrint "$3 viewer is $1" ${|}
-      ${If} $1 == '"$INSTDIR\Inkscape.exe" "%1"'
-        DetailPrint "removing default .$3 viewer"
+      ${If} $1 == `"$INSTDIR\Inkscape.exe" "%1"`
         DeleteRegKey HKCR "$0\shell\open\command"
       ${EndIf}
 
-      DetailPrint "removing default .$3 context menu"
       DeleteRegKey HKCR "$0\shell\${PRODUCT_NAME}"
       DeleteRegKey /ifempty HKCR "$0\shell\edit"
       DeleteRegKey /ifempty HKCR "$0\shell\open"
       DeleteRegKey /ifempty HKCR "$0\shell"
       DeleteRegKey /ifempty HKCR "$0"
-
-      ClearErrors
-      ReadRegStr $1 HKCR $0 ""
-      ${If} ${Errors} ; Formerly ${If} $1 == ""
-        DetailPrint "removing filetype .$3 $0"
-        DeleteRegKey HKCR ".$3"
-      ${EndIf}
+      DeleteRegKey /ifempty HKCR ".$3"
     ${EndIf}
   ${Next}
 
   SetShellVarContext all
-  DetailPrint "removing product regkey"
   DeleteRegKey SHCTX "${PRODUCT_DIR_REGKEY}"
-  DetailPrint "removing uninstall info"
   DeleteRegKey SHCTX "${PRODUCT_UNINST_KEY}"
-  DetailPrint "removing shortcuts"
   Delete "$DESKTOP\Inkscape.lnk"
   Delete "$QUICKLAUNCH\Inkscape.lnk"
   Delete "$SMPROGRAMS\Inkscape.lnk"
@@ -845,11 +847,8 @@ Section Uninstall
   RMDir  "$SMPROGRAMS\Inkscape"
 
   SetShellVarContext current
-  DetailPrint "removing product regkey"
   DeleteRegKey SHCTX "${PRODUCT_DIR_REGKEY}"
-  DetailPrint "removing uninstall info"
   DeleteRegKey SHCTX "${PRODUCT_UNINST_KEY}"
-  DetailPrint "removing shortcuts"
   Delete "$DESKTOP\Inkscape.lnk"
   Delete "$QUICKLAUNCH\Inkscape.lnk"
   Delete "$SMPROGRAMS\Inkscape.lnk"
@@ -858,8 +857,6 @@ Section Uninstall
   Delete "$SMPROGRAMS\Inkscape\Inkscape.lnk"
   RMDir  "$SMPROGRAMS\Inkscape"
 
-  DetailPrint "removing uninstall info"
-
   InitPluginsDir
   SetPluginUnload manual
 
@@ -876,7 +873,7 @@ Section Uninstall
       StrLen $2 $1
       ${IfThen} $2 <= 35 ${|} ${Continue} ${|}
       StrCpy $3 $1 32
-      StrCpy $filename $1 $2-36 34 #remove trailing CR/LF
+      StrCpy $filename $1 $2-36 34 ;remove trailing CR/LF
       StrCpy $filename $filename -2
       ; $3 = MD5 when installed, then deletion choice
       ; $filename = file
@@ -900,7 +897,7 @@ Section Uninstall
           ${EndIf}
         ${EndIf}
 
-        ${If} $3 = 1   ; yes
+        ${If}   $3 = 1 ; yes
         ${OrIf} $3 = 2 ; always
           ; Remove File
           ClearErrors
@@ -914,7 +911,7 @@ Section Uninstall
             ${IfThen} ${Errors} ${|} ${ExitDo} ${|}
           ${Loop}
         ${EndIf}
-      ${EndIf} ; complaining there's no opening if
+      ${EndIf}
     ${Loop}
   ${EndIf}
   FileClose $0
@@ -927,8 +924,5 @@ Section Uninstall
   RMDir "$INSTDIR\plugins"
   RMDir $INSTDIR
   SetAutoClose false
-SectionEnd
-!else
-Section "This is a dummy section, which doesn't do anything" null
-SectionEnd
 !endif
+SectionEnd