-; Aspell dictionaries
+# Aspell dictionaries
Function DownloadDictionary
FileOpen $R5 "$INSTDIR\Resources\AspellDictionaryNames.txt" r
${Do}
- FileRead $R5 $String ; $String is now the dictionary name
- StrCpy $R3 $String 2 ; $R3 is now the dictionary language code
+ FileRead $R5 $String # $String is now the dictionary name
+ StrCpy $R3 $String 2 # $R3 is now the dictionary language code
${if} $R3 == "tr"
- ${andif} $DictCode != "tr" ; if nothing was found (the last line in the file starts with "tr")
+ ${andif} $DictCode != "tr" # if nothing was found (the last line in the file starts with "tr")
FileClose $R5
StrCpy $String ""
StrCpy $AspellInstallYes "$RunNumber$AspellInstallYes"
${LoopUntil} $DictCode == $R3
FileClose $R5
- StrCpy $String $String -2 ; delete the linebreak characters at the end
+ StrCpy $String $String -2 # delete the linebreak characters at the end
- ; Download aspell dictionaries,
- ; if first download repository is not available try the other ones listed in "AspellRepositories.txt"
+ # Download aspell dictionaries,
+ # if first download repository is not available try the other ones listed in "AspellRepositories.txt"
FileOpen $R5 "$INSTDIR\Resources\AspellRepositories.txt" r
${For} $4 1 4
- FileRead $R5 $Search ; $Search is now the AspellLocation
- StrCpy $Search $Search -2 ; delete the linebreak characters at the end
+ FileRead $R5 $Search # $Search is now the AspellLocation
+ StrCpy $Search $Search -2 # delete the linebreak characters at the end
Push $R0
InetLoad::load /TIMEOUT=5000 "$Search/aspell6-$String.exe" "$INSTDIR\aspell6-$String.exe" /END
Pop $R0
- ; test if the downloaded file is really the expected one, because if the file didn't exist on the download server,
- ; berlios.de downloads a text file with the name of the non-existing file that contains the line "File doesn't exist"
+ # test if the downloaded file is really the expected one, because if the file didn't exist on the download server,
+ # berlios.de downloads a text file with the name of the non-existing file that contains the line "File doesn't exist"
FileOpen $R4 "$INSTDIR\aspell6-$String.exe" r
FileRead $R4 $Search
FileClose $R4
- StrCpy $Search $Search -1 ; delete the unix linebreak character at the end
+ StrCpy $Search $Search -1 # delete the unix linebreak character at the end
${if} $Search == "File doesn't exist"
StrCpy $R0 ""
${endif}
${Next}
FileClose $R5
- ; Download failed
+ # Download failed
${if} $R0 != "OK"
MessageBox MB_OK|MB_ICONEXCLAMATION "$(AspellDownloadFailed) $R0"
StrCpy $AspellInstallYes "$RunNumber$AspellInstallYes"
Goto abortinstall
${endif}
- ; Download successful
+ # Download successful
ExecWait '"$INSTDIR\aspell6-$String.exe" /NoDirChange /AutoClose'
${if} $AspellBaseReg == "HKLM"
ReadRegStr $R2 HKLM "Software\Aspell\Dictionaries" $DictCode
FunctionEnd
-;--------------------------------
+#--------------------------------
Function InstallAspellDictionary
StrCpy $AspellInstallYes ""
- ; install the english dictionary if not already installed
+ # install the english dictionary if not already installed
StrCpy $DictCode "en"
StrCpy $RunNumber "1"
- ${if} $AspellBaseReg == "HKLM" ; $AspellBaseReg is either "HKLM" or if Aspell is already installed only for the current user "HKCU"
+ ${if} $AspellBaseReg == "HKLM" # $AspellBaseReg is either "HKLM" or if Aspell is already installed only for the current user "HKCU"
ReadRegStr $R2 HKLM "Software\Aspell\Dictionaries" $DictCode
${else}
ReadRegStr $R2 HKCU "Software\Aspell\Dictionaries" $DictCode
StrCpy $AspellInstallYes "$RunNumber$AspellInstallYes"
${endif}
- ; install the dictionary corresponding to the system and the chosen menu language
- ; check if the system language and the chosen menu language are the same, if not install
- ; both dictionaries
+ # install the dictionary corresponding to the system and the chosen menu language
+ # check if the system language and the chosen menu language are the same, if not install
+ # both dictionaries
StrCpy $DictCode $LangCode 2
- StrCpy $0 $DictCode ; $0 is now the language code of the chosen LyX menu language
+ StrCpy $0 $DictCode # $0 is now the language code of the chosen LyX menu language
StrCpy $RunNumber "2"
${if} $AspellInstallYes == "1"
${andif} $DictCode == "en"
${else}
StrCpy $AspellInstallYes "$RunNumber$AspellInstallYes"
${endif}
- ${endif} ; endif $AspellInstallYes == "1"
+ ${endif} # endif $AspellInstallYes == "1"
${if} $LangCodeSys != $DictCode
StrCpy $RunNumber "3"
${if} $LangCodeSys == "en"
${else}
StrCpy $AspellInstallYes "$RunNumber$AspellInstallYes"
${endif}
- ${endif} ; endif $LangCodeSys == "en"
- ${else} ; else ${if} $LangCodeSys != $DictCode
+ ${endif} # endif $LangCodeSys == "en"
+ ${else} # else ${if} $LangCodeSys != $DictCode
StrCpy $AspellInstallYes "4$AspellInstallYes"
${endif}
- ; check the registry to divide between nothing installed or all already installed
+ # check the registry to divide between nothing installed or all already installed
${if} $AspellInstallYes == "321"
${orif} $AspellInstallYes == "421"
${if} $AspellBaseReg == "HKLM"
Delete "$INSTDIR\Resources\AspellDictionaryNames.txt"
Delete "$INSTDIR\Resources\AspellRepositories.txt"
- ; show message about Aspell dictionaries
- ; the code rule to display the correct message:
- ; - when the englisch dictionary is already installed or couldn't be installed -> set a "1"
- ; - when the dictionary of the chosen LyX menu language is already installed or couldn't be installed -> set a "2"
- ; - when the dictionary of the Windows system language is already installed or couldn't be installed -> set a "3"
- ; - when the dictionary of the chosen LyX menu language is equal to the dictionary of the Windows system language -> set a "4"
+ # show message about Aspell dictionaries
+ # the code rule to display the correct message:
+ # - when the englisch dictionary is already installed or couldn't be installed -> set a "1"
+ # - when the dictionary of the chosen LyX menu language is already installed or couldn't be installed -> set a "2"
+ # - when the dictionary of the Windows system language is already installed or couldn't be installed -> set a "3"
+ # - when the dictionary of the chosen LyX menu language is equal to the dictionary of the Windows system language -> set a "4"
${if} $AspellInstallYes == "32"
${orif} $AspellInstallYes == "42"
MessageBox MB_ICONINFORMATION|MB_DEFBUTTON2|MB_YESNO "$(AspellPartStart)$(AspellPart1)$(AspellPart4)" IDYES DownloadNow IDNO DownloadLater
FunctionEnd
-;---------------------------
+#---------------------------
Function un.UninstAspell
ReadRegStr $1 SHCTX "Software\Aspell" "Base Path"
- ; delete Aspells' install folder
+ # delete Aspells' install folder
RMDir /r $1
- ; unregister Aspell and its dictionaries
+ # unregister Aspell and its dictionaries
DeleteRegKey SHCTX "Software\Aspell"
DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell"
DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-af"
Function ConfigureLyX
- ; configures LyX
+ # configures LyX
- ; create the PathPrefix
+ # create the PathPrefix
StrCpy $PathPrefix "$INSTDIR\bin"
${if} $PythonPath != ""
StrCpy $PathPrefix "$PathPrefix;$PythonPath"
StrCpy $PathPrefix "$PathPrefix;$ImageEditorPath"
${endif}
- ; Set a path prefix in lyxrc.dist
+ # Set a path prefix in lyxrc.dist
ClearErrors
${if} "$PathPrefix" != ""
Delete "$INSTDIR\Resources\lyxrc.dist"
MessageBox MB_OK|MB_ICONEXCLAMATION "$(ModifyingConfigureFailed)"
${endif}
- ; Create a batch file to start LyX with the environment variables set
+ # Create a batch file to start LyX with the environment variables set
ClearErrors
Delete "${PRODUCT_BAT}"
FileOpen $R1 "${PRODUCT_BAT}" w
IfErrors 0 +2
MessageBox MB_OK|MB_ICONEXCLAMATION "$(CreateCmdFilesFailed)"
- ; set the preferences file
- ; (having one preferences file that is modified to fit the needs is possible but not easy to maintain
- ; therefore simply delete the files that shouldn't be used)
- ; if not Acrobat or Adobe Reader is used
- ${if} $Acrobat == "None" ; clear the entries in the preferences file that define PDFViewWin7 or 8 as viewer
+ # set the preferences file
+ # (having one preferences file that is modified to fit the needs is possible but not easy to maintain
+ # therefore simply delete the files that shouldn't be used)
+ # if not Acrobat or Adobe Reader is used
+ ${if} $Acrobat == "None" # clear the entries in the preferences file that define PDFViewWin7 or 8 as viewer
Rename "$INSTDIR\Resources\preferencesGSview" "$INSTDIR\Resources\preferences"
Delete "$INSTDIR\Resources\preferences7"
Delete "$INSTDIR\Resources\preferences8"
${endif}
- ; if Acrobat or Adobe Reader is used
- ${if} $Acrobat == "7" ; used for all Acrobat (Adobe Reader) versions <= 7
+ # if Acrobat or Adobe Reader is used
+ ${if} $Acrobat == "7" # used for all Acrobat (Adobe Reader) versions <= 7
Rename "$INSTDIR\Resources\preferences7" "$INSTDIR\Resources\preferences"
Delete "$INSTDIR\Resources\preferences8"
Delete "$INSTDIR\Resources\preferencesGSview"
Delete "$INSTDIR\Resources\preferencesGSview"
${endif}
- ; register LyX
+ # register LyX
${if} $CreateFileAssociations == "true"
WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "${PRODUCT_EXE}"
${endif}
WriteRegDWORD SHCTX "${PRODUCT_UNINST_KEY}" "NoModify" 0x00000001
WriteRegDWORD SHCTX "${PRODUCT_UNINST_KEY}" "NoRepair" 0x00000001
- ; create start menu entry
+ # create start menu entry
SetOutPath "$INSTDIR\bin"
CreateDirectory "$SMPROGRAMS\$StartmenuFolder"
CreateShortCut "$SMPROGRAMS\$StartmenuFolder\${PRODUCT_NAME}.lnk" "${PRODUCT_BAT}" "" "${PRODUCT_EXE}"
SetOutPath "$INSTDIR"
CreateShortCut "$SMPROGRAMS\$StartmenuFolder\Uninstall.lnk" "${PRODUCT_UNINSTALL_EXE}"
- ; create desktop icon
+ # create desktop icon
${if} $CreateDesktopIcon == "true"
SetOutPath "$INSTDIR\bin"
CreateShortCut "$DESKTOP\LyX ${PRODUCT_VERSION}.lnk" "${PRODUCT_BAT}" "" "${PRODUCT_EXE}"
${endif}
- ; register the extension .lyx
+ # register the extension .lyx
${if} $CreateFileAssociations == "true"
- ; write informations about file type
+ # write informations about file type
WriteRegStr SHCTX "Software\Classes\${PRODUCT_REGNAME}" "" "${PRODUCT_NAME} Document"
WriteRegStr SHCTX "Software\Classes\${PRODUCT_REGNAME}\DefaultIcon" "" "${PRODUCT_EXE}"
WriteRegStr SHCTX "Software\Classes\${PRODUCT_REGNAME}\Shell\open\command" "" '"${LAUNCHER_EXE}" "%1"'
- ; write informations about file extensions
+ # write informations about file extensions
WriteRegStr SHCTX "Software\Classes\${PRODUCT_EXT}" "" "${PRODUCT_REGNAME}"
WriteRegStr SHCTX "Software\Classes\${PRODUCT_EXT}" "Content Type" "${PRODUCT_MIME_TYPE}"
- ; refresh shell
+ # refresh shell
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) (${SHCNE_ASSOCCHANGED}, ${SHCNF_IDLIST}, 0, 0)'
${endif}
- ; create the LyX Application Data folder for all users
- ; this folder is automatically created by LyX when it is first started but we want to start LyX with a specific session file,
- ; so we create this folder before LyX starts and copy there the session file
- Call CreateAppPathSub ; function from LyXUtils.nsh
+ # create the LyX Application Data folder for all users
+ # this folder is automatically created by LyX when it is first started but we want to start LyX with a specific session file,
+ # so we create this folder before LyX starts and copy there the session file
+ Call CreateAppPathSub # function from LyXUtils.nsh
FunctionEnd
Function DeleteFiles
- ; list with deleted files
+ # list with deleted files
Delete "$INSTDIR\Resources\examples\decimal.lyx"
Delete "$INSTDIR\Resources\examples\g-brief2.lyx"
Delete "$INSTDIR\Resources\examples\de\decimal.lyx"
-; this file contains the main installer section
+# this file contains the main installer section
-; The '-' makes the section invisible.
+# The '-' makes the section invisible.
Section "-Installation actions" SecInstallation
- ; dummy actions to avoid NSIS warnings
+ # dummy actions to avoid NSIS warnings
StrCpy $FileName ""
StrCpy $NewString ""
StrCpy $OldString ""
- ; extract all files
+ # extract all files
SetOutPath "$INSTDIR"
File /r "${PRODUCT_SOURCEDIR}\bin"
File /r "${PRODUCT_SOURCEDIR}\etc"
File /r "${PRODUCT_SOURCEDIR}\Resources"
File /r "${PRODUCT_SOURCEDIR}\external"
- ; install MiKTeX if not already installed
+ # install MiKTeX if not already installed
Call MiKTeX
- ; install Ghostscript if it not installed
+ # install Ghostscript if it not installed
Call Ghostscript
- ; install ImageMagick if it not installed
+ # install ImageMagick if it not installed
Call ImageMagick
- ; install ImageMAspellagick if it not installed
+ # install ImageMAspellagick if it not installed
Call Aspell
- ; install Aiksaurus if it not installed
+ # install Aiksaurus if it not installed
Call Aiksaurus
- ; install GSview if it not installed and the user selected it
+ # install GSview if it not installed and the user selected it
Call PostScript
- ; install JabRef if it not installed and the user selected it
+ # install JabRef if it not installed and the user selected it
Call BibTeX
- ; install the LaTeX class files that are delivered with LyX
- ; and enable MiKTeX's automatic package installation
- Call ConfigureMiKTeX ; Function from LaTeX.nsh
+ # install the LaTeX class files that are delivered with LyX
+ # and enable MiKTeX's automatic package installation
+ Call ConfigureMiKTeX # Function from LaTeX.nsh
- ; install Aspell dictionaries
+ # install Aspell dictionaries
${if} $LangCode == "nb_NO"
- StrCpy $LangCode "no_NO" ; we only have a norwegian dictionary available
+ StrCpy $LangCode "no_NO" # we only have a norwegian dictionary available
${endif}
- Call InstallAspellDictionary ; function from Aspell.nsh
+ Call InstallAspellDictionary # function from Aspell.nsh
- ; configure LyX
- Call ConfigureLyX ; Function from ConfigLyX.nsh
+ # configure LyX
+ Call ConfigureLyX # Function from ConfigLyX.nsh
- ; delete unnecessary files
+ # delete unnecessary files
${if} $DelPythonFiles == "True"
Delete $INSTDIR\bin\python.exe
Delete $INSTDIR\bin\python25.dll
${endif}
RMDir /r $INSTDIR\external
- ; create Uninstaller
+ # create Uninstaller
WriteUninstaller "${PRODUCT_UNINSTALL_EXE}"
- ; run LyX's configure script
- ; create a bat-file to start configure in a console window so that the user see the progress
- ; of the configuration and to have a signal when the configuration is ready to start LyX
- ; this is important when LyX is installed together with MiKTeX or when LyX is installed for the first
- ; time on a computer, because the installation of missing LaTeX-files required by LyX could last minutes
- ; a batch file is needed because simply calling ExecWait '"$PythonPath\python.exe" "$INSTDIR\Resources\configure.py"'
- ; creates the config files in $PythonPath
+ # run LyX's configure script
+ # create a bat-file to start configure in a console window so that the user see the progress
+ # of the configuration and to have a signal when the configuration is ready to start LyX
+ # this is important when LyX is installed together with MiKTeX or when LyX is installed for the first
+ # time on a computer, because the installation of missing LaTeX-files required by LyX could last minutes
+ # a batch file is needed because simply calling ExecWait '"$PythonPath\python.exe" "$INSTDIR\Resources\configure.py"'
+ # creates the config files in $PythonPath
${if} $PythonPath == ""
StrCpy $PythonPath "$INSTDIR\bin"
${endif}
- StrCpy $1 $INSTDIR 2 ; get drive letter
+ StrCpy $1 $INSTDIR 2 # get drive letter
FileOpen $R1 "$INSTDIR\Resources\configLyX.bat" w
FileWrite $R1 '$1$\r$\n\
cd $INSTDIR\Resources\$\r$\n\
ExecWait '"$INSTDIR\Resources\configLyX.bat"'
Delete "$INSTDIR\Resources\configLyX.bat"
- ; ask to update MiKTeX
+ # ask to update MiKTeX
${if} $MiKTeXInstalled == "yes"
MessageBox MB_YESNO|MB_ICONINFORMATION "$(MiKTeXInfo)" IDYES UpdateNow IDNO UpdateLater
UpdateNow:
- StrCpy $0 $LaTeXPath -4 ; remove "\bin"
- ExecWait '"$LaTeXPath\copystart.exe" "$0\config\update.dat"' ; run MiKTeX's update wizard
+ StrCpy $0 $LaTeXPath -4 # remove "\bin"
+ ExecWait '"$LaTeXPath\copystart.exe" "$0\config\update.dat"' # run MiKTeX's update wizard
UpdateLater:
${endif}
- ; save MiKTeX's install path to be able to remove LyX's LaTeX-files in the uninstaller
+ # save MiKTeX's install path to be able to remove LyX's LaTeX-files in the uninstaller
FileOpen $R1 "$INSTDIR\Resources\uninstallPaths.dat" w
FileWrite $R1 '$LaTeXPath'
FileClose $R1
- ; prepare variables for uninstaller
+ # prepare variables for uninstaller
StrCpy $MiKTeXVersionVar ${MiKTeXDeliveredVersion}
StrCpy $JabRefVersionVar ${JabRefVersion}
SectionEnd
-; -------------------------------------------
+# -------------------------------------------
Function MiKTeX
-; install MiKTeX if not already installed
+# install MiKTeX if not already installed
${if} $LatexPath == ""
- ; launch MiKTeX's installer
+ # launch MiKTeX's installer
MessageBox MB_OK|MB_ICONINFORMATION "$(LatexInfo)"
ExecWait ${MiKTeXInstall}
- ; test if MiKTeX is installed
+ # test if MiKTeX is installed
ReadRegStr $String HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "Path"
StrCpy $Search "miktex"
Call LaTeXCheck
Call LaTeXCheck
${endif}
${if} $LatexPath != ""
- ; set package repository (MiKTeX's primary package repository)
- WriteRegStr HKLM "SOFTWARE\MiKTeX.org\MiKTeX" "OnlyWithLyX" "Yes${PRODUCT_VERSION_SHORT}" ; special entry to tell the uninstaller that it was installed with LyX
+ # set package repository (MiKTeX's primary package repository)
+ WriteRegStr HKLM "SOFTWARE\MiKTeX.org\MiKTeX" "OnlyWithLyX" "Yes${PRODUCT_VERSION_SHORT}" # special entry to tell the uninstaller that it was installed with LyX
StrCpy $MiKTeXInstalled "yes"
${if} $MiKTeXUser != "HKCU"
StrCpy $MiKTeXPath "$LatexPath" -11
- ;MessageBox MB_OK|MB_ICONINFORMATION "$(MiKTeXPathInfo)" ; info that MiKTeX's installation folder must have write permissions for all users to work properly
+ #MessageBox MB_OK|MB_ICONINFORMATION "$(MiKTeXPathInfo)" # info that MiKTeX's installation folder must have write permissions for all users to work properly
${endif}
${else}
MessageBox MB_OK|MB_ICONSTOP "$(LatexError1)"
- SetOutPath $TEMP ; to be able to delete the $INSTDIR
+ SetOutPath $TEMP # to be able to delete the $INSTDIR
RMDir /r $INSTDIR
Abort
- ${endif} ; endif $LatexPath != ""
+ ${endif} # endif $LatexPath != ""
${endif}
FunctionEnd
-; -------------------------------------------
+# -------------------------------------------
Function Ghostscript
- ; if GhostScript is not installed
+ # if GhostScript is not installed
${if} $GhostscriptPath == ""
- ; register Ghostscript
+ # register Ghostscript
WriteRegStr HKLM "SOFTWARE\GPL Ghostscript\${GhostscriptVersion}" "GS_DLL" "${GhostscriptDir}\bin\gsdll32.dll"
WriteRegStr HKLM "SOFTWARE\GPL Ghostscript\${GhostscriptVersion}" "GS_LIB" "${GhostscriptDir}\lib;${GhostscriptDir}\fonts;${GhostscriptDir}\Resource"
- WriteRegStr HKLM "SOFTWARE\GPL Ghostscript" "OnlyWithLyX" "Yes${PRODUCT_VERSION_SHORT}" ; special entry to tell the uninstaller that it was installed with LyX
+ WriteRegStr HKLM "SOFTWARE\GPL Ghostscript" "OnlyWithLyX" "Yes${PRODUCT_VERSION_SHORT}" # special entry to tell the uninstaller that it was installed with LyX
StrCpy $GhostscriptPath "${GhostscriptDir}\bin"
${else}
- ; delete unnecessary files
+ # delete unnecessary files
RMDir /r ${GhostscriptDir}
${endif}
FunctionEnd
-; -------------------------------------------
+# -------------------------------------------
Function ImageMagick
- ; if ImageMagick is not installed
+ # if ImageMagick is not installed
${if} $ImageMagickPath == ""
- ; register ImageMagick
+ # register ImageMagick
WriteRegStr HKLM "SOFTWARE\Classes\Applications" "AutoRun" "${ImageMagickDir}\convert.exe $$"
WriteRegStr HKLM "SOFTWARE\ImageMagick\${ImageMagickVersion}\Q:16" "BinPath" "${ImageMagickDir}"
WriteRegStr HKLM "SOFTWARE\ImageMagick\${ImageMagickVersion}\Q:16" "CoderModulesPath" "${ImageMagickDir}\modules\coders"
WriteRegDWORD HKLM "SOFTWARE\ImageMagick\Current" "QuantumDepth" 0x00000010
WriteRegStr HKLM "SOFTWARE\ImageMagick\Current" "Version" "${ImageMagickVersion}"
- WriteRegStr HKLM "Software\ImageMagick" "OnlyWithLyX" "Yes${PRODUCT_VERSION_SHORT}" ; special entry to tell the uninstaller that it was installed with LyX
+ WriteRegStr HKLM "Software\ImageMagick" "OnlyWithLyX" "Yes${PRODUCT_VERSION_SHORT}" # special entry to tell the uninstaller that it was installed with LyX
StrCpy $ImageMagickPath ${ImageMagickDir}
${else}
- ; delete unnecessary files
+ # delete unnecessary files
RMDir /r ${ImageMagickDir}
${endif}
FunctionEnd
-; -------------------------------------------
+# -------------------------------------------
Function Aspell
- ; if Aspell is not installed
+ # if Aspell is not installed
${if} $AspellPath == ""
- ; extract Aspell's program files
+ # extract Aspell's program files
SetOutPath "$INSTDIR\external"
File /r "${PRODUCT_SOURCEDIR}\${AspellInstall}"
- ; copy the files and register Aspell
+ # copy the files and register Aspell
CopyFiles "$INSTDIR\${AspellInstall}" "$APPDATA"
WriteRegStr HKLM "SOFTWARE\Aspell" "Base Path" "${AspellDir}"
WriteRegStr HKLM "SOFTWARE\Aspell" "Dictionary Path" "${AspellDictPath}"
WriteRegStr HKLM "SOFTWARE\Aspell" "Personal Path" "${AspellPersonalPath}"
- WriteRegStr HKLM "Software\Aspell" "OnlyWithLyX" "Yes${PRODUCT_VERSION_SHORT}" ; special entry to tell the uninstaller that it was installed with LyX
+ WriteRegStr HKLM "Software\Aspell" "OnlyWithLyX" "Yes${PRODUCT_VERSION_SHORT}" # special entry to tell the uninstaller that it was installed with LyX
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Aspell" "DisplayName" "${AspellDisplay}"
WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Aspell" "NoModify" 0x00000001
FunctionEnd
-; -------------------------------------------
+# -------------------------------------------
Function Aiksaurus
- ; if Aiksaurus is not installed
+ # if Aiksaurus is not installed
${if} $AiksaurusPath == ""
- ; extract Aiksaurus' program files
+ # extract Aiksaurus' program files
SetOutPath "$INSTDIR\external"
File /r "${PRODUCT_SOURCEDIR}\${AiksaurusInstall}"
- ; copy the files and register Aiksaurus
+ # copy the files and register Aiksaurus
CopyFiles "$INSTDIR\${AiksaurusInstall}" "$APPDATA"
-; WriteRegStr HKLM "Software\Aiksaurus" "OnlyWithLyX" "Yes${PRODUCT_VERSION_SHORT}" ; special entry to tell the uninstaller that it was installed with LyX
-; WriteRegStr HKLM "Software\Aiksaurus" "Data Path" "${AiksaurusDir}"
+# WriteRegStr HKLM "Software\Aiksaurus" "OnlyWithLyX" "Yes${PRODUCT_VERSION_SHORT}" # special entry to tell the uninstaller that it was installed with LyX
+# WriteRegStr HKLM "Software\Aiksaurus" "Data Path" "${AiksaurusDir}"
${endif}
FunctionEnd
-; -------------------------------------------
+# -------------------------------------------
Function PostScript
-; if no PostScript viewer is installed
+# if no PostScript viewer is installed
${if} $PSVPath == ""
${if} $InstallGSview == "true"
- ; launch installer
+ # launch installer
MessageBox MB_OK|MB_ICONINFORMATION "$(GSviewInfo)"
ExecWait "$INSTDIR\${GSviewInstall}"
- ; test if GSview is installed
+ # test if GSview is installed
StrCpy $PSVPath ""
ReadRegStr $PSVPath HKLM "Software\Microsoft\Windows\CurrentVersion\App Paths\gsview32.exe" "Path"
${if} $PSVPath == ""
FunctionEnd
-; -------------------------------------------
+# -------------------------------------------
Function BibTeX
-; if no BibTeX editor is installed
+# if no BibTeX editor is installed
${if} $BibTeXEditorPath == ""
${if} $InstallJabRef == "true"
- ; launch installer
+ # launch installer
MessageBox MB_OK|MB_ICONINFORMATION "$(JabRefInfo)"
ExecWait "$INSTDIR\${JabRefInstall}"
- ; test if JabRef is installed
+ # test if JabRef is installed
StrCpy $BibTeXEditorPath ""
ReadRegStr $BibTeXEditorPath HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${JabRefVersion}" "UninstallString"
${if} $BibTeXEditorPath == ""
MessageBox MB_OK|MB_ICONEXCLAMATION "$(JabRefError)"
${else}
- WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${JabRefVersion}" "OnlyWithLyX" "Yes${PRODUCT_VERSION_SHORT}" ; special entry to tell the uninstaller that it was installed with LyX
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${JabRefVersion}" "OnlyWithLyX" "Yes${PRODUCT_VERSION_SHORT}" # special entry to tell the uninstaller that it was installed with LyX
${endif}
${endif}
${endif}
-; this file contains the main installer section
+# this file contains the main installer section
-; The '-' makes the section invisible.
+# The '-' makes the section invisible.
Section "-Installation actions" SecInstallation
- ; dummy actions to avoid NSIS warnings
+ # dummy actions to avoid NSIS warnings
StrCpy $FileName ""
StrCpy $NewString ""
StrCpy $OldString ""
- ; extract all files
+ # extract all files
SetOutPath "$INSTDIR"
File /r "${PRODUCT_SOURCEDIR}\bin"
File /r "${PRODUCT_SOURCEDIR}\etc"
File /r "${PRODUCT_SOURCEDIR}\Resources"
- ; install GhostScript if it not installed
+ # install GhostScript if it not installed
Call Ghostscript
- ; install ImageMagick if it not installed
+ # install ImageMagick if it not installed
Call ImageMagick
- ; install Aspell if it not installed
+ # install Aspell if it not installed
Call Aspell
- ; install Aiksaurus if it not installed
+ # install Aiksaurus if it not installed
Call Aiksaurus
- ; install the LaTeX class files that are delivered with LyX
- ; and enable MiKTeX's automatic package installation
- Call ConfigureMiKTeX ; Function from LaTeX.nsh
+ # install the LaTeX class files that are delivered with LyX
+ # and enable MiKTeX's automatic package installation
+ Call ConfigureMiKTeX # Function from LaTeX.nsh
- ; install Aspell dictionaries
+ # install Aspell dictionaries
${if} $LangCode == "nb_NO"
- StrCpy $LangCode "no_NO" ; we only have a norwegian dictionary available
+ StrCpy $LangCode "no_NO" # we only have a norwegian dictionary available
${endif}
- Call InstallAspellDictionary ; function from Aspell.nsh
+ Call InstallAspellDictionary # function from Aspell.nsh
- ; configure LyX
- Call ConfigureLyX ; Function from ConfigLyX.nsh
+ # configure LyX
+ Call ConfigureLyX # Function from ConfigLyX.nsh
- ; delete unnecessary files
+ # delete unnecessary files
${if} $DelPythonFiles == "True"
Delete $INSTDIR\bin\python.exe
Delete $INSTDIR\bin\python25.dll
${endif}
RMDir /r $INSTDIR\external
- ; create Uninstaller
+ # create Uninstaller
WriteUninstaller "${PRODUCT_UNINSTALL_EXE}"
- ; run LyX's configure script
- ; create a bat-file to start configure in a console window so that the user see the progress
- ; of the configuration and to have a signal when the configuration is ready to start LyX
- ; this is important when LyX is installed together with MiKTeX or when LyX is installed for the first
- ; time on a computer, because the installation of missing LaTeX-files required by LyX could last minutes
- ; a batch file is needed because simply calling ExecWait '"$PythonPath\python.exe" "$INSTDIR\Resources\configure.py"'
- ; creates the config files in $PythonPath
+ # run LyX's configure script
+ # create a bat-file to start configure in a console window so that the user see the progress
+ # of the configuration and to have a signal when the configuration is ready to start LyX
+ # this is important when LyX is installed together with MiKTeX or when LyX is installed for the first
+ # time on a computer, because the installation of missing LaTeX-files required by LyX could last minutes
+ # a batch file is needed because simply calling ExecWait '"$PythonPath\python.exe" "$INSTDIR\Resources\configure.py"'
+ # creates the config files in $PythonPath
${if} $PythonPath == ""
StrCpy $PythonPath "$INSTDIR\bin"
${endif}
- StrCpy $1 $INSTDIR 2 ; get drive letter
+ StrCpy $1 $INSTDIR 2 # get drive letter
FileOpen $R1 "$INSTDIR\Resources\configLyX.bat" w
FileWrite $R1 '$1$\r$\n\
cd $INSTDIR\Resources\$\r$\n\
ExecWait '"$INSTDIR\Resources\configLyX.bat"'
Delete "$INSTDIR\Resources\configLyX.bat"
- ; ask to update MiKTeX
+ # ask to update MiKTeX
${if} $MiKTeXInstalled == "yes"
MessageBox MB_YESNO|MB_ICONINFORMATION "$(MiKTeXInfo)" IDYES UpdateNow IDNO UpdateLater
UpdateNow:
- StrCpy $0 $LaTeXPath -4 ; remove "\bin"
- ExecWait '"$LaTeXPath\copystart.exe" "$0\config\update.dat"' ; run MiKTeX's update wizard
+ StrCpy $0 $LaTeXPath -4 # remove "\bin"
+ ExecWait '"$LaTeXPath\copystart.exe" "$0\config\update.dat"' # run MiKTeX's update wizard
UpdateLater:
${endif}
- ; save MiKTeX's install path to be able to remove LyX's LaTeX-files in the uninstaller
+ # save MiKTeX's install path to be able to remove LyX's LaTeX-files in the uninstaller
FileOpen $R1 "$INSTDIR\Resources\uninstallPaths.dat" w
FileWrite $R1 '$LaTeXPath'
FileClose $R1
- ; prepare variables for uninstaller
+ # prepare variables for uninstaller
StrCpy $MiKTeXVersionVar ${MiKTeXDeliveredVersion}
StrCpy $JabRefVersionVar ${JabRefVersion}
SectionEnd
-; -------------------------------------------
+# -------------------------------------------
Function Ghostscript
- ; if GhostScript is not installed
+ # if GhostScript is not installed
${if} $GhostscriptPath == ""
- ; register Ghostscript
+ # register Ghostscript
WriteRegStr HKLM "SOFTWARE\GPL Ghostscript\${GhostscriptVersion}" "GS_DLL" "${GhostscriptDir}\bin\gsdll32.dll"
WriteRegStr HKLM "SOFTWARE\GPL Ghostscript\${GhostscriptVersion}" "GS_LIB" "${GhostscriptDir}\lib;${GhostscriptDir}\fonts;${GhostscriptDir}\Resource"
- WriteRegStr HKLM "SOFTWARE\GPL Ghostscript" "OnlyWithLyX" "Yes${PRODUCT_VERSION_SHORT}" ; special entry to tell the uninstaller that it was installed with LyX
+ WriteRegStr HKLM "SOFTWARE\GPL Ghostscript" "OnlyWithLyX" "Yes${PRODUCT_VERSION_SHORT}" # special entry to tell the uninstaller that it was installed with LyX
StrCpy $GhostscriptPath "${GhostscriptDir}\bin"
${else}
- ; delete unnecessary files
+ # delete unnecessary files
RMDir /r ${GhostscriptDir}
${endif}
FunctionEnd
-; -------------------------------------------
+# -------------------------------------------
Function ImageMagick
- ; if ImageMagick is not installed
+ # if ImageMagick is not installed
${if} $ImageMagickPath == ""
- ; register ImageMagick
+ # register ImageMagick
WriteRegStr HKLM "SOFTWARE\Classes\Applications" "AutoRun" "${ImageMagickDir}\convert.exe $$"
WriteRegStr HKLM "SOFTWARE\ImageMagick\${ImageMagickVersion}\Q:16" "BinPath" "${ImageMagickDir}"
WriteRegStr HKLM "SOFTWARE\ImageMagick\${ImageMagickVersion}\Q:16" "CoderModulesPath" "${ImageMagickDir}\modules\coders"
WriteRegDWORD HKLM "SOFTWARE\ImageMagick\Current" "QuantumDepth" 0x00000010
WriteRegStr HKLM "SOFTWARE\ImageMagick\Current" "Version" "${ImageMagickVersion}"
- WriteRegStr HKLM "Software\ImageMagick" "OnlyWithLyX" "Yes${PRODUCT_VERSION_SHORT}" ; special entry to tell the uninstaller that it was installed with LyX
+ WriteRegStr HKLM "Software\ImageMagick" "OnlyWithLyX" "Yes${PRODUCT_VERSION_SHORT}" # special entry to tell the uninstaller that it was installed with LyX
StrCpy $ImageMagickPath ${ImageMagickDir}
${else}
- ; delete unnecessary files
+ # delete unnecessary files
RMDir /r ${ImageMagickDir}
${endif}
FunctionEnd
-; -------------------------------------------
+# -------------------------------------------
Function Aspell
- ; if Aspell is not installed
+ # if Aspell is not installed
${if} $AspellPath == ""
- ; extract Aspell's program files
+ # extract Aspell's program files
SetOutPath "$INSTDIR\external"
File /r "${PRODUCT_SOURCEDIR}\${AspellInstall}"
- ; copy the files and register Aspell
+ # copy the files and register Aspell
CopyFiles "$INSTDIR\${AspellInstall}" "$APPDATA"
WriteRegStr HKLM "SOFTWARE\Aspell" "Base Path" "${AspellDir}"
WriteRegStr HKLM "SOFTWARE\Aspell" "Dictionary Path" "${AspellDictPath}"
WriteRegStr HKLM "SOFTWARE\Aspell" "Personal Path" "${AspellPersonalPath}"
- WriteRegStr HKLM "Software\Aspell" "OnlyWithLyX" "Yes${PRODUCT_VERSION_SHORT}" ; special entry to tell the uninstaller that it was installed with LyX
+ WriteRegStr HKLM "Software\Aspell" "OnlyWithLyX" "Yes${PRODUCT_VERSION_SHORT}" # special entry to tell the uninstaller that it was installed with LyX
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Aspell" "DisplayName" "${AspellDisplay}"
WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Aspell" "NoModify" 0x00000001
FunctionEnd
-; -------------------------------------------
+# -------------------------------------------
Function Aiksaurus
- ; if Aiksaurus is not installed
+ # if Aiksaurus is not installed
${if} $AiksaurusPath == ""
- ; extract Aiksaurus' program files
+ # extract Aiksaurus' program files
SetOutPath "$INSTDIR\external"
File /r "${PRODUCT_SOURCEDIR}\${AiksaurusInstall}"
- ; copy the files and register Aiksaurus
+ # copy the files and register Aiksaurus
CopyFiles "$INSTDIR\${AiksaurusInstall}" "$APPDATA"
-; WriteRegStr HKLM "Software\Aiksaurus" "OnlyWithLyX" "Yes${PRODUCT_VERSION_SHORT}" ; special entry to tell the uninstaller that it was installed with LyX
-; WriteRegStr HKLM "Software\Aiksaurus" "Data Path" "${AiksaurusDir}"
+# WriteRegStr HKLM "Software\Aiksaurus" "OnlyWithLyX" "Yes${PRODUCT_VERSION_SHORT}" # special entry to tell the uninstaller that it was installed with LyX
+# WriteRegStr HKLM "Software\Aiksaurus" "Data Path" "${AiksaurusDir}"
${endif}
FunctionEnd
-; this file contains the main installer section
+# this file contains the main installer section
-; The '-' makes the section invisible.
+# The '-' makes the section invisible.
Section "-Installation actions" SecInstallation
- ; dummy actions to avoid NSIS warnings
+ # dummy actions to avoid NSIS warnings
StrCpy $AspellBaseReg ""
StrCpy $LangCode ""
StrCpy $LangCodeSys ""
StrCpy $LangName ""
StrCpy $LangNameSys ""
- ; init, this variable is later only set to a value in function InstDirChange
- ; when the $INSTDIR is changed
+ # init, this variable is later only set to a value in function InstDirChange
+ # when the $INSTDIR is changed
StrCpy $INSTDIR_OLD ""
- ; extract modified files
- Call UpdateModifiedFiles ; macro from Updated.nsh
+ # extract modified files
+ Call UpdateModifiedFiles # macro from Updated.nsh
- ; delete files
- Call DeleteFiles ; macro from Deleted.nsh
+ # delete files
+ Call DeleteFiles # macro from Deleted.nsh
- ; delete old uninstaller
+ # delete old uninstaller
Delete "${PRODUCT_UNINSTALL_EXE}"
- ; delete old start menu folder
+ # delete old start menu folder
ReadRegStr $0 SHCTX "${PRODUCT_UNINST_KEY_OLD}" "StartMenu"
RMDir /r $0
- ; delete desktop icon
+ # delete desktop icon
Delete "$DESKTOP\${PRODUCT_VERSION_OLD}.lnk"
- ; delete old registry entries
+ # delete old registry entries
${if} $CreateFileAssociations == "true"
DeleteRegKey SHCTX "${PRODUCT_DIR_REGKEY}"
- ; remove file extension .lyx
+ # remove file extension .lyx
ReadRegStr $R0 SHCTX "Software\Classes\${PRODUCT_EXT}" ""
${if} $R0 == "${PRODUCT_REGNAME}"
DeleteRegKey SHCTX "Software\Classes\${PRODUCT_EXT}"
DeleteRegKey HKCR "Applications\lyx.bat"
DeleteRegKey HKCR "${PRODUCT_NAME}"
- ; determine the new name of the install location,
- ; Change the old install path to the new one (currently only when the user
- ; has used the default path settings of the previous LyX-version)
+ # determine the new name of the install location,
+ # Change the old install path to the new one (currently only when the user
+ # has used the default path settings of the previous LyX-version)
Call InstDirChange
- ; Refresh registry setings for the uninstaller
+ # Refresh registry setings for the uninstaller
Call RefreshRegUninst
- ; Create a batch file to start LyX with the environment variables set
- ; !only needed in this version! remove it for the next release
+ # Create a batch file to start LyX with the environment variables set
+ # !only needed in this version! remove it for the next release
ClearErrors
Delete "${PRODUCT_BAT}"
FileOpen $R1 "${PRODUCT_BAT}" w
IfErrors 0 +2
MessageBox MB_OK|MB_ICONEXCLAMATION "$(CreateCmdFilesFailed)"
- ; register LyX
+ # register LyX
${if} $CreateFileAssociations == "true"
WriteRegStr SHCTX "${PRODUCT_DIR_REGKEY}" "" "${PRODUCT_EXE}"
${endif}
WriteRegDWORD SHCTX "${PRODUCT_UNINST_KEY}" "NoModify" 0x00000001
WriteRegDWORD SHCTX "${PRODUCT_UNINST_KEY}" "NoRepair" 0x00000001
- ; create start menu entry
+ # create start menu entry
SetOutPath "$INSTDIR\bin"
CreateDirectory "$SMPROGRAMS\$StartmenuFolder"
CreateShortCut "$SMPROGRAMS\$StartmenuFolder\${PRODUCT_NAME}.lnk" "${PRODUCT_BAT}" "" "${PRODUCT_EXE}"
SetOutPath "$INSTDIR"
CreateShortCut "$SMPROGRAMS\$StartmenuFolder\Uninstall.lnk" "${PRODUCT_UNINSTALL_EXE}"
- ; create desktop icon
+ # create desktop icon
${if} $CreateDesktopIcon == "true"
SetOutPath "$INSTDIR\bin"
CreateShortCut "$DESKTOP\LyX ${PRODUCT_VERSION}.lnk" "${PRODUCT_BAT}" "" "${PRODUCT_EXE}"
${endif}
- ; register the extension .lyx
+ # register the extension .lyx
${if} $CreateFileAssociations == "true"
- ; write informations about file type
+ # write informations about file type
WriteRegStr SHCTX "Software\Classes\${PRODUCT_REGNAME}" "" "${PRODUCT_NAME} Document"
WriteRegStr SHCTX "Software\Classes\${PRODUCT_REGNAME}\DefaultIcon" "" "${PRODUCT_EXE}"
WriteRegStr SHCTX "Software\Classes\${PRODUCT_REGNAME}\Shell\open\command" "" '"${LAUNCHER_EXE}" "%1"'
- ; write informations about file extensions
+ # write informations about file extensions
WriteRegStr SHCTX "Software\Classes\${PRODUCT_EXT}" "" "${PRODUCT_REGNAME}"
WriteRegStr SHCTX "Software\Classes\${PRODUCT_EXT}" "Content Type" "${PRODUCT_MIME_TYPE}"
- ; refresh shell
+ # refresh shell
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) (${SHCNE_ASSOCCHANGED}, ${SHCNF_IDLIST}, 0, 0)'
${endif}
- ; create Uninstaller
+ # create Uninstaller
WriteUninstaller "${PRODUCT_UNINSTALL_EXE}"
- ; test if Python is installed
- ; only use an existing python when it is version 2.5 because many Compaq and Dell PC are delivered
- ; with outdated Python interpreters
+ # test if Python is installed
+ # only use an existing python when it is version 2.5 because many Compaq and Dell PC are delivered
+ # with outdated Python interpreters
ReadRegStr $PythonPath HKLM "Software\Python\PythonCore\2.5\InstallPath" ""
${if} $PythonPath == ""
StrCpy $PythonPath "$INSTDIR\bin"
${else}
- StrCpy $PythonPath $PythonPath -1 ; remove the "\" at the end
+ StrCpy $PythonPath $PythonPath -1 # remove the "\" at the end
${endif}
- ; run LyX's configure script
- ; create a bat-file to start configure in a console window so that the user see the progress
- ; of the configuration and to have a signal when the configuration is ready to start LyX
- ; this is important when LyX is installed together with MiKTeX or when LyX is installed for the first
- ; time on a computer, because the installation of missing LaTeX-files required by LyX could last minutes
- ; a batch file is needed because simply calling ExecWait '"$PythonPath\python.exe" "$INSTDIR\Resources\configure.py"'
- ; creates the config files in $INSTDIR\bin
- StrCpy $1 $INSTDIR 2 ; get drive letter
+ # run LyX's configure script
+ # create a bat-file to start configure in a console window so that the user see the progress
+ # of the configuration and to have a signal when the configuration is ready to start LyX
+ # this is important when LyX is installed together with MiKTeX or when LyX is installed for the first
+ # time on a computer, because the installation of missing LaTeX-files required by LyX could last minutes
+ # a batch file is needed because simply calling ExecWait '"$PythonPath\python.exe" "$INSTDIR\Resources\configure.py"'
+ # creates the config files in $INSTDIR\bin
+ StrCpy $1 $INSTDIR 2 # get drive letter
FileOpen $R1 "$INSTDIR\Resources\configLyX.bat" w
FileWrite $R1 '$1$\r$\n\
cd $INSTDIR\Resources\$\r$\n\
ExecWait '"$INSTDIR\Resources\configLyX.bat"'
Delete "$INSTDIR\Resources\configLyX.bat"
- ; for some unknown odd reason the folder $INSTDIR_OLD\Resources\ui
- ; is not deleted in function InstDirChange, so the deletion has to be called
- ; again to make it work
+ # for some unknown odd reason the folder $INSTDIR_OLD\Resources\ui
+ # is not deleted in function InstDirChange, so the deletion has to be called
+ # again to make it work
${if} $INSTDIR_OLD != ""
RMDir /r $INSTDIR_OLD
${endif}
SectionEnd
-; -------------------------------------------
+# -------------------------------------------
Function InstDirChange
- ; determine the new name of the install location,
- ; Change the old install path to the new one (currently only when the user
- ; has used the default path settings of the previous LyX-version)
+ # determine the new name of the install location,
+ # Change the old install path to the new one (currently only when the user
+ # has used the default path settings of the previous LyX-version)
StrCpy $String $INSTDIR
StrCpy $Search "${PRODUCT_VERSION_OLD}"
StrLen $3 $String
- Call StrPoint ; search the $INSTDIR for the phrase in ${PRODUCT_VERSION_OLD} ; function from LyXUtils.nsh
- ${if} $Pointer != "-1" ; if something was found
+ Call StrPoint # search the $INSTDIR for the phrase in ${PRODUCT_VERSION_OLD} ; function from LyXUtils.nsh
+ ${if} $Pointer != "-1" # if something was found
- IntOp $Pointer $Pointer - 1 ; jump before the first "\" of "\${PRODUCT_VERSION_OLD}"
- StrCpy $String $String "$Pointer" ; $String is now the part before "\${PRODUCT_VERSION_OLD}"
- ; rename the installation folder by copying LyX files
+ IntOp $Pointer $Pointer - 1 # jump before the first "\" of "\${PRODUCT_VERSION_OLD}"
+ StrCpy $String $String "$Pointer" # $String is now the part before "\${PRODUCT_VERSION_OLD}"
+ # rename the installation folder by copying LyX files
StrCpy $INSTDIR_NEW "$String\LyX ${PRODUCT_VERSION}"
CreateDirectory "$INSTDIR_NEW"
CopyFiles "$INSTDIR\*.*" "$INSTDIR_NEW"
- ; delete the old folder
+ # delete the old folder
RMDir /r $INSTDIR
StrCpy $INSTDIR_OLD $INSTDIR
StrCpy $INSTDIR $INSTDIR_NEW
- ; set new PATH_PREFIX in the file lyxrc.dist
+ # set new PATH_PREFIX in the file lyxrc.dist
FileOpen $R1 "$INSTDIR\Resources\lyxrc.dist" a
FileRead $R1 $PathPrefix
${WordReplace} $PathPrefix "${PRODUCT_VERSION_OLD}" "LyX ${PRODUCT_VERSION}" "+" $PathPrefix
- FileSeek $R1 0 ; set file pointer to the beginning
- FileWrite $R1 '$PathPrefix' ; overwrite the existing path with the actual one
+ FileSeek $R1 0 # set file pointer to the beginning
+ FileWrite $R1 '$PathPrefix' # overwrite the existing path with the actual one
FileClose $R1
- ; set the new path to the preferences file for all users
+ # set the new path to the preferences file for all users
StrCpy $FileName "preferences"
StrCpy $OldString "${PRODUCT_VERSION_OLD}"
StrCpy $NewString "LyX ${PRODUCT_VERSION}"
- Call CheckAppPathPreferences ; function from LyXUtils.nsh
+ Call CheckAppPathPreferences # function from LyXUtils.nsh
- ; set the new path to the session file for all users
+ # set the new path to the session file for all users
StrCpy $FileName "session"
- Call CheckAppPathPreferences ; function from LyXUtils.nsh
+ Call CheckAppPathPreferences # function from LyXUtils.nsh
- ; set new path to ImageMagick
+ # set new path to ImageMagick
ReadRegStr $ImageMagickPath SHCTX "SOFTWARE\Classes\Applications" "AutoRun"
${if} $ImageMagickPath != ""
- ${WordReplace} $ImageMagickPath "${PRODUCT_VERSION_OLD}" "LyX ${PRODUCT_VERSION}" "+" $ImageMagickPath ; macro from WordFunc.nsh
+ ${WordReplace} $ImageMagickPath "${PRODUCT_VERSION_OLD}" "LyX ${PRODUCT_VERSION}" "+" $ImageMagickPath # macro from WordFunc.nsh
WriteRegStr SHCTX "SOFTWARE\Classes\Applications" "AutoRun" "$ImageMagickPath"
${endif}
- ${endif} ; end ${if} $Pointer != "-1" (if the folder is renamed)
+ ${endif} # end ${if} $Pointer != "-1" (if the folder is renamed)
FunctionEnd
-; -------------------------------------------
+# -------------------------------------------
Function RefreshRegUninst
- ; Refresh registry setings for the uninstaller
+ # Refresh registry setings for the uninstaller
- ; Aspell
- ReadRegStr $0 SHCTX "Software\Aspell" "OnlyWithLyX" ; special entry to test if it was installed with LyX
+ # Aspell
+ ReadRegStr $0 SHCTX "Software\Aspell" "OnlyWithLyX" # special entry to test if it was installed with LyX
${if} $0 == "Yes${PRODUCT_VERSION_SHORT}"
WriteRegStr HKLM "SOFTWARE\Aspell" "OnlyWithLyX" "Yes${PRODUCT_VERSION_SHORT}"
${endif}
- ; MiKTeX
+ # MiKTeX
ReadRegStr $0 HKLM "SOFTWARE\MiKTeX.org\MiKTeX" "OnlyWithLyX"
${if} $0 == "Yes${PRODUCT_VERSION_SHORT}"
WriteRegStr HKLM "SOFTWARE\MiKTeX.org\MiKTeX" "OnlyWithLyX" "Yes${PRODUCT_VERSION_SHORT}"
StrCpy $MiKTeXVersionVar ${MiKTeXDeliveredVersionOld}
${endif}
- ; JabRef
+ # JabRef
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${JabRefVersionOld}" "OnlyWithLyX"
${if} $0 == "Yes${PRODUCT_VERSION_SHORT}"
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${JabRefVersionOld}" "OnlyWithLyX" "Yes${PRODUCT_VERSION_SHORT}"
StrCpy $JabRefVersionVar ${JabRefVersionOld}
${endif}
- ; Aiksaurus
- ReadRegStr $0 SHCTX "Software\Aiksaurus" "OnlyWithLyX" ; special entry to test if it was installed with LyX
+ # Aiksaurus
+ ReadRegStr $0 SHCTX "Software\Aiksaurus" "OnlyWithLyX" # special entry to test if it was installed with LyX
${if} $0 == "Yes${PRODUCT_VERSION_SHORT_OLD}"
WriteRegStr HKLM "SOFTWARE\Aiksaurus" "OnlyWithLyX" "Yes${PRODUCT_VERSION_SHORT}"
${endif}
- ; ImageMagick
+ # ImageMagick
ReadRegStr $0 SHCTX "Software\ImageMagick" "OnlyWithLyX"
${if} $0 == "Yes${PRODUCT_VERSION_SHORT_OLD}"
WriteRegStr HKLM "SOFTWARE\ImageMagick" "OnlyWithLyX" "Yes${PRODUCT_VERSION_SHORT}"
${endif}
- ; Ghostscript and GSview
+ # Ghostscript and GSview
ReadRegStr $0 HKLM "SOFTWARE\GPL Ghostscript" "OnlyWithLyX"
${if} $0 == "Yes${PRODUCT_VERSION_SHORT_OLD}"
WriteRegStr HKLM "SOFTWARE\GPL Ghostscript" "OnlyWithLyX" "Yes${PRODUCT_VERSION_SHORT}"
Function LaTeXActions
- ; tests if MiKTeX is installed
- ; reads the PATH variable via the registry because NSIS' "$%Path%" variable is not updated when the PATH changes
+ # tests if MiKTeX is installed
+ # reads the PATH variable via the registry because NSIS' "$%Path%" variable is not updated when the PATH changes
ReadRegStr $String HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "Path"
StrCpy $Search "miktex"
- Call LaTeXCheck ; sets the path to the latex.exe to $LatexPath ; Function from LyXUtils.nsh
- ; check if MiKTeX 2.4 or 2.5 is installed
+ Call LaTeXCheck # sets the path to the latex.exe to $LatexPath # Function from LyXUtils.nsh
+ # check if MiKTeX 2.4 or 2.5 is installed
StrCpy $String ""
ReadRegStr $String HKLM "Software\MiK\MiKTeX\CurrentVersion\MiKTeX" "Install Root"
${if} $String != ""
- StrCpy $MiKTeXVersion "2.4" ; needed later for the configuration of MiKTeX
+ StrCpy $MiKTeXVersion "2.4" # needed later for the configuration of MiKTeX
StrCpy $LaTeXName "MiKTeX 2.4"
${endif}
- ${if} $LatexPath == "" ; check if MiKTeX is installed only for the current user
- ; check for MiKTeX 2.5
+ ${if} $LatexPath == "" # check if MiKTeX is installed only for the current user
+ # check for MiKTeX 2.5
ReadRegStr $String HKCU "Environment" "Path"
StrCpy $Search "miktex"
- Call LaTeXCheck ; function from LyXUtils.nsh
+ Call LaTeXCheck # function from LyXUtils.nsh
${if} $LatexPath != ""
- StrCpy $MiKTeXUser "HKCU" ; needed later to for a message about MiKTeX's install folder write permissions, see InstallActions-*.nsh
+ StrCpy $MiKTeXUser "HKCU" # needed later to for a message about MiKTeX's install folder write permissions, see InstallActions-*.nsh
${endif}
- ; check for MiKTeX 2.4
+ # check for MiKTeX 2.4
StrCpy $String ""
ReadRegStr $String HKCU "Software\MiK\MiKTeX\CurrentVersion\MiKTeX" "Install Root"
${if} $String != ""
${endif}
${endif}
- ; test if TeXLive is installed
- ; as described at TeXLives' homepage there should be an entry in the PATH
+ # test if TeXLive is installed
+ # as described at TeXLives' homepage there should be an entry in the PATH
${if} $LatexPath == ""
ReadRegStr $String HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "Path"
StrCpy $Search "TeXLive"
- Call LaTeXCheck ; function from LyXUtils.nsh
+ Call LaTeXCheck # function from LyXUtils.nsh
${endif}
- ; check for the current user Path variable (the case when it is a live CD/DVD)
+ # check for the current user Path variable (the case when it is a live CD/DVD)
${if} $LatexPath == ""
ReadRegStr $String HKCU "Environment" "Path"
StrCpy $Search "texlive"
StrCpy $2 "TeXLive"
- Call LaTeXCheck ; function from LyXUtils.nsh
+ Call LaTeXCheck # function from LyXUtils.nsh
${endif}
- ; check if the variable TLroot exists (the case when it is installed using the program "tlpmgui")
+ # check if the variable TLroot exists (the case when it is installed using the program "tlpmgui")
${if} $LatexPath == ""
ReadRegStr $String HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "TLroot"
${if} $String == ""
- ReadRegStr $String HKCU "Environment" "TLroot" ; the case when installed without admin permissions
+ ReadRegStr $String HKCU "Environment" "TLroot" # the case when installed without admin permissions
${endif}
StrCpy $LatexPath "$String\bin\win32"
- ; check if the latex.exe exists in the $LatexPath folder
- !insertmacro FileCheck $5 "latex.exe" "$LatexPath" ; macro from LyXUtils.nsh
+ # check if the latex.exe exists in the $LatexPath folder
+ !insertmacro FileCheck $5 "latex.exe" "$LatexPath" # macro from LyXUtils.nsh
${if} $5 == "False"
StrCpy $LatexPath ""
${endif}
FunctionEnd
-; ------------------------------
+# ------------------------------
Function ConfigureMiKTeX
- ; installs the LaTeX class files that are delivered with LyX
- ; and enable MiKTeX's automatic package installation
+ # installs the LaTeX class files that are delivered with LyX
+ # and enable MiKTeX's automatic package installation
StrCpy $String $LatexPath
StrCpy $Search "miktex\bin"
StrLen $3 $String
- Call StrPoint ; search the LaTeXPath for the phrase "miktex\bin" (function from LyXUtils.nsh)
- ${if} $Pointer != "-1" ; if something was found
- IntOp $Pointer $Pointer - 1 ; jump before the first "\" of "\miktex\bin"
- StrCpy $String $String "$Pointer" ; $String is now the part before "\miktex\bin"
- ; install LaTeX class files
+ Call StrPoint # search the LaTeXPath for the phrase "miktex\bin" (function from LyXUtils.nsh)
+ ${if} $Pointer != "-1" # if something was found
+ IntOp $Pointer $Pointer - 1 # jump before the first "\" of "\miktex\bin"
+ StrCpy $String $String "$Pointer" # $String is now the part before "\miktex\bin"
+ # install LaTeX class files
SetOutPath "$String\tex\latex"
File "${ClassFileDir}\cv.cls"
CreateDirectory "$String\tex\latex\lyx"
CreateDirectory "$String\tex\latex\broadway"
SetOutPath "$String\tex\latex\broadway"
File "${ClassFileDir}\broadway.cls"
- ; install LaTeX-package dvipost (dvipost is not available for MiKTeX)
- SetOutPath "$String\tex\latex\"
+ # install LaTeX-package dvipost (dvipost is not available for MiKTeX)
+ SetOutPath "$String\tex\latex\" # Should there be a final \ before "?
File /r "${DVIPostFileDir}"
${if} $MiKTeXVersion == "2.4"
- ; refresh MiKTeX's file name database
+ # refresh MiKTeX's file name database
ExecWait "$String\miktex\bin\initexmf --update-fndb"
- ; delete MiKTeX 2.4's dvipng executable as it is an old broken version. Then install a working one.
+ # delete MiKTeX 2.4's dvipng executable as it is an old broken version. Then install a working one.
Delete "$String\miktex\bin\dvipng.exe"
- ; Install a new one
+ # Install a new one
SetOutPath "$String\miktex\bin"
File "${PRODUCT_DIR}\LyX\external\dvipng.exe"
- ; enable package installation without asking (1=Yes, 0=No, 2=Always Ask Before Installing)
+ # enable package installation without asking (1=Yes, 0=No, 2=Always Ask Before Installing)
WriteRegStr HKCU "SOFTWARE\MiK\MiKTeX\CurrentVersion\MiKTeX" "InstallPackagesOnTheFly" "1"
WriteRegStr HKCU "SOFTWARE\MiK\MiKTeX\CurrentVersion\MPM\Settings" "" ""
- ; Setting package repository (MiKTeX's primary package repository)
+ # Setting package repository (MiKTeX's primary package repository)
WriteRegStr HKCU "SOFTWARE\MiK\MiKTeX\CurrentVersion\MPM" "RemotePackageRepository" "${MiKTeXRepo}"
- ${else} ; if MiKTeX 2.5
- ; refresh MiKTeX's file name database
+ ${else} # if MiKTeX 2.5
+ # refresh MiKTeX's file name database
ExecWait "$LaTeXPath\initexmf --update-fndb"
- ; enable package installation without asking (t = Yes, f = No)
- WriteRegStr HKCU "SOFTWARE\MiKTeX.org\MiKTeX\2.5\MPM" "AutoInstall" "1" ; if only for curent user
+ # enable package installation without asking (t = Yes, f = No)
+ WriteRegStr HKCU "SOFTWARE\MiKTeX.org\MiKTeX\2.5\MPM" "AutoInstall" "1" # if only for curent user
WriteRegStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "MIKTEX_AUTOINSTALL" "t"
- ; set package repository (MiKTeX's primary package repository)
- WriteRegStr HKCU "SOFTWARE\MiKTeX.org\MiKTeX\2.5\MPM" "RemoteRepository" "${MiKTeXRepo}" ; if only for curent user
- WriteRegStr HKCU "SOFTWARE\MiKTeX.org\MiKTeX\2.5\MPM" "RepositoryType" "remote" ; if only for curent user
+ # set package repository (MiKTeX's primary package repository)
+ WriteRegStr HKCU "SOFTWARE\MiKTeX.org\MiKTeX\2.5\MPM" "RemoteRepository" "${MiKTeXRepo}" # if only for curent user
+ WriteRegStr HKCU "SOFTWARE\MiKTeX.org\MiKTeX\2.5\MPM" "RepositoryType" "remote" # if only for curent user
WriteRegStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "MIKTEX_REPOSITORY" "${MiKTeXRepo}"
${endif}
- ; enable MiKTeX's automatic package installation
+ # enable MiKTeX's automatic package installation
ExecWait '$LaTeXPath\mpm.com --update-fndb'
- ; the following feature is planned to be used for a possible CD-version
- ; copy LaTeX-packages needed by LyX
- ; SetOutPath "$INSTDIR"
- ; File /r "${LaTeXPackagesDir}"
- ${endif} ; end ${if} $Pointer
+ # the following feature is planned to be used for a possible CD-version
+ # copy LaTeX-packages needed by LyX
+ # SetOutPath "$INSTDIR"
+ # File /r "${LaTeXPackagesDir}"
+ ${endif} # end ${if} $Pointer
FunctionEnd
Function LatexFolder
!insertmacro MUI_INSTALLOPTIONS_EXTRACT "io_latex.ini"
- ; generate the installer page
+ # generate the installer page
!insertmacro MUI_HEADER_TEXT "$(EnterLaTeXHeader1)" "$(EnterLaTeXHeader2)"
${if} $LatexName != ""
!insertmacro MUI_INSTALLOPTIONS_WRITE "io_latex.ini" "Field 1" "Text" "$(EnterLaTeXFolder)"
${endif}
!insertmacro MUI_INSTALLOPTIONS_WRITE "io_latex.ini" "Field 2" "Text" "$(PathName)"
${if} $LatexPath == ""
- !insertmacro MUI_INSTALLOPTIONS_WRITE "io_latex.ini" "Field 3" "State" "C:\"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "io_latex.ini" "Field 3" "State" "C:\" # Does \" quote a "?
${else}
!insertmacro MUI_INSTALLOPTIONS_WRITE "io_latex.ini" "Field 3" "State" "$LatexPath"
${endif}
!insertmacro MUI_INSTALLOPTIONS_WRITE "io_latex.ini" "Field 4" "State" "$State"
AgainFolder:
!insertmacro MUI_INSTALLOPTIONS_DISPLAY "io_latex.ini"
- !insertmacro MUI_INSTALLOPTIONS_READ "$State" "io_latex.ini" "Field 4" "State" ; read checkbox if LaTeX should be used, "0" or not "1"
+ !insertmacro MUI_INSTALLOPTIONS_READ "$State" "io_latex.ini" "Field 4" "State" # read checkbox if LaTeX should be used, "0" or not "1"
${if} $State == "1"
StrCpy $LatexPath ""
Goto ReadyFolder
${endif}
!insertmacro MUI_INSTALLOPTIONS_READ "$LatexPath" "io_latex.ini" "Field 3" "State"
- ; check if the latex.exe exists in the $LatexPath folder
+ # check if the latex.exe exists in the $LatexPath folder
!insertmacro FileCheck $5 "latex.exe" "$LatexPath"
${if} $5 == "False"
MessageBox MB_RETRYCANCEL "$(InvalidLaTeXFolder)" IDRETRY AgainFolder
-; Language settings for the installer
-; create language code for the Windows system language
+# Language settings for the installer
+# create language code for the Windows system language
-; LangNme is the language name when there exists a LyX translation for this language; used for the menu language dialog and for the Aspell installation
-; LangNmeSys is the Windows system language; used for the Aspell installation
-; LangCdeSys is the ISO 630 language code of the language; used for the Aspell installation
-; LangSysEnc is the Windows codepage for the character encoding of the language; used in lyx.bat to assure that scripts are correctly executed
+# LangNme is the language name when there exists a LyX translation for this language; used for the menu language dialog and for the Aspell installation
+# LangNmeSys is the Windows system language; used for the Aspell installation
+# LangCdeSys is the ISO 630 language code of the language; used for the Aspell installation
+# LangSysEnc is the Windows codepage for the character encoding of the language; used in lyx.bat to assure that scripts are correctly executed
!macro TranslateLangCode LangNme LangNmeSys LangCdeSys LangISOCode LangSysEnc
StrCpy ${LangCdeSys} ""
StrCpy ${LangSysEnc} "1252"
${endif}
-; currently no dictionary available
-; ${if} ${LangISOCode} = 1028
-; StrCpy ${LangCdeSys} "zh"
-; StrCpy ${LangNmeSys} "Chinese"
-; ${endif}
+# currently no dictionary available
+# ${if} ${LangISOCode} = 1028
+# StrCpy ${LangCdeSys} "zh"
+# StrCpy ${LangNmeSys} "Chinese"
+# ${endif}
${if} ${LangISOCode} = 1029
StrCpy ${LangNme} "Ce\9atina"
StrCpy ${LangSysEnc} "1252"
${endif}
-; currently no dictionary available
-; ${if} ${LangISOCode} = 1041
-; StrCpy ${LangCdeSys} "ja"
-; StrCpy ${LangNmeSys} "Japanese"
-; ${endif}
+# currently no dictionary available
+# ${if} ${LangISOCode} = 1041
+# StrCpy ${LangCdeSys} "ja"
+# StrCpy ${LangNmeSys} "Japanese"
+# ${endif}
-; currently no dictionary available
-; ${if} ${LangISOCode} = 1042
-; StrCpy ${LangCdeSys} "ko"
-; StrCpy ${LangNmeSys} "Korean"
-; ${endif}
+# currently no dictionary available
+# ${if} ${LangISOCode} = 1042
+# StrCpy ${LangCdeSys} "ko"
+# StrCpy ${LangNmeSys} "Korean"
+# ${endif}
${if} ${LangISOCode} = 1043
StrCpy ${LangNme} "Nederlands"
StrCpy ${LangSysEnc} "1250"
${endif}
- ${if} ${LangISOCode} = 1046 ; for portuguese (brasilian)
- StrCpy ${LangNme} "English" ; there is currently no portuguese translation of LyX but of the installer
+ ${if} ${LangISOCode} = 1046 # for portuguese (brasilian)
+ StrCpy ${LangNme} "English" # there is currently no portuguese translation of LyX but of the installer
StrCpy ${LangCdeSys} "pt"
StrCpy ${LangNmeSys} "Português"
StrCpy ${LangSysEnc} "1252"
StrCpy ${LangSysEnc} "1250"
${endif}
-; currently no dictionary available
-; ${if} ${LangISOCode} = 1052
-; StrCpy ${LangCdeSys} "sq"
-; StrCpy ${LangNmeSys} "Shqip"
-; StrCpy ${LangSysEnc} "1252"
-; ${endif}
+# currently no dictionary available
+# ${if} ${LangISOCode} = 1052
+# StrCpy ${LangCdeSys} "sq"
+# StrCpy ${LangNmeSys} "Shqip"
+# StrCpy ${LangSysEnc} "1252"
+# ${endif}
${if} ${LangISOCode} = 1053
StrCpy ${LangNme} "Svenska"
StrCpy ${LangSysEnc} "1252"
${endif}
-; currently no dictionary available
-; ${if} ${LangISOCode} = 1054
-; StrCpy ${LangCdeSys} "th"
-; StrCpy ${LangNmeSys} "Thai"
-; StrCpy ${LangSysEnc} "874"
-; ${endif}
+# currently no dictionary available
+# ${if} ${LangISOCode} = 1054
+# StrCpy ${LangCdeSys} "th"
+# StrCpy ${LangNmeSys} "Thai"
+# StrCpy ${LangSysEnc} "874"
+# ${endif}
${if} ${LangISOCode} = 1055
StrCpy ${LangNme} "Türkçe"
StrCpy ${LangSysEnc} "1257"
${endif}
- ; currently no dictionary available
+ # currently no dictionary available
${if} ${LangISOCode} = 1069
StrCpy ${LangNme} "Euskara"
StrCpy ${LangCdeSys} "eu"
StrCpy ${LangSysEnc} "1252"
${endif}
-; currently no dictionary available
-; ${if} ${LangISOCode} = 1081
-; StrCpy ${LangCdeSys} "hi"
-; StrCpy ${LangNmeSys} "Hindi"
-; ${endif}
+# currently no dictionary available
+# ${if} ${LangISOCode} = 1081
+# StrCpy ${LangCdeSys} "hi"
+# StrCpy ${LangNmeSys} "Hindi"
+# ${endif}
${if} ${LangISOCode} = 1110
StrCpy ${LangNme} "Galego"
StrCpy ${LangSysEnc} "1252"
${endif}
-; currently no dictionary available
-; ${if} ${LangISOCode} = 2052
-; StrCpy ${LangCdeSys} "zh"
-; StrCpy ${LangNmeSys} "Chinese"
-; ${endif}
+# currently no dictionary available
+# ${if} ${LangISOCode} = 2052
+# StrCpy ${LangCdeSys} "zh"
+# StrCpy ${LangNmeSys} "Chinese"
+# ${endif}
${if} ${LangISOCode} = 2055
StrCpy ${LangCdeSys} "de"
StrCpy ${LangSysEnc} "1252"
${endif}
- ${if} ${LangISOCode} = 2070 ; for portuguese
- StrCpy ${LangNme} "English" ; there is currently no portuguese translation of LyX but of the installer
+ ${if} ${LangISOCode} = 2070 # for portuguese
+ StrCpy ${LangNme} "English" # there is currently no portuguese translation of LyX but of the installer
StrCpy ${LangCdeSys} "pt"
StrCpy ${LangNmeSys} "Português"
StrCpy ${LangSysEnc} "1252"
!macroend
-;------------------------------------------
+#------------------------------------------
-; Setting LyX's menu language
+# Setting LyX's menu language
!macro GetLangCode LangCde Name LangEnc
!macroend
-;--------------------
-; function that creates the installer page for the language setting
+#--------------------
+# function that creates the installer page for the language setting
Function SelectMenuLanguage
!insertmacro MUI_INSTALLOPTIONS_EXTRACT "io_ui_language.ini"
${if} $LangName == ""
- ; translate NSIS's language code to the language name ; macro from lyx_utils.nsh
+ # translate NSIS's language code to the language name ; macro from lyx_utils.nsh
!insertmacro TranslateLangCode $LangName $LangNameSys $LangCodeSys $Language $LangSysEncoding
${endif}
Function SelectMenuLanguage_LeaveFunction
!insertmacro MUI_INSTALLOPTIONS_READ $LangName "io_ui_language.ini" "Field 2" "State"
- ; Get the language code
+ # Get the language code
StrCpy $LangCode ""
- !insertmacro GetLangCode $LangCode $LangName $LangEncoding ; macro from lyx_utils.nsh
+ !insertmacro GetLangCode $LangCode $LangName $LangEncoding # macro from lyx_utils.nsh
FunctionEnd
-; Lyx for Windows, NSIS v2 series installer script
+# Lyx for Windows, NSIS v2 series installer script
-; File LyXInstaller-complete.nsi
-; This file is part of LyX, the document processor.
-; http://www.lyx.org/
-; Licence details can be found in the file COPYING or copy at
-; http://www.lyx.org/about/license.php3
+# File LyXInstaller-complete.nsi
+# This file is part of LyX, the document processor.
+# http://www.lyx.org/
+# Licence details can be found in the file COPYING or copy at
+# http://www.lyx.org/about/license.php3
-; Author Uwe Stöhr based on the work of Angus Leeming and Joost Verburg
-; Full author contact details are available in file CREDITS or copy at
-; http://www.lyx.org/about/credits.php
+# Author Uwe Stöhr based on the work of Angus Leeming and Joost Verburg
+# Full author contact details are available in file CREDITS or copy at
+# http://www.lyx.org/about/credits.php
-; This script requires NSIS 2.25 and newer
-; http://nsis.sourceforge.net/
-;--------------------------------
+# This script requires NSIS 2.25 and newer
+# http://nsis.sourceforge.net/
+#--------------------------------
-; Do a Cyclic Redundancy Check to make sure the installer
-; was not corrupted by the download.
+# Do a Cyclic Redundancy Check to make sure the installer
+# was not corrupted by the download.
CRCCheck force
-; Make the installer as small as possible.
-;SetCompressor lzma
+# Make the installer as small as possible.
+#SetCompressor lzma
-;--------------------------------
-; You should need to change only these macros...
+#--------------------------------
+# You should need to change only these macros...
!define INSTALLER_VERSION "Complete"
!define INSTALLER2_VERSION "Small"
!define INSTALLER3_VERSION "Update"
-; load the settings
+# load the settings
!include "Settings.nsh"
-;--------------------------------
-; variables only used in this installer version
+#--------------------------------
+# variables only used in this installer version
Var DelPythonFiles
Var GhostscriptPath
Var MiKTeXPath
Var InstallGSview
Var InstallJabRef
-; Variables used by all installer versions
+# Variables used by all installer versions
Var AspellInstallYes
Var AspellBaseReg
Var AspellMessage
Var UserList
Var UserName
-;--------------------------------
-; load some NSIS libraries
+#--------------------------------
+# load some NSIS libraries
!include "MUI.nsh"
!include "LogicLib.nsh"
!include "FileFunc.nsh"
!include "WordFunc.nsh"
!insertmacro WordReplace
-; Set of various macros and functions
+# Set of various macros and functions
!include "LyXUtils.nsh"
-; Functions to check and configure the LaTeX-system
+# Functions to check and configure the LaTeX-system
!include "LaTeX.nsh"
-; Function to check if needed programs are missing or not
+# Function to check if needed programs are missing or not
!include "MissingPrograms.nsh"
-; Functions for page to set installer language
-; and LyX's menu language
+# Functions for page to set installer language
+# and LyX's menu language
!include "LanguageSettings.nsh"
-; Function to configure LyX
+# Function to configure LyX
!include "ConfigLyX.nsh"
-; Function for page to install Aspell dictionaries
+# Function for page to install Aspell dictionaries
!include "Aspell.nsh"
-;--------------------------------
-; Remember the installer language
+#--------------------------------
+# Remember the installer language
!define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
!define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
!define MUI_UNICON "${PRODUCT_DIR}\icons\lyx.ico"
!define MUI_WELCOMEFINISHPAGE_BITMAP "${VERSION_BITMAP}"
-; Welcome page
+# Welcome page
!define MUI_WELCOMEPAGE_TEXT "$(WelcomePageText)"
!insertmacro MUI_PAGE_WELCOME
-; Show the license.
+# Show the license.
!insertmacro MUI_PAGE_LICENSE "${PRODUCT_LICENSE_FILE}"
-; Specify the installation directory.
+# Specify the installation directory.
!insertmacro MUI_PAGE_DIRECTORY
-; Specify LyX's menu language.
+# Specify LyX's menu language.
Page custom SelectMenuLanguage SelectMenuLanguage_LeaveFunction
-; Define which components to install.
+# Define which components to install.
!insertmacro MUI_PAGE_COMPONENTS
-; Specify where to install program shortcuts.
+# Specify where to install program shortcuts.
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "${PRODUCT_ROOT_KEY}"
!define MUI_STARTMENUPAGE_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
!define MUI_STARTMENUPAGE_DEFAULTFOLDER "LyX ${PRODUCT_VERSION}"
!insertmacro MUI_PAGE_STARTMENU ${PRODUCT_NAME} $StartmenuFolder
-; Check for needed programs
+# Check for needed programs
Page custom MissingProgramsPage MissingProgramsPage_LeaveFunction
-; Watch the components being installed.
+# Watch the components being installed.
!insertmacro MUI_PAGE_INSTFILES
-; Finish page
+# Finish page
!define MUI_FINISHPAGE_RUN
!define MUI_FINISHPAGE_TEXT "$(FinishPageMessage)"
!define MUI_FINISHPAGE_RUN_TEXT "$(FinishPageRun)"
!define MUI_FINISHPAGE_RUN_FUNCTION "LaunchProduct"
!insertmacro MUI_PAGE_FINISH
-; The uninstaller.
+# The uninstaller.
!insertmacro MUI_UNPAGE_COMPONENTS
!insertmacro MUI_UNPAGE_INSTFILES
-;--------------------------------
-; Languages
+#--------------------------------
+# Languages
-!insertmacro MUI_LANGUAGE "English" ; first language is the default language
+!insertmacro MUI_LANGUAGE "English" # first language is the default language
!insertmacro MUI_LANGUAGE "Danish"
!insertmacro MUI_LANGUAGE "Dutch"
!insertmacro MUI_LANGUAGE "French"
LicenseData "$(LyXLicenseData)"
-;--------------------------------
-; Reserve Files
+#--------------------------------
+# Reserve Files
-; These files are inserted before other files in the data block
+# These files are inserted before other files in the data block
!insertmacro MUI_RESERVEFILE_LANGDLL
ReserveFile "io_ui_language.ini"
!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
-;--------------------------------
-; Installer sections
+#--------------------------------
+# Installer sections
Section "!${PRODUCT_NAME}" SecCore
SectionIn RO
StrCpy $InstallJabRef "true"
SectionEnd
-; Section descriptions
+# Section descriptions
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SecCore} "$(SecCoreDescription)"
!insertmacro MUI_DESCRIPTION_TEXT ${SecAllUsers} "$(SecAllUsersDescription)"
!insertmacro MUI_DESCRIPTION_TEXT ${SecInstJabRef} "$(SecInstJabRefDescription)"
!insertmacro MUI_FUNCTION_DESCRIPTION_END
-; the installation section
+# the installation section
!include "InstallActions-complete.nsh"
-;--------------------------------
-; This hook function is called internally by NSIS on installer startup
+#--------------------------------
+# This hook function is called internally by NSIS on installer startup
Function .onInit
- ; set the installer language to the Windows locale language
+ # set the installer language to the Windows locale language
System::Call "kernel32::GetUserDefaultLangID()i.a"
- ; check that the installer is not currently running
+ # check that the installer is not currently running
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "${INSTALLER_EXE}.Instance") i .r1 ?e'
Pop $R0
${if} $R0 != "0"
Abort
${endif}
- ; check if LyX is already installed
+ # check if LyX is already installed
ReadRegStr $0 HKLM "${PRODUCT_UNINST_KEY}" "Publisher"
${if} $0 != ""
MessageBox MB_OK|MB_ICONSTOP "$(StillInstalled)"
Abort
${endif}
- ; default settings
- ; these can be reset to "all" in section SecAllUsers
+ # default settings
+ # these can be reset to "all" in section SecAllUsers
SetShellVarContext current
StrCpy $ProductRootKey "HKCU"
- ; this can be reset to "true" in section SecDesktop
+ # this can be reset to "true" in section SecDesktop
StrCpy $CreateDesktopIcon "false"
StrCpy $CreateFileAssociations "false"
- ; if the user does *not* have administrator privileges, abort
+ # if the user does *not* have administrator privileges, abort
StrCpy $Answer ""
StrCpy $UserName ""
- !insertmacro IsUserAdmin $Answer $UserName ; macro from LyXUtils.nsh
+ !insertmacro IsUserAdmin $Answer $UserName # macro from LyXUtils.nsh
${if} $Answer == "yes"
!define ENABLE 0x00000001
SectionGetFlags ${SecAllUsers} $0
Abort
${endif}
- ; check the LaTeX-system
- Call LaTeXActions ; Function from LaTeX.nsh
+ # check the LaTeX-system
+ Call LaTeXActions # Function from LaTeX.nsh
- ; check which programs are installed or not
- Call MissingPrograms ; function from MissingPrograms.nsh
+ # check which programs are installed or not
+ Call MissingPrograms # function from MissingPrograms.nsh
- ; don't let the installer sections appear when the programs are already installed
+ # don't let the installer sections appear when the programs are already installed
${if} $PSVPath != ""
- SectionSetText 4 "" ; hides the corresponding uninstaller section, ${SecInstGSview}
+ SectionSetText 4 "" # hides the corresponding uninstaller section, ${SecInstGSview}
${endif}
${if} $BibTeXEditorPath != ""
- SectionSetText 5 "" ; hides the corresponding uninstaller section, ${SecInstJabRef}
+ SectionSetText 5 "" # hides the corresponding uninstaller section, ${SecInstJabRef}
${endif}
ClearErrors
FunctionEnd
-;--------------------------------
+#--------------------------------
Function LaunchProduct
Exec ${PRODUCT_BAT}
FunctionEnd
-;--------------------------------
-; The Uninstaller
+#--------------------------------
+# The Uninstaller
!include "Uninstall.nsh"
-; eof
+# eof
-; Lyx for Windows, NSIS v2 series installer script
+# Lyx for Windows, NSIS v2 series installer script
-; File LyXInstaller-small.nsi
-; This file is part of LyX, the document processor.
-; http://www.lyx.org/
-; Licence details can be found in the file COPYING or copy at
-; http://www.lyx.org/about/license.php3
+# File LyXInstaller-small.nsi
+# This file is part of LyX, the document processor.
+# http://www.lyx.org/
+# Licence details can be found in the file COPYING or copy at
+# http://www.lyx.org/about/license.php3
-; Author Uwe Stöhr based on the work of Angus Leeming and Joost Verburg
-; Full author contact details are available in file CREDITS or copy at
-; http://www.lyx.org/about/credits.php
+# Author Uwe Stöhr based on the work of Angus Leeming and Joost Verburg
+# Full author contact details are available in file CREDITS or copy at
+# http://www.lyx.org/about/credits.php
-; This script requires NSIS 2.25 and newer
-; http://nsis.sourceforge.net/
-;--------------------------------
+# This script requires NSIS 2.25 and newer
+# http://nsis.sourceforge.net/
+#--------------------------------
-; Do a Cyclic Redundancy Check to make sure the installer
-; was not corrupted by the download.
+# Do a Cyclic Redundancy Check to make sure the installer
+# was not corrupted by the download.
CRCCheck force
-; Make the installer as small as possible.
-;SetCompressor lzma
+# Make the installer as small as possible.
+#SetCompressor lzma
-;--------------------------------
-; You should need to change only these macros...
+#--------------------------------
+# You should need to change only these macros...
!define INSTALLER_VERSION "Small"
!define INSTALLER2_VERSION "Complete"
!define INSTALLER3_VERSION "Update"
-; load the settings
+# load the settings
!include "Settings.nsh"
-;--------------------------------
-; variables only used in this installer version
+#--------------------------------
+# variables only used in this installer version
Var DelPythonFiles
Var GhostscriptPath
Var MiKTeXVersion
Var MiKTeXUser
Var State
-; Variables used by all installer versions
+# Variables used by all installer versions
Var AspellInstallYes
Var AspellBaseReg
Var AspellMessage
Var UserList
Var UserName
-;--------------------------------
-; load some NSIS libraries
+#--------------------------------
+# load some NSIS libraries
!include "MUI.nsh"
!include "LogicLib.nsh"
!include "FileFunc.nsh"
!include "WordFunc.nsh"
!insertmacro WordReplace
-; Set of various macros and functions
+# Set of various macros and functions
!include "LyXUtils.nsh"
-; Functions to check and configure the LaTeX-system
+# Functions to check and configure the LaTeX-system
!include "LaTeX.nsh"
-; Function to check if needed programs are missing or not
+# Function to check if needed programs are missing or not
!include "MissingPrograms.nsh"
-; Function for page to manually select LaTeX's installation folder
+# Function for page to manually select LaTeX's installation folder
!include "LaTeXFolder.nsh"
-; Functions for page to set installer language
-; and LyX's menu language
+# Functions for page to set installer language
+# and LyX's menu language
!include "LanguageSettings.nsh"
-; Function to configure LyX
+# Function to configure LyX
!include "ConfigLyX.nsh"
-; Function for page to install Aspell dictionaries
+# Function for page to install Aspell dictionaries
!include "Aspell.nsh"
-;--------------------------------
-; Remember the installer language
+#--------------------------------
+# Remember the installer language
!define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
!define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
!define MUI_UNICON "${PRODUCT_DIR}\icons\lyx.ico"
!define MUI_WELCOMEFINISHPAGE_BITMAP "${VERSION_BITMAP}"
-; Welcome page
+# Welcome page
!define MUI_WELCOMEPAGE_TEXT "$(WelcomePageText)"
!insertmacro MUI_PAGE_WELCOME
-; Show the license.
+# Show the license.
!insertmacro MUI_PAGE_LICENSE "${PRODUCT_LICENSE_FILE}"
-; Specify the installation directory.
+# Specify the installation directory.
!insertmacro MUI_PAGE_DIRECTORY
-; Specify LyX's menu language.
+# Specify LyX's menu language.
Page custom SelectMenuLanguage SelectMenuLanguage_LeaveFunction
-; Define which components to install.
+# Define which components to install.
!insertmacro MUI_PAGE_COMPONENTS
-; Specify where to install program shortcuts.
+# Specify where to install program shortcuts.
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "${PRODUCT_ROOT_KEY}"
!define MUI_STARTMENUPAGE_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
!define MUI_STARTMENUPAGE_DEFAULTFOLDER "LyX ${PRODUCT_VERSION}"
!insertmacro MUI_PAGE_STARTMENU ${PRODUCT_NAME} $StartmenuFolder
-; Select latex.exe manually
+# Select latex.exe manually
Page custom LatexFolder LatexFolder_LeaveFunction
-; Check for needed programs
+# Check for needed programs
Page custom MissingProgramsPage MissingProgramsPage_LeaveFunction
-; Watch the components being installed.
+# Watch the components being installed.
!insertmacro MUI_PAGE_INSTFILES
-; Finish page
+# Finish page
!define MUI_FINISHPAGE_RUN
!define MUI_FINISHPAGE_TEXT "$(FinishPageMessage)"
!define MUI_FINISHPAGE_RUN_TEXT "$(FinishPageRun)"
!define MUI_FINISHPAGE_RUN_FUNCTION "LaunchProduct"
!insertmacro MUI_PAGE_FINISH
-; The uninstaller.
+# The uninstaller.
!insertmacro MUI_UNPAGE_COMPONENTS
!insertmacro MUI_UNPAGE_INSTFILES
-;--------------------------------
-; Languages
+#--------------------------------
+# Languages
-!insertmacro MUI_LANGUAGE "English" ; first language is the default language
+!insertmacro MUI_LANGUAGE "English" # first language is the default language
!insertmacro MUI_LANGUAGE "Danish"
!insertmacro MUI_LANGUAGE "Dutch"
!insertmacro MUI_LANGUAGE "French"
LicenseData "$(LyXLicenseData)"
-;--------------------------------
-; Reserve Files
+#--------------------------------
+# Reserve Files
-; These files are inserted before other files in the data block
+# These files are inserted before other files in the data block
!insertmacro MUI_RESERVEFILE_LANGDLL
ReserveFile "io_ui_language.ini"
!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
-;--------------------------------
-; Installer sections
+#--------------------------------
+# Installer sections
Section "!${PRODUCT_NAME}" SecCore
SectionIn RO
StrCpy $CreateDesktopIcon "true"
SectionEnd
-; Section descriptions
+# Section descriptions
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SecCore} "$(SecCoreDescription)"
!insertmacro MUI_DESCRIPTION_TEXT ${SecAllUsers} "$(SecAllUsersDescription)"
!insertmacro MUI_DESCRIPTION_TEXT ${SecDesktop} "$(SecDesktopDescription)"
!insertmacro MUI_FUNCTION_DESCRIPTION_END
-; the installation section
+# the installation section
!include "InstallActions-small.nsh"
-;--------------------------------
-; This hook function is called internally by NSIS on installer startup
+#--------------------------------
+# This hook function is called internally by NSIS on installer startup
Function .onInit
- ; set the installer language to the Windows locale language
+ # set the installer language to the Windows locale language
System::Call "kernel32::GetUserDefaultLangID()i.a"
- ; check that the installer is not currently running
+ # check that the installer is not currently running
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "${INSTALLER_EXE}.Instance") i .r1 ?e'
Pop $R0
${if} $R0 != "0"
Abort
${endif}
- ; check if LyX is already installed
+ # check if LyX is already installed
ReadRegStr $0 HKLM "${PRODUCT_UNINST_KEY}" "Publisher"
${if} $0 != ""
MessageBox MB_OK|MB_ICONSTOP "$(StillInstalled)"
Abort
${endif}
- ; default settings
- ; these can be reset to "all" in section SecAllUsers
+ # default settings
+ # these can be reset to "all" in section SecAllUsers
SetShellVarContext current
StrCpy $ProductRootKey "HKCU"
- ; this can be reset to "true" in section SecDesktop
+ # this can be reset to "true" in section SecDesktop
StrCpy $CreateDesktopIcon "false"
StrCpy $CreateFileAssociations "false"
- ; if the user does *not* have administrator privileges, abort
+ # if the user does *not* have administrator privileges, abort
StrCpy $Answer ""
StrCpy $UserName ""
- !insertmacro IsUserAdmin $Answer $UserName ; macro from LyXUtils.nsh
+ !insertmacro IsUserAdmin $Answer $UserName # macro from LyXUtils.nsh
${if} $Answer == "yes"
!define ENABLE 0x00000001
SectionGetFlags ${SecAllUsers} $0
Abort
${endif}
- ; check the LaTeX-system
- Call LaTeXActions ; Function from LaTeX.nsh
+ # check the LaTeX-system
+ Call LaTeXActions # Function from LaTeX.nsh
- ; check which programs are installed or not
- Call MissingPrograms ; function from MissingPrograms.nsh
+ # check which programs are installed or not
+ Call MissingPrograms # function from MissingPrograms.nsh
- ; used later in the function LatexFolder
+ # used later in the function LatexFolder
StrCpy $State "0"
ClearErrors
FunctionEnd
-;--------------------------------
+#--------------------------------
Function LaunchProduct
Exec ${PRODUCT_BAT}
FunctionEnd
-;--------------------------------
-; The Uninstaller
+#--------------------------------
+# The Uninstaller
!include "Uninstall.nsh"
-; eof
+# eof
-; Lyx for Windows, NSIS v2 series installer script
+# Lyx for Windows, NSIS v2 series installer script
-; File LyXInstaller-update.nsi
-; This file is part of LyX, the document processor.
-; http://www.lyx.org/
-; Licence details can be found in the file COPYING or copy at
-; http://www.lyx.org/about/license.php3
+# File LyXInstaller-update.nsi
+# This file is part of LyX, the document processor.
+# http://www.lyx.org/
+# Licence details can be found in the file COPYING or copy at
+# http://www.lyx.org/about/license.php3
-; Author Uwe Stöhr
-; Full author contact details are available in file CREDITS or copy at
-; http://www.lyx.org/about/credits.php
+# Author Uwe Stöhr
+# Full author contact details are available in file CREDITS or copy at
+# http://www.lyx.org/about/credits.php
-; This script requires NSIS 2.25 and newer
-; http://nsis.sourceforge.net/
-;--------------------------------
+# This script requires NSIS 2.25 and newer
+# http://nsis.sourceforge.net/
+#--------------------------------
-; Do a Cyclic Redundancy Check to make sure the installer
-; was not corrupted by the download.
+# Do a Cyclic Redundancy Check to make sure the installer
+# was not corrupted by the download.
CRCCheck force
-; Make the installer as small as possible.
+# Make the installer as small as possible.
SetCompressor lzma
-;--------------------------------
-; You should need to change only these macros...
+#--------------------------------
+# You should need to change only these macros...
!define INSTALLER_VERSION "Update"
!define INSTALLER2_VERSION "Small"
!define INSTALLER3_VERSION "Complete"
-; load the settings
+# load the settings
!include "Settings.nsh"
-;--------------------------------
-; variables only used in this installer version
+#--------------------------------
+# variables only used in this installer version
Var INSTDIR_NEW
Var INSTDIR_OLD
-; Variables used by all installer versions
+# Variables used by all installer versions
Var AspellInstallYes
Var AspellBaseReg
Var AspellMessage
Var UserList
Var UserName
-;--------------------------------
-; load some NSIS libraries
+#--------------------------------
+# load some NSIS libraries
!include "MUI.nsh"
!include "LogicLib.nsh"
!include "FileFunc.nsh"
!include "WordFunc.nsh"
!insertmacro WordReplace
-; Set of various macros and functions
+# Set of various macros and functions
!include "LyXUtils.nsh"
-; list with modified files
+# list with modified files
!include "Updated.nsh"
-; list with deleted files
+# list with deleted files
!include "Deleted.nsh"
-; Function for page to install Aspell dictionaries
+# Function for page to install Aspell dictionaries
!include "Aspell.nsh"
-;--------------------------------
+#--------------------------------
-; Remember the installer language
+# Remember the installer language
!define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
!define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
!define MUI_UNICON "${PRODUCT_DIR}\icons\lyx.ico"
!define MUI_WELCOMEFINISHPAGE_BITMAP "${VERSION_BITMAP}"
-; Welcome page
+# Welcome page
!define MUI_WELCOMEPAGE_TEXT "$(WelcomePageText)"
!insertmacro MUI_PAGE_WELCOME
-; Show the license.
+# Show the license.
!insertmacro MUI_PAGE_LICENSE "${PRODUCT_LICENSE_FILE}"
-; Define which components to install.
+# Define which components to install.
!insertmacro MUI_PAGE_COMPONENTS
-; Specify where to install program shortcuts.
+# Specify where to install program shortcuts.
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "SHCTX"
!define MUI_STARTMENUPAGE_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
!define MUI_STARTMENUPAGE_DEFAULTFOLDER "LyX ${PRODUCT_VERSION}"
!insertmacro MUI_PAGE_STARTMENU ${PRODUCT_NAME} $StartmenuFolder
-; Watch the components being installed.
+# Watch the components being installed.
!insertmacro MUI_PAGE_INSTFILES
-; Finish page
+# Finish page
!define MUI_FINISHPAGE_RUN
!define MUI_FINISHPAGE_TEXT "$(FinishPageMessage)"
!define MUI_FINISHPAGE_RUN_TEXT "$(FinishPageRun)"
!define MUI_FINISHPAGE_RUN_FUNCTION "LaunchProduct"
!insertmacro MUI_PAGE_FINISH
-; The uninstaller.
+# The uninstaller.
!insertmacro MUI_UNPAGE_COMPONENTS
!insertmacro MUI_UNPAGE_INSTFILES
-;--------------------------------
-; Languages
+#--------------------------------
+# Languages
-!insertmacro MUI_LANGUAGE "English" ; first language is the default language
+!insertmacro MUI_LANGUAGE "English" # first language is the default language
!insertmacro MUI_LANGUAGE "Danish"
!insertmacro MUI_LANGUAGE "Dutch"
!insertmacro MUI_LANGUAGE "French"
LicenseData "$(LyXLicenseData)"
-;--------------------------------
-; Reserve Files
+#--------------------------------
+# Reserve Files
-; These files are inserted before other files in the data block
+# These files are inserted before other files in the data block
!insertmacro MUI_RESERVEFILE_LANGDLL
!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
-;--------------------------------
-; Installer sections
+#--------------------------------
+# Installer sections
Section "!${PRODUCT_NAME}" SecCore
SectionIn RO
StrCpy $CreateDesktopIcon "true"
SectionEnd
-; Section descriptions
+# Section descriptions
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SecCore} "$(SecCoreDescription)"
!insertmacro MUI_DESCRIPTION_TEXT ${SecDesktop} "$(SecDesktopDescription)"
!insertmacro MUI_FUNCTION_DESCRIPTION_END
-; the installation section
+# the installation section
!include "InstallActions-update.nsh"
-;--------------------------------
-; This hook function is called internally by NSIS on installer startup
+#--------------------------------
+# This hook function is called internally by NSIS on installer startup
Function .onInit
- ; Check that LyX is not currently running
+ # Check that LyX is not currently running
FindProcDLL::FindProc "lyx.exe"
${if} $R0 == "1"
MessageBox MB_OK|MB_ICONSTOP "$(UnInstallRunning)"
Abort
${endif}
- ; set the installer language to the Windows locale language
+ # set the installer language to the Windows locale language
System::Call "kernel32::GetUserDefaultLangID()i.a"
- ; Check that the installer is not currently running
+ # Check that the installer is not currently running
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "${INSTALLER_EXE}.Instance") i .r1 ?e'
Pop $R0
${if} $R0 != "0"
Abort
${endif}
- ; check where LyX is installed
+ # check where LyX is installed
ReadRegStr $0 HKLM "${PRODUCT_UNINST_KEY_OLD}" "DisplayIcon"
${if} $0 != ""
SetShellVarContext all
MessageBox MB_OK|MB_ICONSTOP "$(UpdateNotAllowed)"
Abort
${endif}
- ${endif} ; end if $0 == 0
- ${if} $0 != "" ; if it is found
+ ${endif} # end if $0 == 0
+ ${if} $0 != "" # if it is found
StrCpy $INSTDIR $0
- StrCpy $INSTDIR $INSTDIR -12 ; delete the string "\bin\lyx.exe" or "\bin\lyx.bat"
+ StrCpy $INSTDIR $INSTDIR -12 # delete the string "\bin\lyx.exe" or "\bin\lyx.bat"
${endif}
- ; abort if the user doesn't have administrator privileges but LyX was installed as admin
+ # abort if the user doesn't have administrator privileges but LyX was installed as admin
StrCpy $Answer ""
StrCpy $UserName ""
- !insertmacro IsUserAdmin $Answer $UserName ; macro from LyXUtils.nsh
+ !insertmacro IsUserAdmin $Answer $UserName # macro from LyXUtils.nsh
${if} $Answer != "yes"
${andif} $ProductRootKey == "HKLM"
MessageBox MB_OK|MB_ICONSTOP "$(NotAdmin)"
Abort
${endif}
- ; This can be reset to "true" in section SecDesktop.
+ # This can be reset to "true" in section SecDesktop.
StrCpy $CreateDesktopIcon "false"
ClearErrors
FunctionEnd
-;--------------------------------
+#--------------------------------
Function LaunchProduct
Exec ${PRODUCT_BAT}
FunctionEnd
-;--------------------------------
-; The Uninstaller
+#--------------------------------
+# The Uninstaller
!include "Uninstall.nsh"
-; eof
+# eof
-; This script contains the following functions:
-;
-; - LaTeXCheck (check installed LaTeX-system), uses:
-; StrPointer
-; StrPoint
-; RevStrPointer
-; RevStrPoint
-;
-; - un.DelAppPathSub and UnAppPreSuff, (delete the folder ~\Documents and Settings\username\Application Data\LyX for all users), uses:
-; un.GetParentA
-; un.GetUsers
-; un.StrPoint
-; StrPointer
-; StrPoint
-; UnAppPreSuff
-;
-; - CreateAppPathSub and AppPreSuff, (creates the folder ~\Documents and Settings\username\Application Data\LyX for all users), uses:
-; GetParentA
-; GetUsers
-; StrPointer
-; StrPoint
-; UnAppPreSuff
-;
-; - CheckAppPathPreferences (replaces the old install folder name with the new one in the preferences files)
-; (used by Update installer), uses:
-; ReplaceLineContent
-;
-; - IsUserAdmin (checks if user is admin)
-;
-; - FileCheck (checks if a given file exists)
-;
-;--------------------------
+# This script contains the following functions:
+#
+# - LaTeXCheck (check installed LaTeX-system), uses:
+# StrPointer
+# StrPoint
+# RevStrPointer
+# RevStrPoint
+#
+# - un.DelAppPathSub and UnAppPreSuff, (delete the folder ~\Documents and Settings\username\Application Data\LyX for all users), uses:
+# un.GetParentA
+# un.GetUsers
+# un.StrPoint
+# StrPointer
+# StrPoint
+# UnAppPreSuff
+#
+# - CreateAppPathSub and AppPreSuff, (creates the folder ~\Documents and Settings\username\Application Data\LyX for all users), uses:
+# GetParentA
+# GetUsers
+# StrPointer
+# StrPoint
+# UnAppPreSuff
+#
+# - CheckAppPathPreferences (replaces the old install folder name with the new one in the preferences files)
+# (used by Update installer), uses:
+# ReplaceLineContent
+#
+# - IsUserAdmin (checks if user is admin)
+#
+# - FileCheck (checks if a given file exists)
+#
+#--------------------------
!macro StrPointer FindStr SearchStr Pointer
- ; searches for a string/character (SearchStr) in another string (FindStr)
- ; and returns the number of the character in the FindStr where the SearchStr was found (Pointer)
- ; if nothing was found or the search is impossible the Pointer is set to -1
+ # searches for a string/character (SearchStr) in another string (FindStr)
+ # and returns the number of the character in the FindStr where the SearchStr was found (Pointer)
+ # if nothing was found or the search is impossible the Pointer is set to -1
StrLen $R2 ${SearchStr}
StrLen $R4 ${FindStr}
!macroend
-;--------------------------------
+#--------------------------------
Function StrPoint
!insertmacro StrPointer $String $Search $Pointer
FunctionEnd
-;--------------------------------
+#--------------------------------
!macro RevStrPointer FindStr SearchStr Pointer
- ; searches for a string/character (SearchStr) in another string (FindStr) in reverse order
- ; and returns the number of the character in the FindStr where the SearchStr was found (Pointer)
- ; if nothing was found or the search is impossible the Pointer is set to +1
+ # searches for a string/character (SearchStr) in another string (FindStr) in reverse order
+ # and returns the number of the character in the FindStr where the SearchStr was found (Pointer)
+ # if nothing was found or the search is impossible the Pointer is set to +1
StrLen $R2 ${SearchStr}
StrLen $R4 ${FindStr}
!macroend
-;--------------------------------
+#--------------------------------
Function RevStrPoint
!insertmacro RevStrPointer $String $Search $Pointer
FunctionEnd
-;--------------------------------
+#--------------------------------
!macro AppPreSuff AppPre AppSuff
- ; the APPDATA path has always the following structure:
- ; C:\Documents and Settings\username\Application Data
- ; this macro saves the "C:\Documents and Settings\" substring into the variable "AppPre"
- ; and the "Application Data" substring into the variable "AppSuff"
+ # the APPDATA path has always the following structure:
+ # C:\Documents and Settings\username\Application Data
+ # this macro saves the "C:\Documents and Settings\" substring into the variable "AppPre"
+ # and the "Application Data" substring into the variable "AppSuff"
StrCpy $String "$APPDATA"
StrCpy $Search "\"
- Call StrPoint ; search for the first "\"
- IntOp $Pointer $Pointer + 1 ; jump after the "\"
- StrCpy $String $String "" $Pointer ; cut off the part before the first "\"
+ Call StrPoint # search for the first "\"
+ IntOp $Pointer $Pointer + 1 # jump after the "\"
+ StrCpy $String $String "" $Pointer # cut off the part before the first "\"
StrCpy $0 $Pointer
- Call StrPoint ; search for the second "\"
- IntOp $0 $0 + $Pointer ; $0 is now the pointer to the second "\" in the APPDATA string
- StrCpy ${AppPre} $APPDATA $0 ; save the part before the second "\"
- IntOp $Pointer $Pointer + 1 ; jump after the "\"
- StrCpy $String $String "" $Pointer ; cut off the part before the second "\"
- Call StrPoint ; search for the third "\"
- IntOp $Pointer $Pointer + 1 ; jump after the "\"
- StrCpy ${AppSuff} $String "" $Pointer ; save the part after the third "\"
+ Call StrPoint # search for the second "\"
+ IntOp $0 $0 + $Pointer # $0 is now the pointer to the second "\" in the APPDATA string
+ StrCpy ${AppPre} $APPDATA $0 # save the part before the second "\"
+ IntOp $Pointer $Pointer + 1 # jump after the "\"
+ StrCpy $String $String "" $Pointer # cut off the part before the second "\"
+ Call StrPoint # search for the third "\"
+ IntOp $Pointer $Pointer + 1 # jump after the "\"
+ StrCpy ${AppSuff} $String "" $Pointer # save the part after the third "\"
!macroend
-;--------------------------------
+#--------------------------------
Function GetParentA
- ; deletes a subfolder of the APPDATA path for all users
- ; used by the function "un.getUsers"
+ # deletes a subfolder of the APPDATA path for all users
+ # used by the function "un.getUsers"
Exch $R0
Push $R1
FunctionEnd
-;--------------------------------
+#--------------------------------
Function GetUsers
- ; reads the subfolders of the "Documents and Settings" folder to get a list of the users
+ # reads the subfolders of the "Documents and Settings" folder to get a list of the users
StrCpy $R3 ""
Push "$PROFILE"
FunctionEnd
-;--------------------------------
+#--------------------------------
Function un.GetParentA
- ; deletes a subfolder of the APPDATA path for all users
- ; used by the function "un.getUsers"
+ # deletes a subfolder of the APPDATA path for all users
+ # used by the function "un.getUsers"
Exch $R0
Push $R1
FunctionEnd
-;--------------------------------
+#--------------------------------
Function un.GetUsers
- ; reads the subfolders of the "Documents and Settings" folder to get a list of the users
+ # reads the subfolders of the "Documents and Settings" folder to get a list of the users
StrCpy $R3 ""
Push "$PROFILE"
FunctionEnd
-;--------------------------------
+#--------------------------------
Function un.StrPoint
!insertmacro StrPointer $String $Search $Pointer
FunctionEnd
-;--------------------------------
+#--------------------------------
!macro UnAppPreSuff AppPre AppSuff
- ; the APPDATA path has always the following structure:
- ; C:\Documents and Settings\username\Application Data
- ; this macro saves the "C:\Documents and Settings\" substring into the variable "AppPre"
- ; and the "Application Data" substring into the variable "AppSuff"
+ # the APPDATA path has always the following structure:
+ # C:\Documents and Settings\username\Application Data
+ # this macro saves the "C:\Documents and Settings\" substring into the variable "AppPre"
+ # and the "Application Data" substring into the variable "AppSuff"
StrCpy $String "$APPDATA"
StrCpy $Search "\"
- Call un.StrPoint ; search for the first "\"
- IntOp $Pointer $Pointer + 1 ; jump after the "\"
- StrCpy $String $String "" $Pointer ; cut off the part before the first "\"
+ Call un.StrPoint # search for the first "\"
+ IntOp $Pointer $Pointer + 1 # jump after the "\"
+ StrCpy $String $String "" $Pointer # cut off the part before the first "\"
StrCpy $0 $Pointer
- Call un.StrPoint ; search for the second "\"
- IntOp $0 $0 + $Pointer ; $0 is now the pointer to the second "\" in the APPDATA string
- StrCpy ${AppPre} $APPDATA $0 ; save the part before the second "\"
- IntOp $Pointer $Pointer + 1 ; jump after the "\"
- StrCpy $String $String "" $Pointer ; cut off the part before the second "\"
- Call un.StrPoint ; search for the third "\"
- IntOp $Pointer $Pointer + 1 ; jump after the "\"
- StrCpy ${AppSuff} $String "" $Pointer ; save the part after the third "\"
+ Call un.StrPoint # search for the second "\"
+ IntOp $0 $0 + $Pointer # $0 is now the pointer to the second "\" in the APPDATA string
+ StrCpy ${AppPre} $APPDATA $0 # save the part before the second "\"
+ IntOp $Pointer $Pointer + 1 # jump after the "\"
+ StrCpy $String $String "" $Pointer # cut off the part before the second "\"
+ Call un.StrPoint # search for the third "\"
+ IntOp $Pointer $Pointer + 1 # jump after the "\"
+ StrCpy ${AppSuff} $String "" $Pointer # save the part after the third "\"
!macroend
-;--------------------------------
+#--------------------------------
Function un.DelAppPathSub
- ; deletes a subfolder of the APPDATA path for all users
+ # deletes a subfolder of the APPDATA path for all users
- ; get list of all users
+ # get list of all users
Push $R0
Push $R1
Push $R2
Push $R3
Call un.GetUsers
- StrCpy $UserList $R3 "" 1 ; cut off the "|" at the end of the list
+ StrCpy $UserList $R3 "" 1 # cut off the "|" at the end of the list
Pop $R3
Pop $R2
Pop $R1
Pop $R0
- ; the usernames in the list of all users is separated by "|"
+ # the usernames in the list of all users is separated by "|"
loop:
StrCpy $String "$UserList"
StrCpy $Search "|"
- Call un.StrPoint ; search for the "|"
+ Call un.StrPoint # search for the "|"
StrCmp $Pointer "-1" ready
- StrCpy $0 $UserList $Pointer ; $0 contains now the username
- IntOp $Pointer $Pointer + 1 ; jump after the "|"
- StrCpy $UserList $UserList "" $Pointer ; cut off the first username in the list
- ; generate the string for the current user
- ; AppPre and AppSuff are generated in the macro "AppPreSuff"
+ StrCpy $0 $UserList $Pointer # $0 contains now the username
+ IntOp $Pointer $Pointer + 1 # jump after the "|"
+ StrCpy $UserList $UserList "" $Pointer # cut off the first username in the list
+ # generate the string for the current user
+ # AppPre and AppSuff are generated in the macro "AppPreSuff"
StrCpy $AppPath "$AppPre\$0\$AppSuff\${PRODUCT_SUBFOLDER}"
- RMDir /r $AppPath ; delete the folder
+ RMDir /r $AppPath # delete the folder
Goto loop
ready:
StrCpy $0 $UserList
StrCpy $AppPath "$AppPre\$0\$AppSuff\${PRODUCT_SUBFOLDER}"
- RMDir /r $AppPath ; delete the folder
+ RMDir /r $AppPath # delete the folder
FunctionEnd
-;--------------------------------
+#--------------------------------
Function CreateAppPathSub
- ; creates a subfolder of the APPDATA path for all users
+ # creates a subfolder of the APPDATA path for all users
- ; get folder names
+ # get folder names
!insertmacro AppPreSuff $AppPre $AppSuff
- ; get list of all users
+ # get list of all users
Push $R0
Push $R1
Push $R2
Push $R3
Call GetUsers
- StrCpy $UserList $R3 "" 1 ; cut off the "|" at the end of the list
+ StrCpy $UserList $R3 "" 1 # cut off the "|" at the end of the list
Pop $R3
Pop $R2
Pop $R1
Pop $R0
- ; the usernames in the list of all users is separated by "|"
+ # the usernames in the list of all users is separated by "|"
loop:
StrCpy $String "$UserList"
StrCpy $Search "|"
- Call StrPoint ; search for the "|"
- StrCmp $Pointer "-1" ready ; the loop is finished when no "|" could be found
- StrCpy $0 $UserList $Pointer ; $0 contains now the username
- IntOp $Pointer $Pointer + 1 ; jump after the "|"
- StrCpy $UserList $UserList "" $Pointer ; cut off the first username in the list
- ; generate the string for the current user
- ; AppPre and AppSuff are generated in the macro "AppPreSuff"
+ Call StrPoint # search for the "|"
+ StrCmp $Pointer "-1" ready # the loop is finished when no "|" could be found
+ StrCpy $0 $UserList $Pointer # $0 contains now the username
+ IntOp $Pointer $Pointer + 1 # jump after the "|"
+ StrCpy $UserList $UserList "" $Pointer # cut off the first username in the list
+ # generate the string for the current user
+ # AppPre and AppSuff are generated in the macro "AppPreSuff"
StrCpy $AppPath "$AppPre\$0\$AppSuff\${PRODUCT_SUBFOLDER}"
- CreateDirectory $AppPath ; create the folder
+ CreateDirectory $AppPath # create the folder
CopyFiles "$INSTDIR\Resources\session" "$AppPath"
Goto loop
ready:
- ; now do the same for the last user name
+ # now do the same for the last user name
StrCpy $0 $UserList
StrCpy $AppPath "$AppPre\$0\$AppSuff\${PRODUCT_SUBFOLDER}"
- CreateDirectory $AppPath ; create the folder
+ CreateDirectory $AppPath # create the folder
CopyFiles "$INSTDIR\Resources\session" "$AppPath"
- Delete "$INSTDIR\Resources\session" ; delete the session file in the INSTDIR because it is unneeded there
+ Delete "$INSTDIR\Resources\session" # delete the session file in the INSTDIR because it is unneeded there
FunctionEnd
-;--------------------------------
+#--------------------------------
Function ReplaceLineContent
- ; replaces "$OldString" with "LyX $NewString"
+ # replaces "$OldString" with "LyX $NewString"
- ${WordReplace} '$R9' "$OldString" "$NewString" "+" '$R9' ; macro from WordFunc.nsh
+ ${WordReplace} '$R9' "$OldString" "$NewString" "+" '$R9' # macro from WordFunc.nsh
Push $0
FunctionEnd
-;--------------------------------
+#--------------------------------
Function CheckAppPathPreferences
- ; replaces a string "$OldString" with "$NewString" in a file "$FileName"
+ # replaces a string "$OldString" with "$NewString" in a file "$FileName"
- ; get folder names
+ # get folder names
!insertmacro AppPreSuff $AppPre $AppSuff
- ; get list of all users
+ # get list of all users
Push $R0
Push $R1
Push $R2
Push $R3
Call GetUsers
- StrCpy $UserList $R3 "" 1 ; cut off the "|" at the end of the list
+ StrCpy $UserList $R3 "" 1 # cut off the "|" at the end of the list
Pop $R3
Pop $R2
Pop $R1
Pop $R0
- ; the usernames in the list of all users is separated by "|"
+ # the usernames in the list of all users is separated by "|"
loopPrefs:
StrCpy $String "$UserList"
StrCpy $Search "|"
- Call StrPoint ; search for the "|"
- StrCmp $Pointer "-1" ready ; the loop is finished when no "|" could be found
- StrCpy $0 $UserList $Pointer ; $0 contains now the username
- IntOp $Pointer $Pointer + 1 ; jump after the "|"
- StrCpy $UserList $UserList "" $Pointer ; cut off the first username in the list
- ; generate the string for the current user
- ; AppPre and AppSuff are generated in the macro "AppPreSuff"
+ Call StrPoint # search for the "|"
+ StrCmp $Pointer "-1" ready # the loop is finished when no "|" could be found
+ StrCpy $0 $UserList $Pointer # $0 contains now the username
+ IntOp $Pointer $Pointer + 1 # jump after the "|"
+ StrCpy $UserList $UserList "" $Pointer # cut off the first username in the list
+ # generate the string for the current user
+ # AppPre and AppSuff are generated in the macro "AppPreSuff"
StrCpy $AppPath "$AppPre\$0\$AppSuff\${PRODUCT_SUBFOLDER}"
- ; read the preferences file to test if it exists
+ # read the preferences file to test if it exists
FileOpen $R1 "$AppPath\$FileName" r
IfErrors doneA
FileClose $R1
- ; search for "$OldString" and replace it with "$NewString"
- ${LineFind} "$AppPath\$FileName" "" "1:-1" "ReplaceLineContent" ; macro from TextFunc.nsh ; calls Function ReplaceLineContent
+ # search for "$OldString" and replace it with "$NewString"
+ ${LineFind} "$AppPath\$FileName" "" "1:-1" "ReplaceLineContent" # macro from TextFunc.nsh # calls Function ReplaceLineContent
doneA:
Goto loopPrefs
ready:
- ; now do the same for the last user name
+ # now do the same for the last user name
StrCpy $0 $UserList
StrCpy $AppPath "$AppPre\$0\$AppSuff\${PRODUCT_SUBFOLDER}"
FileOpen $R1 "$AppPath\$FileName" r
FunctionEnd
-;--------------------------------
+#--------------------------------
!macro IsUserAdmin Result Name
!macroend
-;--------------------------------
+#--------------------------------
!macro FileCheck Result FileName FilePath
- ; checks if a file exists, returns "True" or "False"
+ # checks if a file exists, returns "True" or "False"
Push $0
Push $1
!macroend
-;------------------------------------------
+#------------------------------------------
Function LaTeXCheck
- ; searches the string "$Search" in the string "$String" and extracts the path around it
- ; the extracted path is checked if the file "latex.exe" is in it
+ # searches the string "$Search" in the string "$String" and extracts the path around it
+ # the extracted path is checked if the file "latex.exe" is in it
StartCheck:
StrLen $3 $String
Call StrPoint
- ${if} $Pointer == "-1" ; if nothing was found
+ ${if} $Pointer == "-1" # if nothing was found
StrCpy $LatexPath ""
Return
${endif}
IntOp $3 $3 - $Pointer
- StrCpy $4 $String $3 "-$3" ; $4 is now the part behind the $Search string
- StrCpy $String $String $Pointer ; $String is now the part before the $Search string
- StrCpy $Search ":" ; search for the ":" after the first previous drive letter
+ StrCpy $4 $String $3 "-$3" # $4 is now the part behind the $Search string
+ StrCpy $String $String $Pointer # $String is now the part before the $Search string
+ StrCpy $Search ":" # search for the ":" after the first previous drive letter
Call RevStrPoint
- IntOp $Pointer $Pointer - 1 ; jump before the ":" to the drive letter
- StrCpy $Pointer $Pointer "" 1 ; cut of the "-" sign
+ IntOp $Pointer $Pointer - 1 # jump before the ":" to the drive letter
+ StrCpy $Pointer $Pointer "" 1 # cut of the "-" sign
StrCpy $LatexPath $String $Pointer "-$Pointer"
StrCpy $String $4
- StrCpy $Search ";" ; search for the following ";" that separates the different paths
+ StrCpy $Search ";" # search for the following ";" that separates the different paths
Call StrPoint
- ${if} $Pointer != "-1" ; if something was found
+ ${if} $Pointer != "-1" # if something was found
StrCpy $String $String $Pointer
${endif}
StrCpy $LatexPath "$LatexPath$String"
- ; check if the latex.exe exists in the $LatexPath folder
+ # check if the latex.exe exists in the $LatexPath folder
!insertmacro FileCheck $5 "latex.exe" "$LatexPath"
- ${if} $5 == "False" ; delete the entry with the wrong path to the latex.exe and try again
+ ${if} $5 == "False" # delete the entry with the wrong path to the latex.exe and try again
StrCpy $LatexPath ""
StrLen $3 $String
StrCpy $String $4 "" $3
Function MissingPrograms
- ; initialize variable, is later set to True when a program was not found
+ # initialize variable, is later set to True when a program was not found
StrCpy $MissedProg "False"
- ; test if Ghostscript is installed
+ # test if Ghostscript is installed
GSloop:
EnumRegKey $1 HKLM "Software\AFPL Ghostscript" 0
${if} $1 == ""
ReadRegStr $3 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\AFPL Ghostscript $1" "DisplayName"
StrCpy $0 "Software\AFPL Ghostscript\$1"
${endif}
- ${if} $3 == "" ; if nothing was found in the uninstall section
- ReadRegStr $3 HKLM "SOFTWARE\GPL Ghostscript" "OnlyWithLyX" ; check if Ghostscript was installed together with LyX
+ ${if} $3 == "" # if nothing was found in the uninstall section
+ ReadRegStr $3 HKLM "SOFTWARE\GPL Ghostscript" "OnlyWithLyX" # check if Ghostscript was installed together with LyX
${endif}
- ${if} $3 == "" ; if nothing was found in the uninstall section
+ ${if} $3 == "" # if nothing was found in the uninstall section
DeleteRegKey HKLM "$0"
goto GSloop
${else}
ReadRegStr $GhostscriptPath HKLM $0 "GS_DLL"
${if} $GhostscriptPath != ""
- StrCpy $GhostscriptPath "$GhostscriptPath" -12 ; remove ending "gsdll32.dll"
+ StrCpy $GhostscriptPath "$GhostscriptPath" -12 # remove ending "gsdll32.dll"
${else}
StrCpy $MissedProg "True"
${endif}
- ${endif} ; if $3
- ${else} ; if $1
+ ${endif} # if $3
+ ${else} # if $1
StrCpy $GhostscriptPath ""
StrCpy $MissedProg "True"
${endif}
- ; test if Imagemagick is installed
+ # test if Imagemagick is installed
ReadRegStr $ImageMagickPath HKLM "Software\ImageMagick\Current" "BinPath"
${if} $ImageMagickPath == ""
StrCpy $MissedProg "True"
${endif}
- ; test if Aiksaurus is installed
- !insertmacro FileCheck $5 "meanings.dat" "${AiksaurusDir}" ; macro from LyXUtils.nsh
+ # test if Aiksaurus is installed
+ !insertmacro FileCheck $5 "meanings.dat" "${AiksaurusDir}" # macro from LyXUtils.nsh
${if} $5 == "True"
StrCpy $AiksaurusPath "${AiksaurusDir}"
${endif}
-; ReadRegStr $AiksaurusPath HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "AIK_DATA_DIR"
+# ReadRegStr $AiksaurusPath HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "AIK_DATA_DIR"
- ; test if Aspell is installed
+ # test if Aspell is installed
StrCpy $5 ""
ReadRegStr $5 HKCU "SOFTWARE\Aspell" "Base Path"
${if} $5 == ""
ReadRegStr $5 HKLM "SOFTWARE\Aspell" "Base Path"
- StrCpy $AspellBaseReg "HKLM" ; used in the aspell installation section
+ StrCpy $AspellBaseReg "HKLM" # used in the aspell installation section
${else}
StrCpy $AspellBaseReg "HKCU"
${endif}
StrCpy $AspellPath "$5"
${endif}
- ; test if Python is installed
- ; only use an existing python when it is version 2.5 because many Compaq and Dell PC are delivered
- ; with outdated Python interpreters
+ # test if Python is installed
+ # only use an existing python when it is version 2.5 because many Compaq and Dell PC are delivered
+ # with outdated Python interpreters
ReadRegStr $PythonPath HKLM "Software\Python\PythonCore\2.5\InstallPath" ""
${if} $PythonPath != ""
- StrCpy $PythonPath $PythonPath -1 ; remove the "\" at the end
+ StrCpy $PythonPath $PythonPath -1 # remove the "\" at the end
StrCpy $DelPythonFiles "True"
${endif}
- ; test if Acrobat or Adobe Reader is used as PDF-viewer
+ # test if Acrobat or Adobe Reader is used as PDF-viewer
ReadRegStr $String HKCR ".pdf" ""
- ${if} $String != "AcroExch.Document" ; this name is only used by Acrobat and Adobe Reader
+ ${if} $String != "AcroExch.Document" # this name is only used by Acrobat and Adobe Reader
StrCpy $Acrobat "None"
${endif}
${if} $Acrobat != "None"
ReadRegStr $String HKCR "AcroExch.Document\shell\open\command" ""
- StrCpy $Search "8" ; search for Acrobat or Adobe Reader 8 because then PDFViewWin8.exe is needed to view PDF-files
- !insertmacro StrPointer $String $Search $Pointer ; macro from LyXUtils
- ${if} $Pointer == "-1" ; if nothing was found
+ StrCpy $Search "8" # search for Acrobat or Adobe Reader 8 because then PDFViewWin8.exe is needed to view PDF-files
+ !insertmacro StrPointer $String $Search $Pointer # macro from LyXUtils
+ ${if} $Pointer == "-1" # if nothing was found
StrCpy $Acrobat "7"
${else}
StrCpy $Acrobat "8"
${endif}
${endif}
- ; test if a PostScript-viewer is installed, only check for GSview32
+ # test if a PostScript-viewer is installed, only check for GSview32
StrCpy $PSVPath ""
ReadRegStr $PSVPath HKLM "Software\Microsoft\Windows\CurrentVersion\App Paths\gsview32.exe" "Path"
- ; test if an editor with syntax-highlighting for LaTeX-files is installed
+ # test if an editor with syntax-highlighting for LaTeX-files is installed
Call EditorCheck
- ; test if an image editor is installed (due to LyX's bug 2654 first check for GIMP)
+ # test if an image editor is installed (due to LyX's bug 2654 first check for GIMP)
StrCpy $ImageEditorPath ""
ReadRegStr $ImageEditorPath HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\WinGimp-2.0_is1" "DisplayIcon"
${if} $ImageEditorPath != ""
- StrCpy $ImageEditorPath "$ImageEditorPath" -13 ; delete "\gimp-2.x.exe"
+ StrCpy $ImageEditorPath "$ImageEditorPath" -13 # delete "\gimp-2.x.exe"
${endif}
- ; check for Photoshop
+ # check for Photoshop
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\App Paths\Photoshop.exe" "Path"
${if} $0 != ""
- StrCpy $0 "$0" -1 ; delete the last "\"
+ StrCpy $0 "$0" -1 # delete the last "\"
${if} $ImageEditorPath != ""
StrCpy $ImageEditorPath "$ImageEditorPath;$0"
${else}
${endif}
${endif}
- ; test if the BibTeX-editor JabRef is installed
+ # test if the BibTeX-editor JabRef is installed
StrCpy $BibTeXEditorPath ""
ReadRegStr $BibTeXEditorPath HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\JabRef 2.1" "UninstallString"
${if} $BibTeXEditorPath == ""
FunctionEnd
-; ---------------------------------------
+# ---------------------------------------
Function MissingProgramsPage
- ; generate the installer page - re-read empty page first
+ # generate the installer page - re-read empty page first
StrCpy $0 "2"
!insertmacro MUI_INSTALLOPTIONS_EXTRACT "io_missing_progs.ini"
!insertmacro MUI_HEADER_TEXT "$(MissProgHeader)" ""
FunctionEnd
-; ---------------------------------------
+# ---------------------------------------
Function MissingProgramsPage_LeaveFunction
- ; this function is needed for the installer page
+ # this function is needed for the installer page
FunctionEnd
-; ---------------------------------------
+# ---------------------------------------
Function EditorCheck
- ; test if an editor with syntax-highlighting for LaTeX-files is installed
- ; (check for jEdit, PSPad, WinShell, ConTEXT, Crimson Editor, Vim, TeXnicCenter, LaTeXEditor, WinEdt, LEd, WinTeX)
+ # test if an editor with syntax-highlighting for LaTeX-files is installed
+ # (check for jEdit, PSPad, WinShell, ConTEXT, Crimson Editor, Vim, TeXnicCenter, LaTeXEditor, WinEdt, LEd, WinTeX)
StrCpy $EditorPath ""
StrCpy $0 ""
- ; check for jEdit
+ # check for jEdit
ReadRegStr $EditorPath HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\jEdit_is1" "InstallLocation"
${if} $EditorPath != ""
- StrCpy $EditorPath $EditorPath -1 ; remove "\" from the end of the string
+ StrCpy $EditorPath $EditorPath -1 # remove "\" from the end of the string
${endif}
- ; check for PSPad
+ # check for PSPad
StrCpy $0 ""
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\PSPad editor_is1" "InstallLocation"
${if} $0 != ""
StrCpy $0 $0 -1
StrCpy $EditorPath "$EditorPath;$0"
${endif}
- ; check for WinShell
+ # check for WinShell
StrCpy $0 ""
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\WinShell_is1" "InstallLocation"
${if} $0 != ""
StrCpy $0 $0 -1
StrCpy $EditorPath "$EditorPath;$0"
${endif}
- ; check for ConTEXT
+ # check for ConTEXT
StrCpy $0 ""
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\ConTEXTEditor_is1" "InstallLocation"
${if} $0 != ""
StrCpy $0 $0 -1
StrCpy $EditorPath "$EditorPath;$0"
${endif}
- ; check for Crimson Editor
+ # check for Crimson Editor
StrCpy $0 ""
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Crimson Editor" "UninstallString"
${if} $0 != ""
- StrCpy $0 $0 -14 ; remove "\uninstall.exe"
+ StrCpy $0 $0 -14 # remove "\uninstall.exe"
StrCpy $EditorPath "$EditorPath;$0"
${endif}
- ; check for Vim 6.x
+ # check for Vim 6.x
StrCpy $0 ""
ReadRegStr $0 HKLM "Software\Classes\Applications\gvim.exe\shell\edit\command" ""
${if} $0 != ""
- StrCpy $0 $0 -13 ; remove "gvim.exe "%1""
+ StrCpy $0 $0 -13 # remove "gvim.exe "%1""
StrCpy $EditorPath "$EditorPath;$0"
${endif}
- ; check for Vim 7.0
+ # check for Vim 7.0
StrCpy $0 ""
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Vim 7.0" "UninstallString"
${if} $0 != ""
- StrCpy $0 $0 -18 ; remove "\uninstall-gui.exe"
+ StrCpy $0 $0 -18 # remove "\uninstall-gui.exe"
StrCpy $EditorPath "$EditorPath;$0"
${endif}
- ; check for TeXnicCenter
+ # check for TeXnicCenter
StrCpy $0 ""
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\TeXnicCenter_is1" "Inno Setup: App Path"
${if} $0 != ""
StrCpy $EditorPath "$EditorPath;$0"
${endif}
- ; check for LaTeXEditor
+ # check for LaTeXEditor
StrCpy $0 ""
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LaTeX Editor" "InstallLocation"
${if} $0 != ""
StrCpy $EditorPath "$EditorPath;$0"
${endif}
- ; check for WinEdt
+ # check for WinEdt
StrCpy $0 ""
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\WinEdt_is1" "InstallLocation"
${if} $0 != ""
StrCpy $0 $0 -1
StrCpy $EditorPath "$EditorPath;$0"
${endif}
- ; check for LEd
+ # check for LEd
StrCpy $0 ""
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LEd_is1" "InstallLocation"
${if} $0 != ""
StrCpy $0 $0 -1
StrCpy $EditorPath "$EditorPath;$0"
${endif}
- ; check for WinTeX
+ # check for WinTeX
StrCpy $0 ""
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\WinTeX XP" "DisplayIcon"
${if} $0 != ""
- StrCpy $0 $0 -11 ; remove "\wintex.exe"
+ StrCpy $0 $0 -11 # remove "\wintex.exe"
StrCpy $EditorPath "$EditorPath;$0"
${endif}
-; installer settings
-; You should need to change only these macros for new releases.
+# installer settings
+# You should need to change only these macros for new releases.
-!define PRODUCT_DIR "D:\LyXPackage1.5"
+!define PRODUCT_DIR "c:\lyx\LyXPackage"
!define PRODUCT_NAME "LyX"
!define PRODUCT_VERSION "1.5svn-02-05-2007"
!define PRODUCT_VERSION_SHORT "150svn"
BrandingText "LyXWinInstaller v3.14 - ${INSTALLER_VERSION}"
-; to check later if this installer version is running at the same time
+# to check later if this installer version is running at the same time
!define INSTALLER_EXE "LyXWin${PRODUCT_VERSION_SHORT}${INSTALLER_VERSION}-3-14.exe"
!define INSTALLER2_EXE "LyXWin${PRODUCT_VERSION_SHORT}${INSTALLER2_VERSION}-3-14.exe"
!define INSTALLER3_EXE "LyXWin${PRODUCT_VERSION_SHORT}${INSTALLER3_VERSION}-3-14.exe"
!define VERSION_BITMAP "${PRODUCT_DIR}\icons\lyx_logo_vert${PRODUCT_VERSION_SHORT}.bmp"
-; Replaced by HKLM or HKCU depending on SetShellVarContext.
+# Replaced by HKLM or HKCU depending on SetShellVarContext.
!define PRODUCT_ROOT_KEY "SHCTX"
; registry preparations
!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\lyx.exe"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\LyX${PRODUCT_VERSION_SHORT}"
-; definitions for the Update installer
+# definitions for the Update installer
!if ${INSTALLER_VERSION} == "Update"
!define PRODUCT_UNINST_KEY_OLD "Software\Microsoft\Windows\CurrentVersion\Uninstall\LyX150svn"
!define PRODUCT_VERSION_OLD "LyX 1.5beta2-21-04-2007"
!define MiKTeXDeliveredVersionOld "MiKTeX 2.5"
!endif
-; definitions for the Small installer
+# definitions for the Small installer
!if ${INSTALLER_VERSION} == "Small"
- !define JabRefVersion "none" ; dummy entry to avoid NSIS warnig
- !define MiKTeXDeliveredVersion "none" ; dummy entry to avoid NSIS warnig
+ !define JabRefVersion "none" # dummy entry to avoid NSIS warnig
+ !define MiKTeXDeliveredVersion "none" # dummy entry to avoid NSIS warnig
!endif
-; definitions for the Complete installer
+# definitions for the Complete installer
!if ${INSTALLER_VERSION} == "Complete"
!define GSviewInstall "external\gsv48w32.exe"
!define JabRefInstall "external\JabRef-2.2-Setup.exe"
!define ClassFileDir "${PRODUCT_SOURCEDIR}\Resources\tex"
!define ImageMagickVersion "6.3.3"
-; for some odd reason the ImageMagick folder may not be a subfolder of $INSTDIR\bin!
+# for some odd reason the ImageMagick folder may not be a subfolder of $INSTDIR\bin!
!define ImageMagickDir "$INSTDIR\etc\ImageMagick"
!define GhostscriptDir "$INSTDIR\etc\Ghostscript"
!define GhostscriptVersion "8.56"
!define AspellLocationExact "http://developer.berlios.de/project/showfiles.php?group_id=5117&release_id=9651"
!define AspellLocation "http://developer.berlios.de/projects/lyxwininstall/"
!define DVIPostFileDir "${PRODUCT_SOURCEDIR}\external\dvipost"
-; the following variable is needed for a possible CD-version
-;!define LaTeXPackagesDir "${PRODUCT_SOURCEDIR}\latex"
+# the following variable is needed for a possible CD-version
+#!define LaTeXPackagesDir "${PRODUCT_SOURCEDIR}\latex"
!define MiKTeXRepo "ftp://ftp.tu-chemnitz.de/pub/tex/systems/win32/miktex/tm/packages/"
!define MiKTeXConfigFolder "MiKTeX\2.5\miktex\config"
-;--------------------------------
-; make some of the information above available to NSIS.
+#--------------------------------
+# make some of the information above available to NSIS.
Name "${PRODUCT_NAME}"
OutFile "${INSTALLER_EXE}"
-; Uninstaller
+# Uninstaller
-; this function is called at first after starting the uninstaller
+# this function is called at first after starting the uninstaller
Function un.onInit
- ; Check that LyX is not currently running
+ # Check that LyX is not currently running
FindProcDLL::FindProc "lyx.exe"
${if} $R0 == "1"
MessageBox MB_OK|MB_ICONSTOP "$(UnInstallRunning)"
Abort
${endif}
- ; set registry root key
+ # set registry root key
StrCpy $Answer ""
- !insertmacro IsUserAdmin $Answer $UserName ; macro from LyXUtils.nsh
+ !insertmacro IsUserAdmin $Answer $UserName # macro from LyXUtils.nsh
${if} $Answer == "yes"
SetShellVarContext all
${else}
SetShellVarContext current
${endif}
- ; Ascertain whether the user has sufficient privileges to uninstall.
- ; abort when LyX was installed with admin permissions but the user doesn't have administrator privileges
+ # Ascertain whether the user has sufficient privileges to uninstall.
+ # abort when LyX was installed with admin permissions but the user doesn't have administrator privileges
ReadRegStr $0 HKLM "${PRODUCT_UNINST_KEY}" "RootKey"
${if} $0 != ""
${andif} $Answer != "yes"
MessageBox MB_OK|MB_ICONSTOP "$(UnNotAdminLabel)"
Abort
${endif}
- ; abort when LyX couldn't be found in the registry
- ${if} $0 == "" ; check in HKCU
+ # abort when LyX couldn't be found in the registry
+ ${if} $0 == "" # check in HKCU
ReadRegStr $0 HKCU "${PRODUCT_UNINST_KEY}" "RootKey"
${if} $0 == ""
MessageBox MB_OK|MB_ICONEXCLAMATION "$(UnNotInRegistryLabel)"
${endif}
${endif}
- ; Macro to investigate name of LyX's preferences folders to be able remove them
- !insertmacro UnAppPreSuff $AppPre $AppSuff ; macro from LyXUtils.nsh
+ # Macro to investigate name of LyX's preferences folders to be able remove them
+ !insertmacro UnAppPreSuff $AppPre $AppSuff # macro from LyXUtils.nsh
- ; test if Aspell was installed together with LyX
- ReadRegStr $0 SHCTX "Software\Aspell" "OnlyWithLyX" ; special entry to test if it was installed with LyX
+ # test if Aspell was installed together with LyX
+ ReadRegStr $0 SHCTX "Software\Aspell" "OnlyWithLyX" # special entry to test if it was installed with LyX
${if} $0 == "Yes${PRODUCT_VERSION_SHORT}"
- SectionSetText 2 "Aspell" ; names the corersponding uninstaller section (has the index "2" as it is the third section in Uninstall.nsh)
+ SectionSetText 2 "Aspell" # names the corersponding uninstaller section (has the index "2" as it is the third section in Uninstall.nsh)
StrCpy $AspellInstallYes "Aspell"
${else}
- SectionSetText 2 "" ; hides the corresponding uninstaller section
+ SectionSetText 2 "" # hides the corresponding uninstaller section
${endif}
- ; test if MiKTeX was installed together with LyX
+ # test if MiKTeX was installed together with LyX
ReadRegStr $0 HKLM "SOFTWARE\MiKTeX.org\MiKTeX" "OnlyWithLyX"
${if} $0 == "Yes${PRODUCT_VERSION_SHORT}"
- SectionSetText 3 "MiKTeX" ; names the corersponding uninstaller section
+ SectionSetText 3 "MiKTeX" # names the corersponding uninstaller section
StrCpy $MiKTeXInstalled "MiKTeX"
${else}
- SectionSetText 3 "" ; hides the corresponding uninstaller section
+ SectionSetText 3 "" # hides the corresponding uninstaller section
${endif}
- ; test if JabRef was installed together with LyX
+ # test if JabRef was installed together with LyX
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\$JabRefVersionVar" "OnlyWithLyX"
${if} $0 == "Yes${PRODUCT_VERSION_SHORT}"
- SectionSetText 4 "JabRef" ; names the corersponding uninstaller section
+ SectionSetText 4 "JabRef" # names the corersponding uninstaller section
StrCpy $JabRefInstalled "JabRef"
${else}
- SectionSetText 4 "" ; hides the corresponding uninstaller section
+ SectionSetText 4 "" # hides the corresponding uninstaller section
${endif}
- ; question message if the user really wants to uninstall LyX
- MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "$(UnReallyRemoveLabel)" IDYES +2 ; continue if yes
+ # question message if the user really wants to uninstall LyX
+ MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "$(UnReallyRemoveLabel)" IDYES +2 # continue if yes
Abort
FunctionEnd
-; ----------------------------------
+# ----------------------------------
Function un.onUninstSuccess
HideWindow
FunctionEnd
-; ----------------------------------
-; Uninstall sections
+# ----------------------------------
+# Uninstall sections
Section "un.LyX" un.SecUnProgramFiles
SectionIn RO
- ; delete LaTeX class files that were installed together with LyX
+ # delete LaTeX class files that were installed together with LyX
FileOpen $R5 "$INSTDIR\Resources\uninstallPaths.dat" r
FileRead $R5 $LatexPath
FileClose $R5
StrCpy $String $LatexPath
StrCpy $Search "miktex\bin"
StrLen $3 $String
- Call un.StrPoint ; search the LaTeXPath for the phrase "miktex\bin" (function from LyXUtils.nsh)
- ${if} $Pointer != "-1" ; if something was found
- IntOp $Pointer $Pointer - 1 ; jump before the first "\" of "\miktex\bin"
- StrCpy $String $String "$Pointer" ; $String is now the part before "\miktex\bin"
+ Call un.StrPoint # search the LaTeXPath for the phrase "miktex\bin" (function from LyXUtils.nsh)
+ ${if} $Pointer != "-1" # if something was found
+ IntOp $Pointer $Pointer - 1 # jump before the first "\" of "\miktex\bin"
+ StrCpy $String $String "$Pointer" # $String is now the part before "\miktex\bin"
Delete "$String\tex\latex\cv.cls"
RMDir /r "$String\tex\latex\lyx"
RMDir /r "$String\tex\latex\revtex"
ExecWait "$LatexPath\initexmf --update-fndb"
${endif}
- ; delete LyX's installation folder
+ # delete LyX's installation folder
RMDir /r $INSTDIR
- ; delete start menu folder
+ # delete start menu folder
ReadRegStr $0 SHCTX "${PRODUCT_UNINST_KEY}" "StartMenu"
RMDir /r "$0"
- ; delete desktop icon
+ # delete desktop icon
Delete "$DESKTOP\LyX ${PRODUCT_VERSION}.lnk"
- ; delete registry entries
+ # delete registry entries
DeleteRegKey HKCU "${PRODUCT_UNINST_KEY}"
DeleteRegKey SHCTX "${PRODUCT_UNINST_KEY}"
DeleteRegKey SHCTX "${PRODUCT_DIR_REGKEY}"
DeleteRegKey HKCR "Applications\lyx.exe"
DeleteRegKey HKCR "Applications\lyx.bat"
- ; Aiksaurus
- !insertmacro FileCheck $5 "meanings.dat" "${AiksaurusDir}" ; macro from LyXUtils.nsh
+ # Aiksaurus
+ !insertmacro FileCheck $5 "meanings.dat" "${AiksaurusDir}" # macro from LyXUtils.nsh
${if} $5 == "True"
RMDir /r "${AiksaurusDir}"
${endif}
- ReadRegStr $0 SHCTX "Software\Aiksaurus" "OnlyWithLyX" ; special entry to test if it was installed with LyX
+ ReadRegStr $0 SHCTX "Software\Aiksaurus" "OnlyWithLyX" # special entry to test if it was installed with LyX
${if} $0 == "Yes${PRODUCT_VERSION_SHORT}"
- ; unregister Aiksaurus
+ # unregister Aiksaurus
ReadRegStr $1 SHCTX "Software\Aiksaurus" "Data Path"
RMDir /r "$1"
DeleteRegKey SHCTX "SOFTWARE\Aiksaurus"
${endif}
- ; remove file extension .lyx
+ # remove file extension .lyx
ReadRegStr $R0 SHCTX "Software\Classes\${PRODUCT_EXT}" ""
${if} $R0 == "${PRODUCT_REGNAME}"
DeleteRegKey SHCTX "Software\Classes\${PRODUCT_EXT}"
DeleteRegKey SHCTX "Software\Classes\${PRODUCT_REGNAME}"
${endif}
- ; the following can only be done with admin permissions
- ${if} $Answer == "yes" ; if admin
+ # the following can only be done with admin permissions
+ ${if} $Answer == "yes" # if admin
- ; ImageMagick
- ReadRegStr $0 SHCTX "Software\ImageMagick" "OnlyWithLyX" ; special entry to test if it was installed with LyX
+ # ImageMagick
+ ReadRegStr $0 SHCTX "Software\ImageMagick" "OnlyWithLyX" # special entry to test if it was installed with LyX
${if} $0 == "Yes${PRODUCT_VERSION_SHORT}"
- ; unregister ImageMagick
+ # unregister ImageMagick
DeleteRegValue SHCTX "SOFTWARE\Classes\Applications" "AutoRun"
DeleteRegKey SHCTX "SOFTWARE\ImageMagick"
${endif}
- ; Ghostscript and GSview
- ReadRegStr $0 HKLM "SOFTWARE\GPL Ghostscript" "OnlyWithLyX" ; special entry to test if it was installed with LyX
+ # Ghostscript and GSview
+ ReadRegStr $0 HKLM "SOFTWARE\GPL Ghostscript" "OnlyWithLyX" # special entry to test if it was installed with LyX
${if} $0 == "Yes${PRODUCT_VERSION_SHORT}"
- ; unregister Ghostscript
+ # unregister Ghostscript
DeleteRegKey HKLM "SOFTWARE\GPL Ghostscript"
- ; test if GSview is installed
+ # test if GSview is installed
StrCpy $5 ""
EnumRegValue $5 HKLM "Software\Ghostgum\GSview" 0
${if} $5 != ""
- ; unregister GSview
+ # unregister GSview
MessageBox MB_ICONINFORMATION|MB_OK "$(UnGSview)"
ReadRegStr $3 HKLM "Software\Ghostgum\GSview" "$5"
ReadRegStr $4 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\GSview $5" "UninstallString"
${endif}
${endif}
- ; MiKTeX specific LyX setting
+ # MiKTeX specific LyX setting
DeleteRegValue HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "MIKTEX_AUTOINSTALL"
DeleteRegValue HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "MIKTEX_REPOSITORY"
- ${endif} ; end if Answer (if admin)
+ ${endif} # end if Answer (if admin)
SetAutoClose true
SectionEnd
-;---------------------------------
-; user preferences
+#---------------------------------
+# user preferences
Section "un.$(UnLyXPreferencesTitle)" un.SecUnPreferences
- ; remove LyX's config files
- Call un.DelAppPathSub ; function from LyXUtils.nsh
+ # remove LyX's config files
+ Call un.DelAppPathSub # function from LyXUtils.nsh
SectionEnd
-;---------------------------------
-; Aspell
+#---------------------------------
+# Aspell
Section "un.Aspell" un.SecUnAspell
- ${if} $AspellInstallYes == "Aspell" ; only uninstall Aspell when it was installed together with LyX
- Call un.UninstAspell ; Function from Aspell.nsh
+ ${if} $AspellInstallYes == "Aspell" # only uninstall Aspell when it was installed together with LyX
+ Call un.UninstAspell # Function from Aspell.nsh
${endif}
SectionEnd
-;---------------------------------
-; MiKTeX
+#---------------------------------
+# MiKTeX
Section "un.MiKTeX" un.SecUnMiKTeX
- ${if} $MiKTeXInstalled == "MiKTeX" ; only uninstall MiKTeX when it was installed together with LyX
+ ${if} $MiKTeXInstalled == "MiKTeX" # only uninstall MiKTeX when it was installed together with LyX
ReadRegStr $1 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\$MiKTeXVersionVar" "UninstallString"
- ExecWait "$1" ; run MiKTeX's uninstaller
+ ExecWait "$1" # run MiKTeX's uninstaller
${endif}
SectionEnd
-;---------------------------------
-; JabRef
+#---------------------------------
+# JabRef
Section "un.JabRef" un.SecUnJabRef
- ${if} $JabRefInstalled == "JabRef" ; only uninstall JabRef when it was installed together with LyX
+ ${if} $JabRefInstalled == "JabRef" # only uninstall JabRef when it was installed together with LyX
ReadRegStr $1 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\$JabRefVersionVar" "UninstallString"
- ExecWait "$1" ; run JabRef's uninstaller
+ ExecWait "$1" # run JabRef's uninstaller
${endif}
SectionEnd
-;---------------------------------
-; Section descriptions
+#---------------------------------
+# Section descriptions
!insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${un.SecUnAspell} "$(SecUnAspellDescription)"
!insertmacro MUI_DESCRIPTION_TEXT ${un.SecUnMiKTeX} "$(SecUnMiKTeXDescription)"
Function UpdateModifiedFiles
- ; list with modified files for LyX 1.5svn 30-04-2007
+ # list with modified files for LyX 1.5svn 30-04-2007
SetOutPath "$INSTDIR\bin"
File "${PRODUCT_SOURCEDIR}\bin\Console.dll"
- File "${PRODUCT_SOURCEDIR}\bin\lyx.exe" ; always here
+ File "${PRODUCT_SOURCEDIR}\bin\lyx.exe" # always here
File "${PRODUCT_SOURCEDIR}\bin\LyXLauncher.exe"
- File "${PRODUCT_SOURCEDIR}\bin\tex2lyx.exe" ; always here
+ File "${PRODUCT_SOURCEDIR}\bin\tex2lyx.exe" # always here
SetOutPath "$INSTDIR\Resources"
File "${PRODUCT_SOURCEDIR}\Resources\encodings"
File "${PRODUCT_SOURCEDIR}\Resources\languages"
File "${PRODUCT_SOURCEDIR}\Resources\unicodesymbols"
- File /r "${PRODUCT_SOURCEDIR}\Resources\locale" ; always here
+ File /r "${PRODUCT_SOURCEDIR}\Resources\locale" # always here
SetOutPath "$INSTDIR\Resources\bind"
File "${PRODUCT_SOURCEDIR}\Resources\bind\sciword.bind"
SetOutPath "$INSTDIR\Resources\doc"
File "${PRODUCT_SOURCEDIR}\Resources\doc\EmbeddedObjects.lyx"
File "${PRODUCT_SOURCEDIR}\Resources\doc\LaTeXConfig.lyx.in"
- File "${PRODUCT_SOURCEDIR}\Resources\doc\TOC.lyx" ; must be here when another \doc file has been changed
+ File "${PRODUCT_SOURCEDIR}\Resources\doc\TOC.lyx" # must be here when another \doc file has been changed
SetOutPath "$INSTDIR\Resources\doc\de"
File "${PRODUCT_SOURCEDIR}\Resources\doc\de\Customization.lyx"
File "${PRODUCT_SOURCEDIR}\Resources\doc\de\Extended.lyx"
File "${PRODUCT_SOURCEDIR}\Resources\doc\de\Tutorial.lyx"
- File "${PRODUCT_SOURCEDIR}\Resources\doc\de\TOC.lyx" ; must be here when another \doc file has been changed
+ File "${PRODUCT_SOURCEDIR}\Resources\doc\de\TOC.lyx" # must be here when another \doc file has been changed
File "${PRODUCT_SOURCEDIR}\Resources\doc\de\UserGuide.lyx"
SetOutPath "$INSTDIR\Resources\doc\es"
File "${PRODUCT_SOURCEDIR}\Resources\doc\es\EmbeddedObjects.lyx"
- File "${PRODUCT_SOURCEDIR}\Resources\doc\es\TOC.lyx" ; must be here when another \doc file has been changed
+ File "${PRODUCT_SOURCEDIR}\Resources\doc\es\TOC.lyx" # must be here when another \doc file has been changed
SetOutPath "$INSTDIR\Resources\doc\it"
File "${PRODUCT_SOURCEDIR}\Resources\doc\it\Customization.lyx"
- File "${PRODUCT_SOURCEDIR}\Resources\doc\it\TOC.lyx" ; must be here when another \doc file has been changed
+ File "${PRODUCT_SOURCEDIR}\Resources\doc\it\TOC.lyx" # must be here when another \doc file has been changed
SetOutPath "$INSTDIR\Resources\examples"
File "${PRODUCT_SOURCEDIR}\Resources\examples\CV-image.eps"
File "${PRODUCT_SOURCEDIR}\Resources\examples\CV-image.png"
!undef LYX_LANG
-!endif ; _LYX_LANGUAGES_DANISH_NSH_
+!endif # _LYX_LANGUAGES_DANISH_NSH_
!undef LYX_LANG
-!endif ; _LYX_LANGUAGES_DUTCH_NSH_
+!endif # _LYX_LANGUAGES_DUTCH_NSH_
!undef LYX_LANG
-!endif ; _LYX_LANGUAGES_ENGLISH_NSH_
+!endif # _LYX_LANGUAGES_ENGLISH_NSH_
!undef LYX_LANG
-!endif ; _LYX_LANGUAGES_FRENCH_NSH_
+!endif # _LYX_LANGUAGES_FRENCH_NSH_
!undef LYX_LANG
-!endif ; _LYX_LANGUAGES_GALICIAN_NSH_
+!endif # _LYX_LANGUAGES_GALICIAN_NSH_
!undef LYX_LANG
-!endif ; _LYX_LANGUAGES_GERMAN_NSH_
+!endif # _LYX_LANGUAGES_GERMAN_NSH_
!undef LYX_LANG
-!endif ; _LYX_LANGUAGES_HUNGARIAN_NSH_
+!endif # _LYX_LANGUAGES_HUNGARIAN_NSH_
!undef LYX_LANG
-!endif ; _LYX_LANGUAGES_ITALIAN_NSH_
+!endif # _LYX_LANGUAGES_ITALIAN_NSH_
!undef LYX_LANG
-!endif ; _LYX_LANGUAGES_NORWEGIAN_NSH_
+!endif # _LYX_LANGUAGES_NORWEGIAN_NSH_
!undef LYX_LANG
-!endif ; _LYX_LANGUAGES_POLISH_NSH_
+!endif # _LYX_LANGUAGES_POLISH_NSH_
!undef LYX_LANG
-!endif ; _LYX_LANGUAGES_PORTUGUESE_NSH_
+!endif # _LYX_LANGUAGES_PORTUGUESE_NSH_
!undef LYX_LANG
-!endif ; _LYX_LANGUAGES_SLOVAK_NSH_
+!endif # _LYX_LANGUAGES_SLOVAK_NSH_
!undef LYX_LANG
-!endif ; _LYX_LANGUAGES_SPANISH_NSH_
+!endif # _LYX_LANGUAGES_SPANISH_NSH_
!undef LYX_LANG
-!endif ; _LYX_LANGUAGES_SWEDISH_NSH_
+!endif # _LYX_LANGUAGES_SWEDISH_NSH_
!undef LYX_LANG
-!endif ; _LYX_LANGUAGES_TURKISH_NSH_
+!endif # _LYX_LANGUAGES_TURKISH_NSH_