[LyX/master] Changed main registry entry (LyX\Version now). Added "latestVersion" value.
Richard Kimberly Heck
rikiheck at lyx.org
Sat Apr 4 23:02:31 UTC 2020
commit bd660c459fb79be8100981468bf94936d2c55d3a
Author: Richard Kimberly Heck <rikiheck at lyx.org>
Date: Sat Apr 4 19:18:23 2020 -0400
Changed main registry entry (LyX\Version now).
Added "latestVersion" value.
Patch from Eugene.
---
.../packaging/installer/include/declarations.nsh | 3 ++-
.../Win32/packaging/installer/include/init.nsh | 4 ++--
.../Win32/packaging/installer/setup/configure.nsh | 13 ++++++++-----
.../Win32/packaging/installer/setup/uninstall.nsh | 16 ++++++++++++++++
4 files changed, 28 insertions(+), 8 deletions(-)
diff --git a/development/Win32/packaging/installer/include/declarations.nsh b/development/Win32/packaging/installer/include/declarations.nsh
index 9a71f54..ba9fca8 100644
--- a/development/Win32/packaging/installer/include/declarations.nsh
+++ b/development/Win32/packaging/installer/include/declarations.nsh
@@ -59,7 +59,8 @@ Configuration of LyX installer
!define BIN_LYX "${APP_NAME}.exe"
!define APP_RUN "bin\${BIN_LYX}"
-!define APP_REGKEY "Software\${APP_NAME}${APP_SERIES_KEY}" # like "LyX220"
+!define APP_REGFOLDER "Software\${APP_NAME}"
+!define APP_REGKEY "${APP_REGFOLDER}\${APP_SERIES_KEY}" # like "LyX\220"
!define APP_REGKEY_SETUP "${APP_REGKEY}\Setup"
!define APP_REGKEY_SETTINGS "${APP_REGKEY}\Settings"
diff --git a/development/Win32/packaging/installer/include/init.nsh b/development/Win32/packaging/installer/include/init.nsh
index 4902d26..76bacd5 100644
--- a/development/Win32/packaging/installer/include/init.nsh
+++ b/development/Win32/packaging/installer/include/init.nsh
@@ -13,8 +13,8 @@ Var LyXLangName
# COMPONENT can be LaTeX, ImageMagick and Ghostscript
!macro EXTERNAL_INIT COMPONENT
- # APP_REGKEY_SETUP = "Software\${APP_NAME}${APP_SERIES_KEY}\Setup"
- # where ${APP_NAME}${APP_SERIES_KEY} is something like LyX22
+ # APP_REGKEY_SETUP = "Software\${APP_NAME}\${APP_SERIES_KEY}\Setup"
+ # where ${APP_NAME}\${APP_SERIES_KEY} is something like LyX\220
ReadRegStr $ComponentPath SHELL_CONTEXT "${APP_REGKEY_SETUP}" "${COMPONENT} Path"
# BIN_LATEX etc are defined in settings.nsh
diff --git a/development/Win32/packaging/installer/setup/configure.nsh b/development/Win32/packaging/installer/setup/configure.nsh
index c7d93e8..ae28336 100644
--- a/development/Win32/packaging/installer/setup/configure.nsh
+++ b/development/Win32/packaging/installer/setup/configure.nsh
@@ -16,6 +16,10 @@ Var PathPrefix
Section -InstallData
# Registry information
+ ReadRegStr $0 SHCTX ${APP_REGFOLDER} "latestVersion"
+ ${If} $0 < ${APP_SERIES_KEY}
+ WriteRegStr SHCTX ${APP_REGFOLDER} "latestVersion" ${APP_SERIES_KEY}
+ ${EndIf}
WriteRegStr SHCTX ${APP_REGKEY} "" $INSTDIR
WriteRegStr SHCTX ${APP_REGKEY} "Version" "${APP_VERSION_NUMBER}"
WriteRegStr SHCTX ${APP_REGKEY_SETUP} "LaTeX Path" $PathLaTeX
@@ -54,16 +58,15 @@ Section -InstallData
WriteRegDWORD SHCTX ${APP_UNINST_KEY} "NoModify" 0x00000001
WriteRegDWORD SHCTX ${APP_UNINST_KEY} "NoRepair" 0x00000001
WriteRegStr SHCTX ${APP_UNINST_KEY} "StartMenu" "$SMPROGRAMS\$StartmenuFolder"
-
# if we install over an older existing version, remove the old uninstaller information
- ${if} $OldVersionNumber < ${APP_SERIES_KEY}
+ ${if} $OldVersionNumber != ""
+ ${AndIf} $OldVersionNumber < ${APP_SERIES_KEY}
DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_NAME}$OldVersionNumber"
- DeleteRegKey SHCTX "SOFTWARE\${APP_NAME}$OldVersionNumber"
+ DeleteRegKey SHCTX "SOFTWARE\${APP_NAME}\$OldVersionNumber"
# also delete in the case of an emergency release
DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_NAME}$OldVersionNumber1"
- DeleteRegKey SHCTX "SOFTWARE\${APP_NAME}$OldVersionNumber1"
+ DeleteRegKey SHCTX "SOFTWARE\${APP_NAME}\$OldVersionNumber1"
${endif}
-
SectionEnd
#--------------------------------
diff --git a/development/Win32/packaging/installer/setup/uninstall.nsh b/development/Win32/packaging/installer/setup/uninstall.nsh
index fb7db19..46419a8 100644
--- a/development/Win32/packaging/installer/setup/uninstall.nsh
+++ b/development/Win32/packaging/installer/setup/uninstall.nsh
@@ -69,12 +69,28 @@ Section "un.LyX" un.SecUnProgramFiles
RMDir /r "$INSTDIR"
# Registry keys and values
+ DeleteRegValue SHCTX "subkey" "key_name"
DeleteRegKey SHCTX "${APP_REGKEY_SETUP}"
DeleteRegKey SHCTX "${APP_REGKEY}"
DeleteRegKey SHCTX "${APP_UNINST_KEY}"
DeleteRegKey HKCR "Applications\${BIN_LYX}"
DeleteRegValue HKCR "${APP_NAME}.Document\Shell\open\command" ""
DeleteRegValue HKCR "${APP_NAME}.Document\DefaultIcon" ""
+ ReadRegStr $0 SHCTX ${APP_REGFOLDER} "latestVersion"
+ ${If} $0 == ${APP_SERIES_KEY}
+ DeleteRegValue SHCTX ${APP_REGFOLDER} "latestVersion"
+ StrCpy $0 0
+ StrCpy $R0 ""
+ ${Do}
+ StrCpy $R1 $R0
+ EnumRegKey $R0 SHCTX ${APP_REGFOLDER} $0
+ IntOp $0 $0 + 1
+ ${LoopUntil} $R0 == ""
+ ${If} $R1 != ""
+ WriteRegStr SHCTX ${APP_REGFOLDER} "latestVersion" $R1
+ ${EndIf}
+ ${EndIf}
+ DeleteRegKey /ifempty SHCTX ${APP_REGFOLDER}
# File associations
ReadRegStr $FileAssociation SHELL_CONTEXT "Software\Classes\${APP_EXT}" ""
More information about the lyx-cvs
mailing list