mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-01-18 21:18:10 +00:00
(svn r21210) -Fix [FS#4231]: make sure text files use DOS EOL
-Fix: shortcuts were not delete when uninstalling OpenTTD on Windows Vista/7 -Add [FS#4231]: shortcuts to extra documentation files (docs and scripts subdir)
This commit is contained in:
parent
0f9c40244a
commit
7167da3521
@ -49,6 +49,8 @@ CRCCheck force
|
||||
ShowInstDetails show
|
||||
ShowUninstDetails show
|
||||
|
||||
RequestExecutionLevel admin
|
||||
|
||||
Var SHORTCUTS
|
||||
Var CDDRIVE
|
||||
|
||||
@ -108,6 +110,8 @@ Section "!OpenTTD" Section1
|
||||
; Overwrite files by default, but don't complain on failure
|
||||
SetOverwrite try
|
||||
|
||||
SetShellVarContext all
|
||||
|
||||
; Define root variable relative to installer
|
||||
!define PATH_ROOT "..\..\..\"
|
||||
|
||||
@ -133,20 +137,34 @@ Section "!OpenTTD" Section1
|
||||
; Copy the scripts
|
||||
SetOutPath "$INSTDIR\scripts\"
|
||||
File ${PATH_ROOT}bin\scripts\*.*
|
||||
Push "$INSTDIR\scripts\readme.txt"
|
||||
Call unix2dos
|
||||
|
||||
; Copy some documention files
|
||||
SetOutPath "$INSTDIR\docs\"
|
||||
File ${PATH_ROOT}docs\multiplayer.txt
|
||||
Push "$INSTDIR\docs\multiplayer.txt"
|
||||
Call unix2dos
|
||||
File ${PATH_ROOT}docs\32bpp.txt
|
||||
Push "$INSTDIR\docs\32bpp.txt"
|
||||
Call unix2dos
|
||||
|
||||
; Copy the rest of the stuff
|
||||
SetOutPath "$INSTDIR\"
|
||||
|
||||
; Copy text files
|
||||
File ${PATH_ROOT}changelog.txt
|
||||
Push "$INSTDIR\changelog.txt"
|
||||
Call unix2dos
|
||||
File ${PATH_ROOT}COPYING
|
||||
Push "$INSTDIR\COPYING"
|
||||
Call unix2dos
|
||||
File ${PATH_ROOT}readme.txt
|
||||
Push "$INSTDIR\readme.txt"
|
||||
Call unix2dos
|
||||
File ${PATH_ROOT}known-bugs.txt
|
||||
Push "$INSTDIR\known-bugs.txt"
|
||||
Call unix2dos
|
||||
|
||||
; Copy executable
|
||||
File /oname=openttd.exe ${BINARY_DIR}\openttd.exe
|
||||
@ -181,6 +199,11 @@ Section "!OpenTTD" Section1
|
||||
CreateShortCut "$SMPROGRAMS\$SHORTCUTS\Readme.lnk" "$INSTDIR\Readme.txt"
|
||||
CreateShortCut "$SMPROGRAMS\$SHORTCUTS\Changelog.lnk" "$INSTDIR\Changelog.txt"
|
||||
CreateShortCut "$SMPROGRAMS\$SHORTCUTS\Known-bugs.lnk" "$INSTDIR\known-bugs.txt"
|
||||
CreateDirectory "$SMPROGRAMS\$SHORTCUTS\Docs"
|
||||
CreateShortCut "$SMPROGRAMS\$SHORTCUTS\Docs\Multiplayer.lnk" "$INSTDIR\docs\multiplayer.txt"
|
||||
CreateShortCut "$SMPROGRAMS\$SHORTCUTS\Docs\32bpp.lnk" "$INSTDIR\docs\32bpp.txt"
|
||||
CreateDirectory "$SMPROGRAMS\$SHORTCUTS\Scripts"
|
||||
CreateShortCut "$SMPROGRAMS\$SHORTCUTS\Scripts\Readme.lnk" "$INSTDIR\scripts\readme.txt"
|
||||
!insertmacro MUI_STARTMENU_WRITE_END
|
||||
SectionEnd
|
||||
|
||||
@ -301,6 +324,8 @@ SectionEnd
|
||||
;-----------------------------------------------
|
||||
; Uninstall section, deletes all installed files
|
||||
Section "Uninstall"
|
||||
SetShellVarContext all
|
||||
|
||||
MessageBox MB_YESNO|MB_ICONQUESTION \
|
||||
"Remove the save game folders located at $\"$INSTDIR\save?$\"$\n \
|
||||
If you choose Yes, your saved games will be deleted." \
|
||||
@ -339,6 +364,9 @@ Section "Uninstall"
|
||||
Delete "$SMPROGRAMS\$SHORTCUTS\Readme.lnk"
|
||||
Delete "$SMPROGRAMS\$SHORTCUTS\Changelog.lnk"
|
||||
Delete "$SMPROGRAMS\$SHORTCUTS\Known-bugs.lnk"
|
||||
Delete "$SMPROGRAMS\$SHORTCUTS\Docs\Multiplayer.lnk"
|
||||
Delete "$SMPROGRAMS\$SHORTCUTS\Docs\32bpp.lnk"
|
||||
Delete "$SMPROGRAMS\$SHORTCUTS\Scripts\Readme.lnk"
|
||||
|
||||
; Clean up OpenTTD dir
|
||||
Delete "$INSTDIR\changelog.txt"
|
||||
@ -419,6 +447,8 @@ Section "Uninstall"
|
||||
|
||||
; Remove remaining directories
|
||||
RMDir "$SMPROGRAMS\$SHORTCUTS\Extras\"
|
||||
RMDir "$SMPROGRAMS\$SHORTCUTS\Scripts\"
|
||||
RMDir "$SMPROGRAMS\$SHORTCUTS\Docs\"
|
||||
RMDir "$SMPROGRAMS\$SHORTCUTS"
|
||||
RMDir "$INSTDIR\ai"
|
||||
RMDir "$INSTDIR\data"
|
||||
@ -556,6 +586,62 @@ Retry:
|
||||
Done:
|
||||
FunctionEnd
|
||||
|
||||
;-------------------------------------------------------------------------------
|
||||
; strips all CRs
|
||||
; and then converts all LFs into CRLFs
|
||||
; (this is roughly equivalent to "cat file | dos2unix | unix2dos")
|
||||
;
|
||||
; usage:
|
||||
; Push "infile"
|
||||
; Call unix2dos
|
||||
;
|
||||
; beware that this function destroys $0 $1 $2
|
||||
Function unix2dos
|
||||
ClearErrors
|
||||
|
||||
Pop $2
|
||||
Rename $2 $2.U2D
|
||||
FileOpen $1 $2 w
|
||||
|
||||
FileOpen $0 $2.U2D r
|
||||
|
||||
Push $2 ; save name for deleting
|
||||
|
||||
IfErrors unix2dos_done
|
||||
|
||||
; $0 = file input (opened for reading)
|
||||
; $1 = file output (opened for writing)
|
||||
|
||||
unix2dos_loop:
|
||||
; read a byte (stored in $2)
|
||||
FileReadByte $0 $2
|
||||
IfErrors unix2dos_done ; EOL
|
||||
; skip CR
|
||||
StrCmp $2 13 unix2dos_loop
|
||||
; if LF write an extra CR
|
||||
StrCmp $2 10 unix2dos_cr unix2dos_write
|
||||
|
||||
unix2dos_cr:
|
||||
FileWriteByte $1 13
|
||||
|
||||
unix2dos_write:
|
||||
; write byte
|
||||
FileWriteByte $1 $2
|
||||
; read next byte
|
||||
Goto unix2dos_loop
|
||||
|
||||
unix2dos_done:
|
||||
; close files
|
||||
FileClose $0
|
||||
FileClose $1
|
||||
|
||||
; delete original
|
||||
Pop $0
|
||||
Delete $0.U2D
|
||||
|
||||
FunctionEnd
|
||||
|
||||
|
||||
Var OLDVERSION
|
||||
Var UninstallString
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user