From: Richard Kimberly Heck Date: Sat, 4 Apr 2020 23:18:23 +0000 (-0400) Subject: Changed main registry entry (LyX\Version now). X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=ac0f91240524bb7f3b25de1c7ae938904ef2ce05;p=features.git Changed main registry entry (LyX\Version now). Added "latestVersion" value. Patch from Eugene. --- diff --git a/development/Win32/packaging/installer/include/declarations.nsh b/development/Win32/packaging/installer/include/declarations.nsh index 9a71f547c4..ba9fca809f 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 4902d26785..76bacd51c4 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 c7d93e8097..ae283362e9 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 fb7db193a7..46419a86ba 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}" ""