Sync the 1.3.x and 1.4.x versions of the Windows installer.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@10063 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Angus Leeming 2005-06-14 16:45:46 +00:00
parent 9a2894288d
commit f7cbb7fecd
8 changed files with 367 additions and 105 deletions

View File

@ -16,6 +16,7 @@
!insertmacro LYX_DEFFUNC `ReadDownloadValues` !insertmacro LYX_DEFFUNC `ReadDownloadValues`
!insertmacro LYX_DEFFUNC `EnableBrowseControls` !insertmacro LYX_DEFFUNC `EnableBrowseControls`
!insertmacro LYX_DEFFUNC `SearchRegistry`
!insertmacro LYX_DEFFUNC `DownloadEnter` !insertmacro LYX_DEFFUNC `DownloadEnter`
!insertmacro LYX_DEFFUNC `DownloadLeave` !insertmacro LYX_DEFFUNC `DownloadLeave`
@ -133,12 +134,65 @@
!macroend !macroend
!macro DownloadEnter_Private ExePath RegistryKey RegistrySubKey RemoveFromPath AddtoPath Required DownloadLabel HomeLabel PageHeader PageDescription !macro SearchRegistry_Private ExePath RegistryKey RegistrySubKey RemoveFromPath AddtoPath
!define skipBackupLbl "skipBackup_${__LINE__}"
StrCpy ${ExePath} "" ${if} ${ExePath} == ""
ReadRegStr ${ExePath} HKLM "${RegistryKey}" "${RegistrySubKey}" ReadRegStr ${ExePath} HKLM "${RegistryKey}" "${RegistrySubKey}"
${if} ${ExePath} != ""
${StrRep} "${ExePath}" "${ExePath}" "${RemoveFromPath}" ""
StrCpy ${ExePath} "${ExePath}${AddtoPath}"
${endif}
${endif}
!macroend
!macro LYX_FUNCTION_SearchRegistry
!insertmacro LYX_FUNC `SearchRegistry`
; The stack contains:
; TOP
; ExePath
; RegistryKey
; RegistrySubKey
; RemoveFromPath
; AddtoPath
; After this point:
; $0 = ExePath
; $1 = RegistryKey
; $2 = RegistrySubKey
; $3 = RemoveFromPath
; $4 = AddtoPath
Exch $0
Exch
Exch $1
Exch 2
Exch $2
Exch 3
Exch $3
Exch 4
Exch $4
; Use a macro simply to make life understandable.
!insertmacro SearchRegistry_Private "$0" "$1" "$2" "$3" "$4"
; Return output to user.
Exch $4
Exch 4
Exch $3
Exch 3
Exch $2
Exch 2
Exch $1
Exch
Exch $0
FunctionEnd
!macroend
!macro DownloadEnter_Private ExePath Required DownloadLabel HomeLabel PageHeader PageDescription
!insertmacro MUI_INSTALLOPTIONS_WRITE "ioDownload.ini" "Field 1" "Text" "" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioDownload.ini" "Field 1" "Text" ""
!insertmacro MUI_INSTALLOPTIONS_WRITE "ioDownload.ini" "Field 2" "Text" "$(DownloadPageField2)" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioDownload.ini" "Field 2" "Text" "$(DownloadPageField2)"
@ -155,18 +209,17 @@
!insertmacro MUI_INSTALLOPTIONS_WRITE "ioDownload.ini" "Field 3" "Text" "${DownloadLabel}" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioDownload.ini" "Field 3" "Text" "${DownloadLabel}"
!insertmacro MUI_INSTALLOPTIONS_WRITE "ioDownload.ini" "Field 4" "Text" "${HomeLabel}" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioDownload.ini" "Field 4" "Text" "${HomeLabel}"
${if} ${ExePath} == "" ${if} ${ExePath} == ""
!insertmacro MUI_INSTALLOPTIONS_WRITE "ioDownload.ini" "Field 3" "State" "1" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioDownload.ini" "Field 3" "State" "1"
!insertmacro MUI_INSTALLOPTIONS_WRITE "ioDownload.ini" "Field 4" "State" "0" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioDownload.ini" "Field 4" "State" "0"
!insertmacro MUI_INSTALLOPTIONS_READ $0 "ioDownload.ini" "Field 5" "Flags" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioDownload.ini" "Field 5" "Flags" PATH_MUST_EXIST|DISABLED
!insertmacro MUI_INSTALLOPTIONS_WRITE "ioDownload.ini" "Field 5" "Flags" $0|DISABLED
!insertmacro MUI_INSTALLOPTIONS_WRITE "ioDownload.ini" "Field 5" "State" "" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioDownload.ini" "Field 5" "State" ""
${else} ${else}
!insertmacro MUI_INSTALLOPTIONS_WRITE "ioDownload.ini" "Field 3" "State" "0" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioDownload.ini" "Field 3" "State" "0"
!insertmacro MUI_INSTALLOPTIONS_WRITE "ioDownload.ini" "Field 4" "State" "1" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioDownload.ini" "Field 4" "State" "1"
!insertmacro MUI_INSTALLOPTIONS_WRITE "ioDownload.ini" "Field 5" "Flags" PATH_MUST_EXIST
${StrRep} "${ExePath}" "${ExePath}" "${RemoveFromPath}" ""
StrCpy ${ExePath} "${ExePath}${AddtoPath}"
!insertmacro MUI_INSTALLOPTIONS_WRITE "ioDownload.ini" "Field 5" "State" "${ExePath}" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioDownload.ini" "Field 5" "State" "${ExePath}"
${endif} ${endif}
@ -174,7 +227,6 @@
!insertmacro MUI_HEADER_TEXT "${PageHeader}" "${PageDescription}" !insertmacro MUI_HEADER_TEXT "${PageHeader}" "${PageDescription}"
!insertmacro MUI_INSTALLOPTIONS_DISPLAY "ioDownload.ini" !insertmacro MUI_INSTALLOPTIONS_DISPLAY "ioDownload.ini"
!undef skipBackupLbl
!macroend !macroend
@ -184,10 +236,6 @@
; The stack contains: ; The stack contains:
; TOP ; TOP
; ExePath ; ExePath
; RegistryKey
; RegistrySubKey
; RemoveFromPath
; AddtoPath
; Required ; Required
; DownloadLabel ; DownloadLabel
; HomeLabel ; HomeLabel
@ -196,15 +244,11 @@
; After this point: ; After this point:
; $0 = ExePath ; $0 = ExePath
; $1 = RegistryKey ; $1 = Required
; $2 = RegistrySubKey ; $2 = DownloadLabel
; $3 = RemoveFromPath ; $3 = HomeLabel
; $4 = AddtoPath ; $4 = PageHeader
; $5 = Required ; $5 = PageDescription
; $6 = DownloadLabel
; $7 = HomeLabel
; $8 = PageHeader
; $9 = PageDescription
Exch $0 Exch $0
Exch Exch
@ -217,27 +261,11 @@
Exch $4 Exch $4
Exch 5 Exch 5
Exch $5 Exch $5
Exch 6
Exch $6
Exch 7
Exch $7
Exch 8
Exch $8
Exch 9
Exch $9
; Use a macro simply to make life understandable. ; Use a macro simply to make life understandable.
!insertmacro DownloadEnter_Private "$0" "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9" !insertmacro DownloadEnter_Private "$0" "$1" "$2" "$3" "$4" "$5"
; Return output to user. ; Return output to user.
Exch $9
Exch 9
Exch $8
Exch 8
Exch $7
Exch 7
Exch $6
Exch 6
Exch $5 Exch $5
Exch 5 Exch 5
Exch $4 Exch $4
@ -254,7 +282,6 @@
!macro DownloadLeave_Private DoNotRequire Download FolderPath URL EnterFolder ExeName InvalidFolder !macro DownloadLeave_Private DoNotRequire Download FolderPath URL EnterFolder ExeName InvalidFolder
!define skipBackupLbl "skipBackup_${__LINE__}"
!insertmacro MUI_INSTALLOPTIONS_READ $0 "ioDownload.ini" "Settings" "State" !insertmacro MUI_INSTALLOPTIONS_READ $0 "ioDownload.ini" "Settings" "State"
StrCmp $0 0 go_on ; Next button? StrCmp $0 0 go_on ; Next button?
@ -271,7 +298,8 @@ go_on:
StrCpy ${FolderPath} "" StrCpy ${FolderPath} ""
ExecShell open "${URL}" ExecShell open "${URL}"
${else} ${else}
${StrTrim} ${FolderPath} ${StrTrim} ${FolderPath} ${FolderPath}
${StrRTrimChar} ${FolderPath} ${FolderPath} '\'
${if} ${FolderPath} == "" ${if} ${FolderPath} == ""
MessageBox MB_OK "${EnterFolder}" MessageBox MB_OK "${EnterFolder}"
@ -280,8 +308,9 @@ go_on:
${if} ${FileExists} "${FolderPath}" ${if} ${FileExists} "${FolderPath}"
${StrRep} ${FolderPath} ${FolderPath} "${ExeName}" "" ${StrRep} ${FolderPath} ${FolderPath} "${ExeName}" ""
${StrRTrimChar} ${FolderPath} ${FolderPath} '\'
${if} ${FileExists} "${FolderPath}${ExeName}" ${if} ${FileExists} "${FolderPath}\${ExeName}"
${else} ${else}
MessageBox MB_OK "${InvalidFolder}" MessageBox MB_OK "${InvalidFolder}"
Abort Abort
@ -291,7 +320,6 @@ go_on:
Abort Abort
${endif} ${endif}
${endif} ${endif}
!undef skipBackupLbl
!macroend !macroend
@ -370,17 +398,32 @@ go_on:
!macroend !macroend
!macro LYX_FUNCTION_DownloadEnter_Call ExePath RegistryKey RegistrySubKey RemoveFromPath AddtoPath Required DownloadLabel HomeLabel PageHeader PageDescription !macro LYX_FUNCTION_SearchRegistry_Call ExePath RegistryKey RegistrySubKey RemoveFromPath AddtoPath
Push `${PageDescription}`
Push `${PageHeader}`
Push `${HomeLabel}`
Push `${DownloadLabel}`
Push `${Required}`
Push `${AddtoPath}` Push `${AddtoPath}`
Push `${RemoveFromPath}` Push `${RemoveFromPath}`
Push `${RegistrySubKey}` Push `${RegistrySubKey}`
Push `${RegistryKey}` Push `${RegistryKey}`
Push `${ExePath}` Push `${ExePath}`
Call SearchRegistry
; Empty the stack of all the stuff we've just added.
; We're not interested in most of it, so just fill $0 repeatedly.
Pop `${ExePath}`
Pop `$0`
Pop `$0`
Pop `$0`
Pop `$0`
!macroend
!macro LYX_FUNCTION_DownloadEnter_Call ExePath Required DownloadLabel HomeLabel PageHeader PageDescription
Push `${PageDescription}`
Push `${PageHeader}`
Push `${HomeLabel}`
Push `${DownloadLabel}`
Push `${Required}`
Push `${ExePath}`
Call DownloadEnter Call DownloadEnter
; Empty the stack of all the stuff we've just added. ; Empty the stack of all the stuff we've just added.
; We're not interested in keeping it, so just fill $0 repeatedly. ; We're not interested in keeping it, so just fill $0 repeatedly.
@ -390,10 +433,6 @@ go_on:
Pop `$0` Pop `$0`
Pop `$0` Pop `$0`
Pop `$0` Pop `$0`
Pop `$0`
Pop `$0`
Pop `$0`
Pop `$0`
!macroend !macroend

View File

@ -39,4 +39,3 @@ Left=5
Right=-1 Right=-1
Top=47 Top=47
Bottom=58 Bottom=58
Flags=PATH_MUST_EXIST

View File

@ -1,16 +1,9 @@
[Settings] [Settings]
NumFields=2 NumFields=1
[Field 1] [Field 1]
Type=Label Type=Label
Left=5 Left=5
Right=-1 Right=-1
Top=0 Top=0
Bottom=20
[Field 2]
Type=Label
Left=5
Right=-1
Top=21
Bottom=60 Bottom=60

View File

@ -58,10 +58,15 @@ InstallDir "$PROGRAMFILES\${PRODUCT_NAME}"
; Declare used functions ; Declare used functions
${StrLoc} ${StrLoc}
${StrNSISToIO}
${StrRep} ${StrRep}
${StrTrim} ${StrTrim}
${StrLTrim}
${StrRTrim}
${StrRTrimChar}
${ReadDownloadValues} ${ReadDownloadValues}
${EnableBrowseControls} ${EnableBrowseControls}
${SearchRegistry}
${DownloadEnter} ${DownloadEnter}
${DownloadLeave} ${DownloadLeave}
@ -165,6 +170,7 @@ Page custom SummariseDownloads SummariseDownloads_LeaveFunction
!insertmacro MUI_LANGUAGE "Spanish" !insertmacro MUI_LANGUAGE "Spanish"
!insertmacro MUI_LANGUAGE "French" !insertmacro MUI_LANGUAGE "French"
!insertmacro MUI_LANGUAGE "Dutch" !insertmacro MUI_LANGUAGE "Dutch"
!insertmacro MUI_LANGUAGE "Swedish"
!include "lyx_languages\english.nsh" !include "lyx_languages\english.nsh"
!include "lyx_languages\danish.nsh" !include "lyx_languages\danish.nsh"
@ -172,6 +178,7 @@ Page custom SummariseDownloads SummariseDownloads_LeaveFunction
!include "lyx_languages\french.nsh" !include "lyx_languages\french.nsh"
!include "lyx_languages\german.nsh" !include "lyx_languages\german.nsh"
!include "lyx_languages\spanish.nsh" !include "lyx_languages\spanish.nsh"
!include "lyx_languages\swedish.nsh"
LicenseData "$(LyXLicenseData)" LicenseData "$(LyXLicenseData)"
@ -303,15 +310,19 @@ Function .onInit
!undef READ_ONLY !undef READ_ONLY
${endif} ${endif}
Call SearchMinSYS
Call SearchPython
Call SearchMiKTeX
Call SearchPerl
Call SearchGhostscript
Call SearchImageMagick
ClearErrors ClearErrors
FunctionEnd FunctionEnd
;-------------------------------- ;--------------------------------
Function DownloadMinSYS Function SearchMinSYS
StrCpy $MinSYSPath ""
StrCpy $DownloadMinSYS "0"
; Search the registry for the MinSYS uninstaller. ; Search the registry for the MinSYS uninstaller.
; If successful, put its location in $2. ; If successful, put its location in $2.
StrCpy $3 "Software\Microsoft\Windows\CurrentVersion\Uninstall" StrCpy $3 "Software\Microsoft\Windows\CurrentVersion\Uninstall"
@ -334,9 +345,19 @@ Function DownloadMinSYS
Goto loop Goto loop
done: done:
${SearchRegistry} \
$MinSYSPath \
"$2" \
"Inno Setup: App Path" \
"" \
"\bin"
FunctionEnd
Function DownloadMinSYS
StrCpy $DownloadMinSYS "0"
${DownloadEnter} \ ${DownloadEnter} \
$MinSYSPath "$2" "Inno Setup: App Path" \ $MinSYSPath \
"" "\bin" \
0 \ 0 \
"$(MinSYSDownloadLabel)" \ "$(MinSYSDownloadLabel)" \
"$(MinSYSFolderLabel)" \ "$(MinSYSFolderLabel)" \
@ -351,19 +372,26 @@ Function DownloadMinSYS_LeaveFunction
$MinSYSPath \ $MinSYSPath \
"http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=82721&release_id=158803" \ "http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=82721&release_id=158803" \
"$(EnterMinSYSFolder)" \ "$(EnterMinSYSFolder)" \
"\sh.exe" \ "sh.exe" \
"$(InvalidMinSYSFolder)" "$(InvalidMinSYSFolder)"
FunctionEnd FunctionEnd
;-------------------------------- ;--------------------------------
Function SearchPython
${SearchRegistry} \
$PythonPath \
"Software\Microsoft\Windows\CurrentVersion\App Paths\Python.exe" \
"" \
"\Python.exe" \
""
FunctionEnd
Function DownloadPython Function DownloadPython
StrCpy $PythonPath ""
StrCpy $DownloadPython "0" StrCpy $DownloadPython "0"
${DownloadEnter} \ ${DownloadEnter} \
$PythonPath "Software\Microsoft\Windows\CurrentVersion\App Paths\Python.exe" "" \ $PythonPath \
"\Python.exe" "" \
0 \ 0 \
"$(PythonDownloadLabel)" \ "$(PythonDownloadLabel)" \
"$(PythonFolderLabel)" \ "$(PythonFolderLabel)" \
@ -378,20 +406,27 @@ Function DownloadPython_LeaveFunction
$PythonPath \ $PythonPath \
"http://www.python.org/download/" \ "http://www.python.org/download/" \
"$(EnterPythonFolder)" \ "$(EnterPythonFolder)" \
"\Python.exe" \ "Python.exe" \
"$(InvalidPythonFolder)" "$(InvalidPythonFolder)"
FunctionEnd FunctionEnd
;-------------------------------- ;--------------------------------
Function SearchMiKTeX
${SearchRegistry} \
$MiKTeXPath \
"Software\MiK\MiKTeX\CurrentVersion\MiKTeX" \
"Install Root" \
"" \
"\miktex\bin"
FunctionEnd
Function DownloadMiKTeX Function DownloadMiKTeX
StrCpy $DoNotRequireMiKTeX "1" StrCpy $DoNotRequireMiKTeX "1"
StrCpy $MiKTeXPath ""
StrCpy $DownloadMiKTeX "0" StrCpy $DownloadMiKTeX "0"
${DownloadEnter} \ ${DownloadEnter} \
$MiKTeXPath "Software\MiK\MiKTeX\CurrentVersion\MiKTeX" "Install Root" \ $MiKTeXPath \
"" "\miktex\bin" \
1 \ 1 \
"$(MiKTeXDownloadLabel)" \ "$(MiKTeXDownloadLabel)" \
"$(MiKTeXFolderLabel)" \ "$(MiKTeXFolderLabel)" \
@ -406,20 +441,27 @@ Function DownloadMiKTeX_LeaveFunction
$MiKTeXPath \ $MiKTeXPath \
"http://www.miktex.org/setup.html" \ "http://www.miktex.org/setup.html" \
"$(EnterMiKTeXFolder)" \ "$(EnterMiKTeXFolder)" \
"\latex.exe" \ "latex.exe" \
"$(InvalidMiKTeXFolder)" "$(InvalidMiKTeXFolder)"
FunctionEnd FunctionEnd
;-------------------------------- ;--------------------------------
Function SearchPerl
${SearchRegistry} \
$PerlPath \
"Software\Perl" \
BinDir \
"\perl.exe" \
""
FunctionEnd
Function DownloadPerl Function DownloadPerl
StrCpy $DoNotRequirePerl "1" StrCpy $DoNotRequirePerl "1"
StrCpy $PerlPath ""
StrCpy $DownloadPerl "1" StrCpy $DownloadPerl "1"
${DownloadEnter} \ ${DownloadEnter} \
$PerlPath "Software\Perl" BinDir \ $PerlPath \
"\perl.exe" "" \
1 \ 1 \
"$(PerlDownloadLabel)" \ "$(PerlDownloadLabel)" \
"$(PerlFolderLabel)" \ "$(PerlFolderLabel)" \
@ -434,15 +476,31 @@ Function DownloadPerl_LeaveFunction
$PerlPath \ $PerlPath \
"http://www.activestate.com/Products/ActivePerl/" \ "http://www.activestate.com/Products/ActivePerl/" \
"$(EnterPerlFolder)" \ "$(EnterPerlFolder)" \
"\perl.exe" \ "perl.exe" \
"$(InvalidPerlFolder)" "$(InvalidPerlFolder)"
FunctionEnd FunctionEnd
;-------------------------------- ;--------------------------------
Function SearchGhostscript
; Find which version of ghostscript, if any, is installed.
EnumRegKey $1 HKLM "Software\AFPL Ghostscript" 0
${if} $1 != ""
StrCpy $0 "Software\AFPL Ghostscript\$1"
${else}
StrCpy $0 ""
${endif}
${SearchRegistry} \
$GhostscriptPath \
"$0" \
"GS_DLL" \
"\gsdll32.dll" \
""
FunctionEnd
Function DownloadGhostscript Function DownloadGhostscript
StrCpy $DoNotRequireGhostscript "1" StrCpy $DoNotRequireGhostscript "1"
StrCpy $GhostscriptPath ""
StrCpy $DownloadGhostscript "0" StrCpy $DownloadGhostscript "0"
; Find which version of ghostscript, if any, is installed. ; Find which version of ghostscript, if any, is installed.
@ -454,8 +512,7 @@ Function DownloadGhostscript
${endif} ${endif}
${DownloadEnter} \ ${DownloadEnter} \
$GhostscriptPath "$0" "GS_DLL" \ $GhostscriptPath \
"\gsdll32.dll" "" \
1 \ 1 \
"$(GhostscriptDownloadLabel)" \ "$(GhostscriptDownloadLabel)" \
"$(GhostscriptFolderLabel)" \ "$(GhostscriptFolderLabel)" \
@ -470,20 +527,27 @@ Function DownloadGhostscript_LeaveFunction
$GhostscriptPath \ $GhostscriptPath \
"http://www.cs.wisc.edu/~ghost/doc/AFPL/index.htm" \ "http://www.cs.wisc.edu/~ghost/doc/AFPL/index.htm" \
"$(EnterGhostscriptFolder)" \ "$(EnterGhostscriptFolder)" \
"\gswin32c.exe" \ "gswin32c.exe" \
"$(InvalidGhostscriptFolder)" "$(InvalidGhostscriptFolder)"
FunctionEnd FunctionEnd
;-------------------------------- ;--------------------------------
Function SearchImageMagick
${SearchRegistry} \
$ImageMagickPath \
"Software\ImageMagick\Current" \
"BinPath" \
"" \
""
FunctionEnd
Function DownloadImageMagick Function DownloadImageMagick
StrCpy $DoNotRequireImageMagick "1" StrCpy $DoNotRequireImageMagick "1"
StrCpy $ImageMagickPath ""
StrCpy $DownloadImageMagick "0" StrCpy $DownloadImageMagick "0"
${DownloadEnter} \ ${DownloadEnter} \
$ImageMagickPath "Software\ImageMagick\Current" "BinPath" \ $ImageMagickPath \
"" "" \
1 \ 1 \
"$(ImageMagickDownloadLabel)" \ "$(ImageMagickDownloadLabel)" \
"$(ImageMagickFolderLabel)" \ "$(ImageMagickFolderLabel)" \
@ -498,7 +562,7 @@ Function DownloadImageMagick_LeaveFunction
$ImageMagickPath \ $ImageMagickPath \
"http://www.imagemagick.org/script/binary-releases.php" \ "http://www.imagemagick.org/script/binary-releases.php" \
"$(EnterImageMagickFolder)" \ "$(EnterImageMagickFolder)" \
"\convert.exe" \ "convert.exe" \
"$(InvalidImageMagickFolder)" "$(InvalidImageMagickFolder)"
FunctionEnd FunctionEnd
@ -536,10 +600,10 @@ Function SummariseDownloads
${if} "$DoNotInstallLyX" == 1 ${if} "$DoNotInstallLyX" == 1
!insertmacro MUI_INSTALLOPTIONS_WRITE "ioSummary.ini" "Field 1" "Text" "$(SummaryPleaseInstall)" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSummary.ini" "Field 1" "Text" "$(SummaryPleaseInstall)"
!insertmacro MUI_INSTALLOPTIONS_WRITE "ioSummary.ini" "Field 2" "Text" ""
${else} ${else}
!insertmacro MUI_INSTALLOPTIONS_WRITE "ioSummary.ini" "Field 1" "Text" "$(SummaryPathPrefix)" ${StrNSISToIO} $0 '$PathPrefix'
!insertmacro MUI_INSTALLOPTIONS_WRITE "ioSummary.ini" "Field 2" "Text" "$PathPrefix" StrCpy $0 "$(SummaryPathPrefix)\r\n\r\n$0"
!insertmacro MUI_INSTALLOPTIONS_WRITE "ioSummary.ini" "Field 1" "Text" "$0"
${endif} ${endif}
!insertmacro MUI_HEADER_TEXT "$(SummaryTitle)" "" !insertmacro MUI_HEADER_TEXT "$(SummaryTitle)" ""

View File

@ -12,10 +12,10 @@ LangString SecAllUsersTitle "${LYX_LANG}" "F
LangString SecFileAssocTitle "${LYX_LANG}" "Dateizuordnungen" LangString SecFileAssocTitle "${LYX_LANG}" "Dateizuordnungen"
LangString SecDesktopTitle "${LYX_LANG}" "Desktopsymbol" LangString SecDesktopTitle "${LYX_LANG}" "Desktopsymbol"
LangString SecCoreDescription "${LYX_LANG}" "Die ${PRODUCT_NAME} Datei." LangString SecCoreDescription "${LYX_LANG}" "Das Programm ${PRODUCT_NAME}."
LangString SecAllUsersDescription "${LYX_LANG}" "Für alle Nutzer oder nur für den aktuellen Nutzer installieren. (Dazu werden Administratorrechte benötigt.)" LangString SecAllUsersDescription "${LYX_LANG}" "Für alle Nutzer oder nur für den aktuellen Nutzer installieren. (Dazu werden Administratorrechte benötigt.)"
LangString SecFileAssocDescription "${LYX_LANG}" "Vernüpfung zwischen ${PRODUCT_NAME} und der .lyx Dateiendung." LangString SecFileAssocDescription "${LYX_LANG}" "Vernüpfung zwischen ${PRODUCT_NAME} und der .lyx Dateiendung."
LangString SecDesktopDescription "${LYX_LANG}" "Ein ${PRODUCT_NAME} Symbol auf dem Desktop." LangString SecDesktopDescription "${LYX_LANG}" "Verknüpfung zu ${PRODUCT_NAME} auf dem Desktop."
LangString ModifyingConfigureFailed "${LYX_LANG}" "Der 'path_prefix' (Liste mit Programmpfaden) konnte nicht im Konfigurationsskript gesetzt werden." LangString ModifyingConfigureFailed "${LYX_LANG}" "Der 'path_prefix' (Liste mit Programmpfaden) konnte nicht im Konfigurationsskript gesetzt werden."
LangString RunConfigureFailed "${LYX_LANG}" "Konnte das Konfigurationsskript nicht ausführen." LangString RunConfigureFailed "${LYX_LANG}" "Konnte das Konfigurationsskript nicht ausführen."
@ -33,7 +33,7 @@ LangString MinSYSDownloadLabel "${LYX_LANG}" "&MinSYS herunterladen"
LangString MinSYSFolderLabel "${LYX_LANG}" "&Ordner der die Datei sh.exe enthält" LangString MinSYSFolderLabel "${LYX_LANG}" "&Ordner der die Datei sh.exe enthält"
LangString PythonHeader "${LYX_LANG}" "Python" LangString PythonHeader "${LYX_LANG}" "Python"
LangString PythonDescription "${LYX_LANG}" "Ein Interpreter der Skriptspreche Python (www.python.org) ist notwendig damit ${PRODUCT_NAME} Skripte ausführen kann." LangString PythonDescription "${LYX_LANG}" "Ein Interpreter der Skriptsprache Python (www.python.org) ist notwendig damit ${PRODUCT_NAME} Skripte ausführen kann."
LangString EnterPythonFolder "${LYX_LANG}" "Geben sie den Pfad zur Datei python.exe an." LangString EnterPythonFolder "${LYX_LANG}" "Geben sie den Pfad zur Datei python.exe an."
LangString InvalidPythonFolder "${LYX_LANG}" "Kann die Datei python.exe nicht finden." LangString InvalidPythonFolder "${LYX_LANG}" "Kann die Datei python.exe nicht finden."
LangString PythonDownloadLabel "${LYX_LANG}" "&Python herunterladen" LangString PythonDownloadLabel "${LYX_LANG}" "&Python herunterladen"
@ -61,7 +61,7 @@ LangString ImageMagickDownloadLabel "${LYX_LANG}" "&ImageMagic herunterladen"
LangString ImageMagickFolderLabel "${LYX_LANG}" "&Ordner der die Datei convert.exe enthält" LangString ImageMagickFolderLabel "${LYX_LANG}" "&Ordner der die Datei convert.exe enthält"
LangString GhostscriptHeader "${LYX_LANG}" "Ghostscript" LangString GhostscriptHeader "${LYX_LANG}" "Ghostscript"
LangString GhostscriptDescription "${LYX_LANG}" "Ghostscript (http://www.cs.wisc.edu/~ghost/) wird für PDF- und PostScript-Grafikendateien benötigt." LangString GhostscriptDescription "${LYX_LANG}" "Ghostscript (http://www.cs.wisc.edu/~ghost/) wird für PDF- und PostScript-Grafikdateien benötigt."
LangString EnterGhostscriptFolder "${LYX_LANG}" "Geben sie den Pfad zur Datei gswin32c.exe an." LangString EnterGhostscriptFolder "${LYX_LANG}" "Geben sie den Pfad zur Datei gswin32c.exe an."
LangString InvalidGhostscriptFolder "${LYX_LANG}" "Kann die Datei gswin32c.exe nicht finden." LangString InvalidGhostscriptFolder "${LYX_LANG}" "Kann die Datei gswin32c.exe nicht finden."
LangString GhostscriptDownloadLabel "${LYX_LANG}" "&Ghostscript herunterladen" LangString GhostscriptDownloadLabel "${LYX_LANG}" "&Ghostscript herunterladen"

View File

@ -0,0 +1,91 @@
!ifndef _LYX_LANGUAGES_SWEDISH_NSH_
!define _LYX_LANGUAGES_SWEDISH_NSH_
!ifdef LYX_LANG
!undef LYX_LANG
!endif
!define LYX_LANG ${LANG_SWEDISH}
!define SwedishInputFolderPath "Var god mata in sökvägen till katalogen som innehåller"
!define SwedishUnableToFind "Kan inte hitta"
!define SwedishDownload "&Ladda ner"
!define SwedishFolderContaining "&Katalog innehållande"
LicenseLangString LyXLicenseData ${LYX_LANG} "${PRODUCT_LICENSE_FILE}"
LangString SecAllUsersTitle "${LYX_LANG}" "Installera för alla användare?"
LangString SecFileAssocTitle "${LYX_LANG}" "Filassociationer"
LangString SecDesktopTitle "${LYX_LANG}" "Skrivbordsikon"
LangString SecCoreDescription "${LYX_LANG}" "${PRODUCT_NAME}-filer."
LangString SecAllUsersDescription "${LYX_LANG}" "Installera för alla användare, eller enbart för den aktuella användare. (Kräver administratörsrättigheter.)"
LangString SecFileAssocDescription "${LYX_LANG}" "Skapa en association mellan programmet och filtilläget .lyx."
LangString SecDesktopDescription "${LYX_LANG}" "En ${PRODUCT_NAME}ikon på skrivbordet."
LangString ModifyingConfigureFailed "${LYX_LANG}" "Misslyckades med att sätta 'path_prefix' i konfigurationsskriptet"
LangString RunConfigureFailed "${LYX_LANG}" "Misslyckades med att köra konfigurationsskriptet"
LangString FinishPageMessage "${LYX_LANG}" "Gratulerar! LyX har installerats framgångsrikt."
LangString FinishPageRun "${LYX_LANG}" "Kör LyX"
LangString DownloadPageField2 "${LYX_LANG}" "Installera &ej"
LangString MinSYSHeader "${LYX_LANG}" "MinSYS"
LangString MinSYSDescription "${LYX_LANG}" "MinSYS är en minimal UNIX-liknande skriptmiljö (www.mingw.org/msys.shtml) som ${PRODUCT_NAME} behöver för att använda ett flertal skript."
LangString EnterMinSYSFolder "${LYX_LANG}" "${SwedishInputFolderPath} sh.exe"
LangString InvalidMinSYSFolder "${LYX_LANG}" "${SwedishUnableToFind} sh.exe"
LangString MinSYSDownloadLabel "${LYX_LANG}" "${SwedishDownload} MinSYS"
LangString MinSYSFolderLabel "${LYX_LANG}" "${SwedishFolderContaining} sh.exe"
LangString PythonHeader "${LYX_LANG}" "Python"
LangString PythonDescription "${LYX_LANG}" "Skriptspråket Python (www.python.org) bör installeras, annars kan inte ${PRODUCT_NAME} använda ett flertal skript."
LangString EnterPythonFolder "${LYX_LANG}" "${SwedishInputFolderPath} Python.exe"
LangString InvalidPythonFolder "${LYX_LANG}" "${SwedishUnableToFind} Python.exe"
LangString PythonDownloadLabel "${LYX_LANG}" "${SwedishDownload} Python"
LangString PythonFolderLabel "${LYX_LANG}" "${SwedishFolderContaining} Python.exe"
LangString MiKTeXHeader "${LYX_LANG}" "MiKTeX"
LangString MiKTeXDescription "${LYX_LANG}" "MiKTeX (www.miktex.org) aktuell (nyligen uppdaterad) implementation av TeX för Windows."
LangString EnterMiKTeXFolder "${LYX_LANG}" "${SwedishInputFolderPath} latex.exe"
LangString InvalidMiKTeXFolder "${LYX_LANG}" "${SwedishUnableToFind} latex.exe"
LangString MiKTeXDownloadLabel "${LYX_LANG}" "${SwedishDownload} MiKTeX"
LangString MiKTeXFolderLabel "${LYX_LANG}" "${SwedishFolderContaining} latex.exe"
LangString PerlHeader "${LYX_LANG}" "Perl"
LangString PerlDescription "${LYX_LANG}" "Om du räknar med att använda reLyX för att konvertera LaTeX-dokument till LyX-dokument, måste du installera Perl (www.perl.com)."
LangString EnterPerlFolder "${LYX_LANG}" "${SwedishInputFolderPath} Perl.exe"
LangString InvalidPerlFolder "${LYX_LANG}" "${SwedishUnableToFind} Perl.exe"
LangString PerlDownloadLabel "${LYX_LANG}" "${SwedishDownload} Perl"
LangString PerlFolderLabel "${LYX_LANG}" "${SwedishFolderContaining} perl.exe"
LangString ImageMagickHeader "${LYX_LANG}" "ImageMagick"
LangString ImageMagickDescription "${LYX_LANG}" "Verktygen i paketet ImageMagick (www.imagemagick.org/script/index.php) kan användas av LyX för att konvertera mellan de flesta grafikformat."
LangString EnterImageMagickFolder "${LYX_LANG}" "${SwedishInputFolderPath} convert.exe"
LangString InvalidImageMagickFolder "${LYX_LANG}" "${SwedishUnableToFind} convert.exe"
LangString ImageMagickDownloadLabel "${LYX_LANG}" "${SwedishDownload} ImageMagick"
LangString ImageMagickFolderLabel "${LYX_LANG}" "${SwedishFolderContaining} convert.exe"
LangString GhostscriptHeader "${LYX_LANG}" "Ghostscript"
LangString GhostscriptDescription "${LYX_LANG}" "Ghostscript (http://www.cs.wisc.edu/~ghost/) används till att konvertera bilder till/från PostScript."
LangString EnterGhostscriptFolder "${LYX_LANG}" "${SwedishInputFolderPath} gswin32c.exe"
LangString InvalidGhostscriptFolder "${LYX_LANG}" "${SwedishUnableToFind} gswin32c.exe"
LangString GhostscriptDownloadLabel "${LYX_LANG}" "${SwedishDownload} Ghostscript"
LangString GhostscriptFolderLabel "${LYX_LANG}" "${SwedishFolderContaining} gswin32c.exe"
LangString SummaryTitle "${LYX_LANG}" "Mjukvarusammanfattning"
LangString SummaryPleaseInstall "${LYX_LANG}" "Var god installera först dina nedladdade filer och kör sedan LyXs installationsprogram igen."
LangString SummaryPathPrefix "${LYX_LANG}" "En 'path_prefix'-sträng kommer att läggas till i filen 'lyxrc.defaults' innehållande följande:"
LangString UnNotInRegistryLabel "${LYX_LANG}" "${SwedishUnableToFind} $(^Name) i registret\r$\nGenvägar på skrivbordet och i startmeny kommer inte att tas bort."
LangString UnNotAdminLabel "${LYX_LANG}" "Tyvärr! Du måste ha administratörsrättigheter för\r$\natt avinstallera $(^Name)."
LangString UnReallyRemoveLabel "${LYX_LANG}" "Är du säker på att du verkligen vill fullständigt avinstallera $(^Name) och alla dess komponenter?"
LangString UnRemoveSuccessLabel "${LYX_LANG}" "$(^Name) har framgångsrikt avinstallerats från din dator."
!undef SwedishInputFolderPath
!undef SwedishUnableToFind
!undef SwedishDownload
!undef SwedishFolderContaining
!undef LYX_LANG
!endif ; _LYX_LANGUAGES_SWEDISH_NSH_

View File

@ -290,7 +290,9 @@ void __declspec(dllexport) run_configure(HWND hwndParent, int string_size, char
return; return;
} }
std::string const command = std::string("start /WAIT /B sh.exe ") + configure_file; // Even "start /WAIT /B sh.exe configure" returns
// before the script is done, so just invoke "sh" directly.
std::string const command = std::string("sh.exe ") + configure_file;
if (system(command.c_str()) != 0) { if (system(command.c_str()) != 0) {
pushstring("-1"); pushstring("-1");
return; return;

View File

@ -3,10 +3,13 @@
!include "lyxfunc.nsh" !include "lyxfunc.nsh"
!insertmacro LYX_DEFFUNC `StrLTrim`
!insertmacro LYX_DEFFUNC `StrRTrim`
!insertmacro LYX_DEFFUNC `StrTrim` !insertmacro LYX_DEFFUNC `StrTrim`
!insertmacro LYX_DEFFUNC `StrRTrimChar`
!macro LYX_FUNCTION_StrTrim !macro LYX_FUNCTION_StrLTrim
!insertmacro LYX_FUNC `StrTrim` !insertmacro LYX_FUNC `StrLTrim`
; After this point: ; After this point:
; $0 = String (input) ; $0 = String (input)
@ -22,12 +25,35 @@ Loop:
StrCmp "$1" "$\r" TrimLeft StrCmp "$1" "$\r" TrimLeft
StrCmp "$1" "$\n" TrimLeft StrCmp "$1" "$\n" TrimLeft
StrCmp "$1" " " TrimLeft ; this is a tab. StrCmp "$1" " " TrimLeft ; this is a tab.
GoTo Loop2 GoTo Done
TrimLeft: TrimLeft:
StrCpy $0 "$0" "" 1 StrCpy $0 "$0" "" 1
Goto Loop Goto Loop
Loop2: Done:
Pop $1
Exch $0
FunctionEnd
!macroend
!macro LYX_FUNCTION_StrLTrim_Call Output Input
Push `${Input}`
Call StrLTrim
Pop `${Output}`
!macroend
!macro LYX_FUNCTION_StrRTrim
!insertmacro LYX_FUNC `StrRTrim`
; After this point:
; $0 = String (input)
; $1 = Temp (temp)
; Get input from user
Exch $0
Push $1
Loop:
StrCpy $1 "$0" 1 -1 StrCpy $1 "$0" 1 -1
StrCmp "$1" " " TrimRight StrCmp "$1" " " TrimRight
StrCmp "$1" "$\r" TrimRight StrCmp "$1" "$\r" TrimRight
@ -36,7 +62,7 @@ Loop2:
GoTo Done GoTo Done
TrimRight: TrimRight:
StrCpy $0 "$0" -1 StrCpy $0 "$0" -1
Goto Loop2 Goto Loop
Done: Done:
Pop $1 Pop $1
@ -44,10 +70,58 @@ Done:
FunctionEnd FunctionEnd
!macroend !macroend
!macro LYX_FUNCTION_StrTrim_Call String !macro LYX_FUNCTION_StrRTrim_Call Output Input
Push `${String}` Push `${Input}`
Call StrRTrim
Pop `${Output}`
!macroend
!macro LYX_FUNCTION_StrTrim
!insertmacro LYX_FUNC `StrTrim`
Call StrLTrim
Call StrRTrim
FunctionEnd
!macroend
!macro LYX_FUNCTION_StrTrim_Call Output Input
Push `${Input}`
Call StrTrim Call StrTrim
Pop `${String}` Pop `${Output}`
!macroend
!macro LYX_FUNCTION_StrRTrimChar
!insertmacro LYX_FUNC `StrRTrimChar`
; After this point:
; $0 = Input
; $1 = Char
; $2 = Temp
; Get input from user
Exch $0
Exch
Exch $1
Push $2
StrCpy $2 "$0" 1 -1
StrCmp "$2" "$1" TrimRight
GoTo Done
TrimRight:
StrCpy $0 "$0" -1
Done:
Pop $2
Pop $1
Exch $0
FunctionEnd
!macroend
!macro LYX_FUNCTION_StrRTrimChar_Call Output Input Char
Push `${Char}`
Push `${Input}`
Call StrRTrimChar
Pop `${Output}`
!macroend !macroend
!endif ; _STRTRIM_NSH_ !endif ; _STRTRIM_NSH_