Hi,

Here is a patch for GUB that fixes an uninstallation issue for Windows
LilyPad:

http://code.google.com/p/lilypond/issues/detail?id=1179

Thanks,
Patrick
>From 8cab842cd79ca0fcb9b1d26a361c19441feea057 Mon Sep 17 00:00:00 2001
From: Patrick McCarty <pnor...@gmail.com>
Date: Sun, 11 Jul 2010 14:01:44 -0700
Subject: [PATCH 2/2] NSIS: rework uninstall logic for LilyPad.

Before this commit, the NSIS installer created three versions of LilyPad
(lilypad.exe, lilypad-ascii.exe, and lilypad-unicode.exe), but we should
only need two of them.

If the underlying OS does not support Unicode, we only need

  lilypad.exe
  lilypad-unicode.exe

and if Unicode *is* supported, then we need

  lilypad.exe
  lilypad-ascii.exe

Then, the default LilyPad is always "lilypad.exe", and we don't have the
extra, duplicated executable.

This commit implements the above logic, and adds "lilypad-unicode.exe"
to the list of installed files if necessary.
---
 nsis/lilypond-prepost.nsh |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/nsis/lilypond-prepost.nsh b/nsis/lilypond-prepost.nsh
index 29451be..b7fa216 100644
--- a/nsis/lilypond-prepost.nsh
+++ b/nsis/lilypond-prepost.nsh
@@ -93,14 +93,22 @@ FunctionEnd
 
 
 Function postinstall_lilypad
-       StrCpy $0 "$INSTDIR\usr\bin\lilypad"
-       CopyFiles /silent "$0.exe" "$0-unicode.exe"
        ClearErrors
        ReadRegStr $R0 HKLM \
                "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
        IfErrors dos exit
 dos:
-       CopyFiles /silent "$0-ascii.exe" "$0.exe"
+       # In this case, the underlying OS does not support Unicode,
+       # so the ASCII LilyPad should be the default.
+       StrCpy $0 "$INSTDIR\usr\bin\lilypad"
+       Rename "$0.exe" "$0-unicode.exe"
+       Rename "$0-ascii.exe" "$0.exe"
+       # Add lilypad-unicode.exe to files.txt to ensure complete uninstall.
+       SetFileAttributes "$INSTDIR\${UninstLog}" NORMAL
+       FileOpen $UninstLog "$INSTDIR\${UninstLog}" a
+       FileSeek $UninstLog 0 END
+       FileWrite $UninstLog "\usr\bin\lilypad-unicode.exe$\r$\n"
+       FileClose $UninstLog
 exit:  
 FunctionEnd
 
-- 
1.7.1.1

_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to