]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
More backporting of 32-bit installer. Doesn't work yet, but getting
authorTim Peters <tim.peters@gmail.com>
Thu, 10 Jan 2002 22:42:17 +0000 (22:42 +0000)
committerTim Peters <tim.peters@gmail.com>
Thu, 10 Jan 2002 22:42:17 +0000 (22:42 +0000)
closer.

PCbuild/installer.bmp
PCbuild/python20.wse

index 6c5656931f85304b213633fa9b6836cc36d3db03..01651cbdac9b29e678cd56af91068bb87ee15757 100644 (file)
Binary files a/PCbuild/installer.bmp and b/PCbuild/installer.bmp differ
index 95ee84d9c5354623e66d7e515c337d1f3a3a25f1..fff9435391f8f4ceea685fd74d3fba8e27e592b6 100644 (file)
 Document Type: WSE
 item: Global
-  Version=5.0
-  Title=Python 2.1.1
+  Version=8.14
+  Title=Python 2.1.2 release candidate 1
   Flags=00010100
   Languages=65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
   Japanese Font Name=MS Gothic
   Japanese Font Size=10
-  Start Gradient=0 0 255
-  End Gradient=0 0 0
-  Windows Flags=00000100000011010010110100001000
+  Start Gradient=0 255 0
+  End Gradient=0 128 0
+  Windows Flags=00000100000011010010010100001010
   Log Pathname=%MAINDIR%\INSTALL.LOG
   Message Font=MS Sans Serif
   Font Size=8
+  Pages Modified=00010000011101000000000100000111
+  Extra Pages=00000000000000000000000010110010
   Disk Filename=SETUP
-  Patch Flags=0000000000000001
+  Patch Flags=0000000000001001
   Patch Threshold=85
   Patch Memory=4000
-  Variable Name1=_SYS_
-  Variable Description1=System directory (where to find MSVCRT.DLL)
-  Variable Default1=C:\Windows\System
-  Variable Values1=C:\Windows\System
-  Variable Values1=C:\WINNT\System32
-  Variable Flags1=00000010
-  Variable Name2=_WISE_
-  Variable Description2=WISE root directory
-  Variable Default2=C:\Wise
-  Variable Flags2=00001001
-  Variable Name3=_SRC_
-  Variable Description3=Python source directory
-  Variable Default3=C:\code\python\dist\src
+  EXE Filename=Python-2.1.2c1.exe
+  Dialogs Version=8
+  Version File=2.1.2c1
+  Version Description=Python Programming Language
+  Version Copyright=©2001 Python Software Foundation
+  Version Company=PythonLabs at Zope Corporation
+  Crystal Format=10111100101100000010001001001001
+  Step View=&Properties
+  Variable Name1=_WISE_
+  Variable Description1=WISE root directory
+  Variable Default1=C:\PROGRAM FILES\WISE INSTALLMASTER 8.1
+  Variable Flags1=00001000
+  Variable Name2=_TCLMINOR_
+  Variable Description2=Tcl/Tk Minor Version (e.g. the "3" in "8.3.1")
+  Variable Default2=3
+  Variable Flags2=00001000
+  Variable Name3=_DOC_
+  Variable Description3=The unpacked HTML doc directory.
+  Variable Default3=..\html
   Variable Flags3=00001001
-  Variable Name4=_DOC_
-  Variable Description4=HTML documentation tree directory
-  Variable Default4=C:\Code\python\dist\src\html
-  Variable Flags4=00001001
-  Variable Name5=_TCLMINOR_
-  Variable Description5=Tcl/Tk Minor Version (e.g. the "3" in "8.3.1")
-  Variable Default5=3
+  Variable Name4=_SYS_
+  Variable Description4=System directory (where to find MSVCRT.DLL)
+  Variable Default4=C:\Windows\System
+  Variable Values4=C:\Windows\System
+  Variable Values4=C:\WINNT\System32
+  Variable Flags4=00000010
+  Variable Name5=_PYMAJOR_
+  Variable Description5=Python major version number; the 2 in 2.3.
+  Variable Default5=2
   Variable Flags5=00001000
+  Variable Name6=_PYMINOR_
+  Variable Description6=Python minor version number; the 3 in 2.3
+  Variable Default6=1
+  Variable Flags6=00001000
+  Variable Name7=_DOADMIN_
+  Variable Description7=The initial value for %DOADMIN%.
+  Variable Description7=When 0, we never try to write under HKLM,
+  Variable Description7=and install the Python + MS runtime DLLs in
+  Variable Description7=the Python directory instead of the system dir.
+  Variable Default7=1
+  Variable Values7=1
+  Variable Values7=0
+  Variable Flags7=00001010
 end
-remarked item: Open/Close INSTALL.LOG
-  Flags=00000001
+item: Set Variable
+  Variable=PYVER_STRING
+  Value=2.1.2c1
 end
-item: Check if File/Dir Exists
-  Pathname=%SYS%
-  Flags=10000100
+item: Remark
+end
+item: Remark
+  Text=When the version number changes, set the compiler
+end
+item: Remark
+  Text=vrbls _PYMAJOR_ and  _PYMINOR_.
+end
+item: Remark
+  Text=Nothing in the script below should need fiddling then.
+end
+item: Remark
+  Text=Other things that need fiddling:
+end
+item: Remark
+  Text=    PYVER_STRING above.
+end
+item: Remark
+  Text=    The "Title:" in the upper left corner of the GUI.
+end
+item: Remark
+  Text=    Build Settings and Version Resource on step 6 (Finish) of the Installation Expert
+end
+item: Remark
+  Text=        Be sure to select Steps->All or you may not see these!
+end
+item: Remark
 end
 item: Set Variable
-  Variable=SYS
-  Value=%WIN%
+  Variable=APPTITLE
+  Value=Python %PYVER_STRING%
 end
-item: End Block
+item: Remark
+  Text=PY_VERSION should be major.minor only; used to create the registry key; must match MS_DLL_ID in python_nt.rc
+end
+item: Set Variable
+  Variable=PY_VERSION
+  Value=%_PYMAJOR_%.%_PYMINOR_%
+end
+item: Remark
+  Text=GROUP is the Start menu group name; user can override.
+end
+item: Set Variable
+  Variable=GROUP
+  Value=Python %PY_VERSION%
+  Flags=10000000
+end
+item: Remark
+  Text=MAINDIR is the app directory; user can override.
+end
+item: Set Variable
+  Variable=MAINDIR
+  Value=Python%_PYMAJOR_%%_PYMINOR_%
+end
+item: Remark
+end
+item: Set Variable
+  Variable=DOADMIN
+  Value=%_DOADMIN_%
+end
+item: Remark
+  Text=Give non-admin users a chance to abort.
 end
 item: Check Configuration
   Flags=10011111
 end
+item: Set Variable
+  Variable=DOADMIN
+  Value=0
+end
 item: Display Message
   Title=Doing non-admin install
   Text=The current login does not have Administrator Privileges on this machine.  Python will install its registry information into the per-user area only for the current login, instead of into the per-machine area for every account on this machine.  Some advanced uses of Python may not work as a result (for example, running a Python script as a service).
@@ -64,51 +145,372 @@ item: Display Message
 end
 item: End Block
 end
-item: Set Variable
-  Variable=APPTITLE
-  Value=Python 2.1.1
+item: Remark
 end
-item: Set Variable
-  Variable=GROUP
-  Value=Python 2.1
+item: Remark
+  Text=BEGIN WIZARD STUFF -----------------------------------------------------------------------------------------------------------------------------
 end
 item: Remark
-  Text=PY_VERSION should be major.minor only; used to create the registry key; must match MS_DLL_ID in python_nt.rc
+  Text=Note from Tim: the "stop" on the next line is actually "pause".
 end
-item: Set Variable
-  Variable=PY_VERSION
-  Value=2.1
+item: Open/Close INSTALL.LOG
+  Flags=00000001
+end
+item: Remark
+  Text=If the destination system does not have a writable Windows\System directory, system files will be written to the Windows\ directory
+end
+item: Check if File/Dir Exists
+  Pathname=%SYS%
+  Flags=10000100
 end
 item: Set Variable
-  Variable=MAINDIR
-  Value=Python21
+  Variable=SYS
+  Value=%WIN%
+end
+item: End Block
+end
+item: Check Configuration
+  Flags=10111011
+end
+item: Get Registry Key Value
+  Variable=COMMON
+  Key=SOFTWARE\Microsoft\Windows\CurrentVersion
+  Default=C:\Program Files\Common Files
+  Value Name=CommonFilesDir
+  Flags=00000100
 end
 item: Get Registry Key Value
   Variable=PROGRAM_FILES
   Key=SOFTWARE\Microsoft\Windows\CurrentVersion
   Default=C:\Program Files
   Value Name=ProgramFilesDir
-  Flags=00000101
+  Flags=00000100
+end
+item: Set Variable
+  Variable=EXPLORER
+  Value=1
+end
+item: End Block
+end
+item: Remark
+  Text=Note from Tim:  doesn't seem to be a way to get the true boot drive, the Wizard hardcodes "C".
 end
 item: Set Variable
   Variable=MAINDIR
-  Value=%PROGRAM_FILES%\%MAINDIR%
+  Value=C:\%MAINDIR%
+  Flags=00001100
+end
+item: Remark
+  Text=BACKUP is the variable that holds the path that all backup files will be copied to when overwritten
+end
+item: Set Variable
+  Variable=BACKUP
+  Value=%MAINDIR%\BACKUP
+  Flags=10000000
+end
+item: Remark
+  Text=DOBACKUP determines if a backup will be performed.  The possible values are A (do backup) or B (do not do backup)
+end
+item: Set Variable
+  Variable=DOBACKUP
+  Value=A
+end
+item: Remark
+  Text=BRANDING determines if the installation will be branded with a name and company.  By default, this is written to the INST directory (installation media).
+end
+item: Set Variable
+  Variable=BRANDING
+  Value=0
+end
+item: If/While Statement
+  Variable=BRANDING
+  Value=1
+end
+item: Read INI Value
+  Variable=NAME
+  Pathname=%INST%\CUSTDATA.INI
+  Section=Registration
+  Item=Name
+end
+item: Read INI Value
+  Variable=COMPANY
+  Pathname=%INST%\CUSTDATA.INI
+  Section=Registration
+  Item=Company
+end
+item: If/While Statement
+  Variable=NAME
+end
+item: Set Variable
+  Variable=DOBRAND
+  Value=1
+end
+item: Get System Information
+  Variable=NAME
+  Flags=00000110
+end
+item: Get System Information
+  Variable=COMPANY
+  Flags=00000111
+end
+item: End Block
+end
+item: End Block
+end
+item: Remark
+  Text=END WIZARD STUFF -----------------------------------------------------------------------------------------------------------------------------
+end
+item: Remark
+end
+item: Remark
+  Text=Set vrbls for the "Advanced Options" subdialog of Components.
+end
+item: Set Variable
+  Variable=SELECT_ADMIN
+  Value=A
+end
+item: If/While Statement
+  Variable=DOADMIN
+  Value=0
+end
+item: Set Variable
+  Variable=SELECT_ADMIN
+  Value=B
+end
+item: End Block
+end
+item: Remark
+end
+item: Remark
+  Text=TASKS values:
+end
+item: Remark
+  Text=A: Register file extensions
+end
+item: Remark
+  Text=B: Create Start Menu shortcuts
+end
+item: Set Variable
+  Variable=TASKS
+  Value=AB
+end
+item: Remark
+end
+item: Remark
+  Text=COMPONENTS values:
+end
+item: Remark
+  Text=A: interpreter and libraries
+end
+item: Remark
+  Text=B: Tcl/Tk
+end
+item: Remark
+  Text=C: docs
+end
+item: Remark
+  Text=D: tools
+end
+item: Remark
+  Text=E: test suite
 end
 item: Set Variable
   Variable=COMPONENTS
   Value=ABCDE
 end
+item: Remark
+end
+item: Remark
+  Text=March thru the user GUI.
+end
 item: Wizard Block
   Direction Variable=DIRECTION
   Display Variable=DISPLAY
-  Bitmap Pathname=C:\Wise\DIALOGS\TEMPLATE\WIZARD.BMP
+  Bitmap Pathname=.\installer.bmp
   X Position=9
   Y Position=10
-  Filler Color=8421440
+  Filler Color=11173759
+  Dialog=Select Destination Directory
+  Dialog=Backup Replaced Files
+  Dialog=Select Components
+  Dialog=Select Program Manager Group
+  Variable=
+  Variable=
+  Variable=
+  Variable=TASKS
+  Value=
+  Value=
+  Value=
+  Value=B
+  Compare=0
+  Compare=0
+  Compare=0
+  Compare=3
   Flags=00000011
 end
+item: If/While Statement
+  Variable=DISPLAY
+  Value=Start Installation
+end
+item: Set Variable
+  Variable=SUMMARY
+  Value=Install directory:  %MAINDIR%%CRLF%
+end
+item: Remark
+end
+item: If/While Statement
+  Variable=SELECT_ADMIN
+  Value=A
+end
+item: Set Variable
+  Variable=SUMMARY
+  Value=%CRLF%Doing admin install.%CRLF%
+  Flags=00000001
+end
+item: Else Statement
+end
+item: Set Variable
+  Variable=SUMMARY
+  Value=%CRLF%Doing non-admin install.%CRLF%
+  Flags=00000001
+end
+item: End Block
+end
+item: Remark
+end
+item: If/While Statement
+  Variable=DOBACKUP
+  Value=A
+end
+item: Set Variable
+  Variable=SUMMARY
+  Value=%CRLF%Make backups, into %BACKUP%%CRLF%
+  Flags=00000001
+end
+item: Else Statement
+end
+item: Set Variable
+  Variable=SUMMARY
+  Value=%CRLF%Don't make backups.%CRLF%
+  Flags=00000001
+end
+item: End Block
+end
+item: Remark
+end
+item: Set Variable
+  Variable=SUMMARY
+  Value=%CRLF%Components:%CRLF%
+  Flags=00000001
+end
+item: If/While Statement
+  Variable=COMPONENTS
+  Value=A
+  Flags=00000010
+end
+item: Set Variable
+  Variable=SUMMARY
+  Value=    Python interpreter and libraries%CRLF%
+  Flags=00000001
+end
+item: End Block
+end
+item: If/While Statement
+  Variable=COMPONENTS
+  Value=B
+  Flags=00000010
+end
+item: Set Variable
+  Variable=SUMMARY
+  Value=    Tcl/Tk (Tkinter, IDLE, pydoc)%CRLF%
+  Flags=00000001
+end
+item: End Block
+end
+item: If/While Statement
+  Variable=COMPONENTS
+  Value=C
+  Flags=00000010
+end
+item: Set Variable
+  Variable=SUMMARY
+  Value=    Python documentation%CRLF%
+  Flags=00000001
+end
+item: End Block
+end
+item: If/While Statement
+  Variable=COMPONENTS
+  Value=D
+  Flags=00000010
+end
+item: Set Variable
+  Variable=SUMMARY
+  Value=    Tool and utility scripts%CRLF%
+  Flags=00000001
+end
+item: End Block
+end
+item: If/While Statement
+  Variable=COMPONENTS
+  Value=E
+  Flags=00000010
+end
+item: Set Variable
+  Variable=SUMMARY
+  Value=    Python test suite%CRLF%
+  Flags=00000001
+end
+item: End Block
+end
+item: Remark
+end
+item: If/While Statement
+  Variable=TASKS
+  Value=A
+  Flags=00000010
+end
+item: Set Variable
+  Variable=SUMMARY
+  Value=%CRLF%Register file extensions.%CRLF%
+  Flags=00000001
+end
+item: Else Statement
+end
+item: Set Variable
+  Variable=SUMMARY
+  Value=%CRLF%Don't register file extensions.%CRLF%
+  Flags=00000001
+end
+item: End Block
+end
+item: Remark
+end
+item: If/While Statement
+  Variable=TASKS
+  Value=B
+  Flags=00000010
+end
+item: Set Variable
+  Variable=SUMMARY
+  Value=%CRLF%Start Menu group:  %GROUP%%CRLF%
+  Flags=00000001
+end
+item: Else Statement
+end
+item: Set Variable
+  Variable=SUMMARY
+  Value=%CRLF%No Start Menu shortcuts.%CRLF%
+  Flags=00000001
+end
+item: End Block
+end
+item: End Block
+end
+item: Remark
+end
 item: Custom Dialog Set
-  Name=Welcome
+  Name=Select Destination Directory
   Display Variable=DISPLAY
   item: Dialog
     Title=%APPTITLE% Installation
@@ -116,24 +518,12 @@ item: Custom Dialog Set
     Title German=Installation von %APPTITLE%
     Title Spanish=Instalación de %APPTITLE%
     Title Italian=Installazione di %APPTITLE%
-    Width=271
-    Height=224
+    Width=339
+    Height=280
     Font Name=Helv
     Font Size=8
-    item: Static
-      Rectangle=86 8 258 42
-      Create Flags=01010000000000000000000000000000
-      Flags=0000000000000001
-      Name=Times New Roman
-      Font Style=-24 0 0 0 700 255 0 0 0 3 2 1 18
-      Text=Welcome!
-      Text French=Bienvenue !
-      Text German=Willkommen!
-      Text Spanish=¡Bienvenido!
-      Text Italian=Benvenuti!
-    end
     item: Push Button
-      Rectangle=150 187 195 202
+      Rectangle=188 234 244 253
       Variable=DIRECTION
       Value=N
       Create Flags=01010000000000010000000000000001
@@ -144,7 +534,7 @@ item: Custom Dialog Set
       Text Italian=&Avanti >
     end
     item: Push Button
-      Rectangle=211 186 256 201
+      Rectangle=264 234 320 253
       Action=3
       Create Flags=01010000000000010000000000000000
       Text=&Cancel
@@ -154,172 +544,360 @@ item: Custom Dialog Set
       Text Italian=&Annulla
     end
     item: Static
-      Rectangle=86 42 256 131
+      Rectangle=10 225 320 226
+      Action=3
+      Create Flags=01010000000000000000000000000111
+    end
+    item: Static
+      Rectangle=108 11 323 33
       Create Flags=01010000000000000000000000000000
-      Text=This installation program will install %APPTITLE% on your system.
+      Flags=0000000000000001
+      Name=Times New Roman
+      Font Style=-24 0 0 0 700 255 0 0 0 3 2 1 18
+      Text=Select Destination Directory
+      Text French=Sélectionner le répertoire de destination
+      Text German=Zielverzeichnis wählen
+      Text Spanish=Seleccione el directorio de destino
+      Text Italian=Selezionare Directory di destinazione
+    end
+    item: Listbox
+      Rectangle=108 58 321 219
+      Variable=MAINDIR
+      Enabled Color=00000000000000001111111111111111
+      Create Flags=01010000100000010000000101000001
+      Flags=0000110000001010
+      Text=%MAINDIR%
       Text=
-      Text=Click the Next button to start the installation. Click the Cancel button now if you do not want to install %APPTITLE% at this time.
-      Text French=Ce programme d'installation va installer %APPTITLE%.
-      Text French=
-      Text French=Cliquez sur le bouton Suite pour démarrer l'installation. Vous pouvez cliquer sur le bouton Quitter l'installation si vous ne voulez pas installer %APPTITLE% tout de suite.
-      Text German=Mit diesem Installationsprogramm wird %APPTITLE% installiert.
-      Text German=
-      Text German=Klicken Sie auf "Weiter", um mit der Installation zu beginnen. Klicken Sie auf "Abbrechen", um die Installation von %APPTITLE% abzubrechen.
-      Text Spanish=Este programa de instalación instalará %APPTITLE%.
-      Text Spanish=
-      Text Spanish=Presione el botón Siguiente para iniciar la instalación. Puede presionar el botón Salir de instalación si no desea instalar %APPTITLE% en este momento.
-      Text Italian=Questo programma installerà %APPTITLE%.
-      Text Italian=
-      Text Italian=Per avvviare l'installazione premere il pulsante Avanti. Se non si desidera installare %APPTITLE% ora, premere il pulsante Esci dall'installazione.
     end
     item: Static
-      Rectangle=8 180 256 181
-      Action=3
-      Create Flags=01010000000000000000000000000111
+      Rectangle=108 40 313 58
+      Enabled Color=00000000000000001111111111111111
+      Create Flags=01010000000000000000000000000000
+      Text=Please select a directory for the %APPTITLE% files.
+    end
+  end
+  item: Dialog
+    Title=Select Destination Directory
+    Title French=Sélectionner le répertoire de destination
+    Title German=Zielverzeichnis wählen
+    Title Spanish=Seleccione el directorio de destino
+    Title Italian=Selezionare Directory di destinazione
+    Width=276
+    Height=216
+    Font Name=Helv
+    Font Size=8
+    item: Listbox
+      Rectangle=6 6 204 186
+      Variable=MAINDIR
+      Create Flags=01010000100000010000000101000000
+      Flags=0000110000100010
+      Text=%MAINDIR%
+      Text French=%MAINDIR%
+      Text German=%MAINDIR%
+      Text Spanish=%MAINDIR%
+      Text Italian=%MAINDIR%
+    end
+    item: Push Button
+      Rectangle=209 8 265 26
+      Create Flags=01010000000000010000000000000001
+      Text=OK
+      Text French=OK
+      Text German=OK
+      Text Spanish=Aceptar
+      Text Italian=OK
+    end
+    item: Push Button
+      Rectangle=209 31 265 50
+      Variable=MAINDIR
+      Value=%MAINDIR_SAVE%
+      Create Flags=01010000000000010000000000000000
+      Flags=0000000000000001
+      Text=Cancel
+      Text French=Annuler
+      Text German=Abbrechen
+      Text Spanish=Cancelar
+      Text Italian=Annulla
     end
   end
 end
 item: Custom Dialog Set
-  Name=Select Destination Directory
+  Name=Backup Replaced Files
   Display Variable=DISPLAY
   item: Dialog
     Title=%APPTITLE% Installation
-    Title French=Installation de %APPTITLE%
-    Title German=Installation von %APPTITLE%
-    Title Spanish=Instalación de %APPTITLE%
-    Title Italian=Installazione di %APPTITLE%
-    Width=271
-    Height=224
+    Title French=Fichiers de Sauvegarde Remplacés
+    Title German=Sicherungskopie von ersetzten Dateien erstellen
+    Title Portuguese=Ficheiros substituídos de segurança
+    Title Spanish=Copias de seguridad de los archivos reemplazados
+    Title Italian=Backup file sostituiti
+    Title Danish=Sikkerhedskopiering af erstattede filer
+    Title Dutch=Vervangen bestanden kopiëren
+    Title Norwegian=Sikkerhetskopiere erstattede filer
+    Title Swedish=Säkerhetskopiera utbytta filer
+    Width=350
+    Height=280
     Font Name=Helv
     Font Size=8
     item: Push Button
-      Rectangle=150 187 195 202
+      Rectangle=188 234 244 251
       Variable=DIRECTION
       Value=N
       Create Flags=01010000000000010000000000000001
       Text=&Next >
-      Text French=&Suite >
-      Text German=&Weiter >
+      Text French=&Suivant>
+      Text German=&Weiter>
+      Text Portuguese=&Próximo>
       Text Spanish=&Siguiente >
       Text Italian=&Avanti >
+      Text Danish=&Næste>
+      Text Dutch=&Volgende>
+      Text Norwegian=&Neste>
+      Text Swedish=&Nästa >
     end
     item: Push Button
-      Rectangle=105 187 150 202
+      Rectangle=131 234 188 251
       Variable=DIRECTION
       Value=B
       Create Flags=01010000000000010000000000000000
-      Flags=0000000000000001
       Text=< &Back
-      Text French=< &Retour
-      Text German=< &Zurück
-      Text Spanish=< &Atrás
+      Text French=<&Retour
+      Text German=<&Zurück
+      Text Portuguese=<&Retornar
+      Text Spanish=<&Retroceder
       Text Italian=< &Indietro
+      Text Danish=<&Tilbage
+      Text Dutch=<&Terug
+      Text Norwegian=<&Tilbake
+      Text Swedish=< &Tillbaka
     end
     item: Push Button
-      Rectangle=211 187 256 202
+      Rectangle=278 234 330 251
       Action=3
       Create Flags=01010000000000010000000000000000
-      Text=&Cancel
-      Text French=&Annuler
-      Text German=&Abbrechen
-      Text Spanish=&Cancelar
-      Text Italian=&Annulla
+      Text=Cancel
+      Text French=Annuler
+      Text German=Abbrechen
+      Text Portuguese=Cancelar
+      Text Spanish=Cancelar
+      Text Italian=Annulla
+      Text Danish=Annuller
+      Text Dutch=Annuleren
+      Text Norwegian=Avbryt
+      Text Swedish=Avbryt
     end
     item: Static
-      Rectangle=8 180 256 181
+      Rectangle=11 221 329 223
       Action=3
       Create Flags=01010000000000000000000000000111
     end
     item: Static
-      Rectangle=86 8 258 42
+      Rectangle=108 46 320 98
       Create Flags=01010000000000000000000000000000
-      Flags=0000000000000001
-      Name=Times New Roman
-      Font Style=-24 0 0 0 700 255 0 0 0 3 2 1 18
-      Text=Select Destination Directory
-      Text French=Sélectionner le répertoire de destination
-      Text German=Zielverzeichnis wählen
-      Text Spanish=Seleccione el directorio de destino
-      Text Italian=Selezionare Directory di destinazione
+      Text=This installation program can create backup copies of all files replaced during the installation. These files will be used when the software is uninstalled and a rollback is requested.  If backup copies are not created, you will only be able to uninstall the software and not roll the system back to a previous state.
+      Text=
+      Text=Do you want to create backups of replaced files?
+      Text French=Le programme d'installation peut créer des copies de sauvegarde de tous les fichiers remplacés pendant l'installation. Ces fichiers sont utilisés au cas où le logiciel est désinstallé et que l'on procède à la reprise du système. Si les copies de sauvegarde ne sont pas créées, on ne pourra que désinstaller le logiciel sans reprendre le système à un état précédent. Voulez-vous créer une sauvegarde des fichiers remplacés ?
+      Text German=Dieses Installationsprogramm kann Sicherungskopien von allen während der Installation ersetzten Dateien erstellen. Diese Dateien werden zur Rückgängigmachung der Installation und bei Anforderung eines Rollbacks verwendet. Ohne Sicherungskopien ist nur eine Rückgängigmachung der Installation möglich, nicht aber ein Rollback des Systems. Sicherungskopien der ersetzten Dateien erstellen?
+      Text Portuguese=Este programa de instalação pode criar cópias de segurança de todos os ficheiros substituídos durante a instalação. Estes ficheiros serão utilizados quando o programa for desinstalado  e for requisitada uma retomada. Se as cópias de segurança não forem criadas, só poderá desinstalar o programa e não pode retomar  um estado anterior do sistema. Deseja criar cópias de segurança dos ficheiros substituídos?
+      Text Spanish=Este programa de instalación puede crear copias de seguridad de todos los archivos reemplazados durante la instalación. Estos archivos se utilizarán cuando se desinstale el software y se solicite volver al estado anterior. Si no se crean copias de seguridad, únicamente podrá desinstalar el software y no podrá devolver el sistema al estado anterior. ¿Desea crear archivos de seguridad de los archivos reemplazados?
+      Text Italian=Questo programma di installazione può creare copie di backup di tutti i file sostituiti durante l\92installazione. Questi file saranno usati quando il software sarà disinstallato e sarà richiesto un ritorno allo stato precedente. Se non crei le copie di backup, potrai solo disinstallare il software, ma non potrai riportare il sistema allo stato precedente. Vuoi creare i file di backup dei file sostituiti?
+      Text Danish=Dette installationsprogram kan oprette sikkerhedskopier af alle filer, som erstattes under installationen. Disse filer benyttes, når softwaren fjernes, og den tidligere systemkonfiguration genetableres. Hvis der ikke oprettes sikkerhedskopier, kan du kun fjerne den installerede software og ikke genetablere den tidligere systemkonfiguration. Vil du oprette sikkerhedskopier af filer, som erstattes?
+      Text Dutch=Dit installatieprogramma kan kopieën maken van alle bestanden die tijdens de installatie worden vervangen. Deze worden dan gebruikt als de software-installatie ongedaan wordt gemaakt en u het systeem wilt laten terugkeren naar de oorspronkelijke staat. Als er geen back-up kopieën worden gemaakt, kunt u de software enkel verwijderen maar het systeem niet in de oorspronkelijke staat terugbrengen. Wilt u een back-up maken van de vervangen bestanden?
+      Text Norwegian=Dette installasjonsprogrammet kan lage sikkerhetskopier av alle filer som blir erstattet under installasjonen. Disse filene vil tas i bruk når programvaren er avinstallert og det er behov for tilbakestilling. Hvis det ikke er laget sikkerhetskopier, kan du kun avinstallere programvaren og ikke stille systemet tilbake til tidligere status. Ønsker du å lage sikkerhetskopier av de filene som blir erstattet nå?
+      Text Swedish=Installationsprogrammet kan skapa säkerhetskopior av alla filer som byts ut under installationen. Dessa filer kan sedan användas när programvaran avinstalleras och du begär rollback. Om du då inte har några säkerhetskopior kan du bara avinstallera programvaran, inte återskapa systemet i dess tidigare skick. Vill du göra säkerhetskopior av de ersatta filerna?
     end
-    item: Static
-      Rectangle=86 42 256 82
-      Create Flags=01010000000000000000000000000000
-      Text=Please select the directory where the %APPTITLE% files are to be installed.
-      Text French=Veuillez sélectionner le répertoire dans lequel les fichiers %APPTITLE% doivent être installés.
-      Text German=Geben Sie an, in welchem Verzeichnis die %APPTITLE%-Dateien installiert werden sollen.
-      Text Spanish=Por favor seleccione el directorio donde desee instalar los archivos de %APPTITLE%.
-      Text Italian=Selezionare la directory dove verranno installati i file %APPTITLE%.
+    item: Radio Button
+      Rectangle=141 106 265 136
+      Variable=DOBACKUP
+      Create Flags=01010000000000010000000000001001
+      Text=&Yes, make backups
+      Text=N&o, do not make backups
+      Text=
+      Text French=&Oui
+      Text French=N&on
+      Text French=
+      Text German=&Ja
+      Text German=N&ein
+      Text German=
+      Text Portuguese=&Sim
+      Text Portuguese=Nã&o
+      Text Portuguese=
+      Text Spanish=&Sí
+      Text Spanish=N&o
+      Text Spanish=
+      Text Italian=&Sì
+      Text Italian=N&o
+      Text Italian=
+      Text Danish=&Ja
+      Text Danish=&Nej
+      Text Danish=
+      Text Dutch=&Ja
+      Text Dutch=N&ee
+      Text Dutch=
+      Text Norwegian=&Ja
+      Text Norwegian=&Nei
+      Text Norwegian=
+      Text Swedish=&Ja
+      Text Swedish=N&ej
+      Text Swedish=
     end
     item: Static
-      Rectangle=86 98 256 125
+      Control Name=BACK2
+      Rectangle=108 173 320 208
       Action=1
       Create Flags=01010000000000000000000000000111
+      Text=Backup File Destination Directory
+      Text French=Répertoire de destination des fichiers de sauvegarde
+      Text German=Zielverzeichnis für die Sicherungsdatei
+      Text Portuguese=Directório de destino de ficheiro de segurança
+      Text Spanish=Directorio de Destino de los Archivos de Seguridad
+      Text Italian=Directory di destinazione dei file di backup
+      Text Danish=Destinationsbibliotek til sikkerhedskopier
+      Text Dutch=Doeldirectory backup-bestand
+      Text Norwegian=Målkatalog for sikkerhetskopier
+      Text Swedish=Katalog för säkerhetskopierade filer
     end
     item: Push Button
-      Rectangle=208 106 253 121
-      Variable=MAINDIR_SAVE
-      Value=%MAINDIR%
+      Control Name=BACK3
+      Rectangle=265 185 318 203
+      Variable=BACKUP_SAVE
+      Value=%BACKUP%
       Destination Dialog=1
       Action=2
       Create Flags=01010000000000010000000000000000
-      Text=Browse
-      Text French=Parcourir
-      Text German=Durchsuchen
-      Text Spanish=Buscar
-      Text Italian=Sfoglie
+      Text=B&rowse...
+      Text French=P&arcourir
+      Text German=B&lättern...
+      Text Portuguese=P&rocurar
+      Text Spanish=V&isualizar...
+      Text Italian=Sfoglia...
+      Text Danish=&Gennemse...
+      Text Dutch=B&laderen...
+      Text Norwegian=Bla igjennom
+      Text Swedish=&Bläddra
     end
     item: Static
-      Rectangle=90 109 206 120
+      Control Name=BACK4
+      Rectangle=129 188 254 200
+      Destination Dialog=2
       Create Flags=01010000000000000000000000000000
-      Text=%MAINDIR%
-      Text French=%MAINDIR%
-      Text German=%MAINDIR%
-      Text Spanish=%MAINDIR%
-      Text Italian=%MAINDIR%
+      Text=%BACKUP%
+      Text French=%BACKUP%
+      Text German=%BACKUP%
+      Text Portuguese=%BACKUP%
+      Text Spanish=%BACKUP%
+      Text Italian=%BACKUP%
+      Text Danish=%BACKUP%
+      Text Dutch=%BACKUP%
+      Text Norwegian=%BACKUP%
+      Text Swedish=%BACKUP%
+    end
+    item: Static
+      Rectangle=108 11 323 36
+      Create Flags=01010000000000000000000000000000
+      Flags=0000000000000001
+      Name=Times New Roman
+      Font Style=-24 0 0 0 700 255 0 0 0 3 2 1 18
+      Text=Backup Replaced Files
+      Text French=Sélectionner les composants
+      Text German=Komponenten auswählen
+      Text Spanish=Seleccione componentes
+      Text Italian=Selezionare i componenti
+    end
+    item: If/While Statement
+      Variable=DOBACKUP
+      Value=B
+    end
+    item: Set Control Attribute
+      Control Name=BACK3
+      Operation=1
+    end
+    item: Set Control Attribute
+      Control Name=BACK4
+      Operation=1
+    end
+    item: Else Statement
+    end
+    item: Set Control Attribute
+      Control Name=BACK3
+    end
+    item: Set Control Attribute
+      Control Name=BACK4
+    end
+    item: End Block
     end
   end
   item: Dialog
     Title=Select Destination Directory
-    Title French=Sélectionner le répertoire de destination
+    Title French=Choisissez le répertoire de destination
     Title German=Zielverzeichnis wählen
-    Title Spanish=Seleccione el directorio de destino
-    Title Italian=Selezionare Directory di destinazione
-    Width=221
-    Height=173
+    Title Portuguese=Seleccionar Directório de Destino
+    Title Spanish=Seleccione el Directorio de Destino
+    Title Italian=Seleziona Directory di destinazione
+    Title Danish=Vælg Destinationsbibliotek
+    Title Dutch=Kies Doeldirectory
+    Title Norwegian=Velg målkatalog
+    Title Swedish=Välj destinationskalatog
+    Width=276
+    Height=216
     Font Name=Helv
     Font Size=8
     item: Listbox
-      Rectangle=5 5 163 149
-      Variable=MAINDIR
+      Rectangle=6 3 200 186
+      Variable=BACKUP
       Create Flags=01010000100000010000000101000000
       Flags=0000110000100010
-      Text=%MAINDIR%
-      Text French=%MAINDIR%
-      Text German=%MAINDIR%
-      Text Spanish=%MAINDIR%
-      Text Italian=%MAINDIR%
+      Text=%BACKUP%
+      Text=
+      Text French=%BACKUP%
+      Text French=
+      Text German=%BACKUP%
+      Text German=
+      Text Portuguese=%BACKUP%
+      Text Portuguese=
+      Text Spanish=%BACKUP%
+      Text Spanish=
+      Text Italian=%BACKUP%
+      Text Italian=
+      Text Danish=%BACKUP%
+      Text Danish=
+      Text Dutch=%BACKUP%
+      Text Dutch=
+      Text Norwegian=%BACKUP%
+      Text Norwegian=
+      Text Swedish=%BACKUP%
+      Text Swedish=
     end
     item: Push Button
-      Rectangle=167 6 212 21
+      Rectangle=209 8 265 26
       Create Flags=01010000000000010000000000000001
       Text=OK
       Text French=OK
       Text German=OK
-      Text Spanish=Aceptar
+      Text Portuguese=OK
+      Text Spanish=ACEPTAR
       Text Italian=OK
+      Text Danish=OK
+      Text Dutch=OK
+      Text Norwegian=OK
+      Text Swedish=OK
     end
     item: Push Button
-      Rectangle=167 25 212 40
-      Variable=MAINDIR
-      Value=%MAINDIR_SAVE%
+      Rectangle=209 31 265 50
+      Variable=BACKUP
+      Value=%BACKUP_SAVE%
       Create Flags=01010000000000010000000000000000
       Flags=0000000000000001
       Text=Cancel
       Text French=Annuler
       Text German=Abbrechen
+      Text Portuguese=Cancelar
       Text Spanish=Cancelar
       Text Italian=Annulla
+      Text Danish=Slet
+      Text Dutch=Annuleren
+      Text Norwegian=Avbryt
+      Text Swedish=Avbryt
     end
   end
 end
@@ -332,12 +910,12 @@ item: Custom Dialog Set
     Title German=Installation von %APPTITLE%
     Title Spanish=Instalación de %APPTITLE%
     Title Italian=Installazione di %APPTITLE%
-    Width=271
-    Height=224
+    Width=339
+    Height=280
     Font Name=Helv
     Font Size=8
     item: Push Button
-      Rectangle=150 187 195 202
+      Rectangle=188 234 244 253
       Variable=DIRECTION
       Value=N
       Create Flags=01010000000000010000000000000001
@@ -348,7 +926,7 @@ item: Custom Dialog Set
       Text Italian=&Avanti >
     end
     item: Push Button
-      Rectangle=105 187 150 202
+      Rectangle=131 234 188 253
       Variable=DIRECTION
       Value=B
       Create Flags=01010000000000010000000000000000
@@ -359,7 +937,7 @@ item: Custom Dialog Set
       Text Italian=< &Indietro
     end
     item: Push Button
-      Rectangle=211 187 256 202
+      Rectangle=264 234 320 253
       Action=3
       Create Flags=01010000000000010000000000000000
       Text=&Cancel
@@ -368,13 +946,62 @@ item: Custom Dialog Set
       Text Spanish=&Cancelar
       Text Italian=&Annulla
     end
+    item: Checkbox
+      Rectangle=108 66 313 156
+      Variable=COMPONENTS
+      Create Flags=01010000000000010000000000000011
+      Flags=0000000000000110
+      Text=Python interpreter and libraries
+      Text=Tcl/Tk (Tkinter, IDLE, pydoc)
+      Text=Python HTML docs
+      Text=Python utility scripts (Tools/)
+      Text=Python test suite (Lib/test/)
+      Text=
+      Text French=Python interpreter, library and IDLE
+      Text French=Python HTML docs
+      Text French=Python utility scripts (Tools/)
+      Text French=Python test suite (Lib/test/)
+      Text French=
+      Text German=Python interpreter, library and IDLE
+      Text German=Python HTML docs
+      Text German=Python utility scripts (Tools/)
+      Text German=Python test suite (Lib/test/)
+      Text German=
+      Text Spanish=Python interpreter, library and IDLE
+      Text Spanish=Python HTML docs
+      Text Spanish=Python utility scripts (Tools/)
+      Text Spanish=Python test suite (Lib/test/)
+      Text Spanish=
+      Text Italian=Python interpreter, library and IDLE
+      Text Italian=Python HTML docs
+      Text Italian=Python utility scripts (Tools/)
+      Text Italian=Python test suite (Lib/test/)
+      Text Italian=
+    end
+    item: Static
+      Rectangle=108 45 320 63
+      Create Flags=01010000000000000000000000000000
+      Text=Choose which components to install by checking the boxes below.
+      Text French=Choisissez les composants que vous voulez installer en cochant les cases ci-dessous.
+      Text German=Wählen Sie die zu installierenden Komponenten, indem Sie in die entsprechenden Kästchen klicken.
+      Text Spanish=Elija los componentes que desee instalar marcando los cuadros de abajo.
+      Text Italian=Scegliere quali componenti installare selezionando le caselle sottostanti.
+    end
+    item: Push Button
+      Rectangle=188 203 269 220
+      Destination Dialog=1
+      Action=2
+      Enabled Color=00000000000000000000000011111111
+      Create Flags=01010000000000010000000000000000
+      Text=Advanced Options ...
+    end
     item: Static
-      Rectangle=8 180 256 181
+      Rectangle=10 225 320 226
       Action=3
       Create Flags=01010000000000000000000000000111
     end
     item: Static
-      Rectangle=86 8 258 42
+      Rectangle=108 10 323 43
       Create Flags=01010000000000000000000000000000
       Flags=0000000000000001
       Name=Times New Roman
@@ -385,47 +1012,19 @@ item: Custom Dialog Set
       Text Spanish=Seleccione componentes
       Text Italian=Selezionare i componenti
     end
-    item: Checkbox
-      Rectangle=86 66 256 138
-      Variable=COMPONENTS
-      Create Flags=01010000000000010000000000000011
-      Flags=0000000000000110
-      Text=Python Utility Scripts
-      Text=Python Help Files
-      Text=Python test suite
-      Text=Python interpreter and library
-      Text=Tcl/Tk support
-      Text=
-      Text French=Python Utility Scripts
-      Text French=Python Help Files
-      Text French=Python test suite
-      Text French=
-      Text German=Python Utility Scripts
-      Text German=Python Help Files
-      Text German=Python test suite
-      Text German=
-      Text Spanish=Python Utility Scripts
-      Text Spanish=Python Help Files
-      Text Spanish=Python test suite
-      Text Spanish=
-      Text Italian=Python Utility Scripts
-      Text Italian=Python Help Files
-      Text Italian=Python test suite
-      Text Italian=
-    end
     item: Static
-      Rectangle=194 162 242 172
+      Rectangle=251 180 311 193
       Variable=COMPONENTS
       Value=MAINDIR
       Create Flags=01010000000000000000000000000010
     end
     item: Static
-      Rectangle=194 153 242 162
+      Rectangle=251 168 311 179
       Variable=COMPONENTS
       Create Flags=01010000000000000000000000000010
     end
     item: Static
-      Rectangle=107 153 196 164
+      Rectangle=123 168 234 181
       Create Flags=01010000000000000000000000000000
       Text=Disk Space Required:
       Text French=Espace disque requis :
@@ -434,7 +1033,7 @@ item: Custom Dialog Set
       Text Italian=Spazio su disco necessario:
     end
     item: Static
-      Rectangle=107 162 196 172
+      Rectangle=123 180 234 193
       Create Flags=01010000000000000000000000000000
       Text=Disk Space Remaining:
       Text French=Espace disque disponible :
@@ -443,18 +1042,139 @@ item: Custom Dialog Set
       Text Italian=Spazio su disco disponibile:
     end
     item: Static
-      Rectangle=86 145 256 175
+      Rectangle=108 158 320 196
+      Action=1
+      Create Flags=01010000000000000000000000000111
+    end
+    item: If/While Statement
+      Variable=DLG_EVENT_TYPE
+      Value=VERIFY
+    end
+    item: Remark
+      Text=If they're installing Tcl/Tk, Tools, or the test suite, doesn't make much sense unless they're installing Python too.
+    end
+    item: If/While Statement
+      Variable=COMPONENTS
+      Value=BDE
+      Flags=00001010
+    end
+    item: If/While Statement
+      Variable=COMPONENTS
+      Value=A
+      Flags=00000011
+    end
+    item: Display Message
+      Title=Are you sure?
+      Text=Installing Tcl/Tk, Tools or the test suite doesn't make much sense unless you install the Python interpreter and libraries too.
+      Text=
+      Text=Click Yes if that's really what you want.
+      Flags=00101101
+    end
+    item: Remark
+      Text=Nothing -- just proceed to the next dialog.
+    end
+    item: Else Statement
+    end
+    item: Remark
+      Text=Return to the dialog.
+    end
+    item: Set Variable
+      Variable=DLG_EVENT_TYPE
+    end
+    item: End Block
+    end
+    item: End Block
+    end
+    item: End Block
+    end
+    item: End Block
+    end
+  end
+  item: Dialog
+    Title=Advanced Options
+    Width=339
+    Height=213
+    Font Name=Helv
+    Font Size=8
+    item: Radio Button
+      Control Name=ADMIN2
+      Rectangle=11 46 90 76
+      Variable=SELECT_ADMIN
+      Enabled Color=00000000000000001111111111111111
+      Create Flags=01010000000000010000000000001001
+      Text=Admin install
+      Text=Non-Admin installl
+      Text=
+    end
+    item: Push Button
+      Rectangle=188 170 244 189
+      Variable=DIRECTION
+      Value=N
+      Create Flags=01010000000000010000000000000001
+      Text=OK
+      Text French=&Suite >
+      Text German=&Weiter >
+      Text Spanish=&Siguiente >
+      Text Italian=&Avanti >
+    end
+    item: Static
+      Rectangle=5 3 326 83
       Action=1
+      Enabled Color=00000000000000001111111111111111
       Create Flags=01010000000000000000000000000111
     end
     item: Static
-      Rectangle=86 42 256 61
+      Control Name=ADMIN1
+      Rectangle=11 11 321 45
+      Enabled Color=00000000000000001111111111111111
       Create Flags=01010000000000000000000000000000
-      Text=Choose which components to install by checking the boxes below.
-      Text French=Choisissez les composants que vous voulez installer en cochant les cases ci-dessous.
-      Text German=Wählen Sie die zu installierenden Komponenten, indem Sie in die entsprechenden Kästchen klicken.
-      Text Spanish=Elija los componentes que desee instalar marcando los cuadros de abajo.
-      Text Italian=Scegliere quali componenti installare selezionando le caselle sottostanti.
+      Text=By default, the install records settings in the per-machine area of the registry (HKLM), and installs the Python and C runtime DLLs to %SYS32%.  Choose "Non-Admin install" if you would prefer settings made in the per-user registry (HKCU), and DLLs installed in %MAINDIR%.
+    end
+    item: Static
+      Rectangle=5 90 326 157
+      Action=1
+      Enabled Color=00000000000000001111111111111111
+      Create Flags=01010000000000000000000000000111
+    end
+    item: Checkbox
+      Rectangle=11 121 243 151
+      Variable=TASKS
+      Enabled Color=00000000000000001111111111111111
+      Create Flags=01010000000000010000000000000011
+      Text=Register file extensions (.py, .pyw, .pyc, .pyo)
+      Text=Create Start Menu shortcuts
+      Text=
+    end
+    item: Static
+      Rectangle=11 103 320 121
+      Enabled Color=00000000000000001111111111111111
+      Create Flags=01010000000000000000000000000000
+      Text=Choose tasks to perform by checking the boxes below.
+    end
+    item: If/While Statement
+      Variable=DLG_EVENT_TYPE
+      Value=INIT
+    end
+    item: If/While Statement
+      Variable=DOADMIN
+      Value=1
+    end
+    item: Set Control Attribute
+      Control Name=ADMIN2
+    end
+    item: Else Statement
+    end
+    item: Set Control Text
+      Control Name=ADMIN1
+      Control Text=This section is available only if logged in to an account with Administrator privileges.
+    end
+    item: Set Control Attribute
+      Control Name=ADMIN2
+      Operation=1
+    end
+    item: End Block
+    end
+    item: End Block
     end
   end
 end
@@ -467,12 +1187,12 @@ item: Custom Dialog Set
     Title German=Installation von %APPTITLE%
     Title Spanish=Instalación de %APPTITLE%
     Title Italian=Installazione di %APPTITLE%
-    Width=271
-    Height=224
+    Width=339
+    Height=280
     Font Name=Helv
     Font Size=8
     item: Push Button
-      Rectangle=150 187 195 202
+      Rectangle=188 234 244 253
       Variable=DIRECTION
       Value=N
       Create Flags=01010000000000010000000000000001
@@ -483,7 +1203,7 @@ item: Custom Dialog Set
       Text Italian=&Avanti >
     end
     item: Push Button
-      Rectangle=105 187 150 202
+      Rectangle=131 234 188 253
       Variable=DIRECTION
       Value=B
       Create Flags=01010000000000010000000000000000
@@ -495,7 +1215,7 @@ item: Custom Dialog Set
       Text Italian=< &Indietro
     end
     item: Push Button
-      Rectangle=211 187 256 202
+      Rectangle=264 234 320 253
       Action=3
       Create Flags=01010000000000010000000000000000
       Text=&Cancel
@@ -505,24 +1225,24 @@ item: Custom Dialog Set
       Text Italian=&Annulla
     end
     item: Static
-      Rectangle=8 180 256 181
+      Rectangle=10 225 320 226
       Action=3
       Create Flags=01010000000000000000000000000111
     end
     item: Static
-      Rectangle=86 8 258 42
+      Rectangle=108 10 323 53
       Create Flags=01010000000000000000000000000000
       Flags=0000000000000001
       Name=Times New Roman
       Font Style=-24 0 0 0 700 255 0 0 0 3 2 1 18
       Text=Select Start Menu Group
-      Text French=Sélectionner le groupe du Gestionnaire de programme 
+      Text French=Sélectionner le groupe du Gestionnaire de programme
       Text German=Bestimmung der Programm-Managergruppe
       Text Spanish=Seleccione grupo del Administrador de programas
-      Text Italian=Selezionare il gruppo ProgMan 
+      Text Italian=Selezionare il gruppo ProgMan
     end
     item: Static
-      Rectangle=86 44 256 68
+      Rectangle=108 35 320 65
       Create Flags=01010000000000000000000000000000
       Text=Enter the name of the Start Menu program group to which to add the %APPTITLE% icons:
       Text French=Entrez le nom du groupe du Gestionnaire de programme dans lequel vous souhaitez ajouter les icônes de %APPTITLE% :
@@ -531,11 +1251,12 @@ item: Custom Dialog Set
       Text Italian=Inserire il nome del gruppo Program Manager per aggiungere le icone %APPTITLE% a:
     end
     item: Combobox
-      Rectangle=86 69 256 175
+      Rectangle=108 56 320 219
       Variable=GROUP
       Create Flags=01010000001000010000001100000001
       Flags=0000000000000001
       Text=%GROUP%
+      Text=
       Text French=%GROUP%
       Text German=%GROUP%
       Text Spanish=%GROUP%
@@ -552,12 +1273,12 @@ item: Custom Dialog Set
     Title German=Installation von %APPTITLE%
     Title Spanish=Instalación de %APPTITLE%
     Title Italian=Installazione di %APPTITLE%
-    Width=271
-    Height=224
+    Width=339
+    Height=280
     Font Name=Helv
     Font Size=8
     item: Push Button
-      Rectangle=150 187 195 202
+      Rectangle=188 234 244 253
       Variable=DIRECTION
       Value=N
       Create Flags=01010000000000010000000000000001
@@ -568,7 +1289,7 @@ item: Custom Dialog Set
       Text Italian=&Avanti >
     end
     item: Push Button
-      Rectangle=105 187 150 202
+      Rectangle=131 234 188 253
       Variable=DIRECTION
       Value=B
       Create Flags=01010000000000010000000000000000
@@ -579,7 +1300,7 @@ item: Custom Dialog Set
       Text Italian=< &Indietro
     end
     item: Push Button
-      Rectangle=211 187 256 202
+      Rectangle=264 234 320 253
       Action=3
       Create Flags=01010000000000010000000000000000
       Text=&Cancel
@@ -589,12 +1310,12 @@ item: Custom Dialog Set
       Text Italian=&Annulla
     end
     item: Static
-      Rectangle=8 180 256 181
+      Rectangle=10 225 320 226
       Action=3
       Create Flags=01010000000000000000000000000111
     end
     item: Static
-      Rectangle=86 8 258 42
+      Rectangle=108 10 323 53
       Create Flags=01010000000000000000000000000000
       Flags=0000000000000001
       Name=Times New Roman
@@ -606,11 +1327,9 @@ item: Custom Dialog Set
       Text Italian=Pronto per l'installazione!
     end
     item: Static
-      Rectangle=86 42 256 102
+      Rectangle=108 40 320 62
       Create Flags=01010000000000000000000000000000
-      Text=You are now ready to install %APPTITLE%.
-      Text=
-      Text=Click the Next button to begin the installation, or the Back button to change choices made previously.
+      Text=Click the Next button to install %APPTITLE%, or the Back button to change choices:
       Text French=Vous êtes maintenant prêt à installer les fichiers %APPTITLE%.
       Text French=
       Text French=Cliquez sur le bouton Suite pour commencer l'installation ou sur le bouton Retour pour entrer les informations d'installation à nouveau.
@@ -624,606 +1343,1264 @@ item: Custom Dialog Set
       Text Italian=
       Text Italian=Premere il pulsante Avanti per avviare l'installazione o il pulsante Indietro per reinserire le informazioni di installazione.
     end
+    item: Editbox
+      Rectangle=108 66 324 219
+      Help Context=16711681
+      Enabled Color=00000000000000001111111111111111
+      Create Flags=01010000100000000001100011000100
+      Text=%SUMMARY%
+    end
   end
 end
+item: Remark
+end
+item: If/While Statement
+  Variable=DISPLAY
+  Value=Select Destination Directory
+end
+item: Remark
+  Text=User may have changed MAINDIR, so reset BACKUP to match.
+end
+item: Set Variable
+  Variable=BACKUP
+  Value=%MAINDIR%\BACKUP
+end
+item: End Block
+end
+item: Remark
+end
+item: End Block
+end
+item: Remark
+end
+item: Remark
+  Text=BEGIN WIZARD STUFF -----------------------------------------------------------------------------------------------------------------------------
+end
+item: Remark
+  Text=When the BACKUP feature is enabled, the BACKUPDIR is initialized
+end
+item: If/While Statement
+  Variable=DOBACKUP
+  Value=A
+end
+item: Set Variable
+  Variable=BACKUPDIR
+  Value=%BACKUP%
+end
+item: End Block
+end
+item: Remark
+  Text=The BRANDING information is written to the INI file on the installation media.
+end
+item: If/While Statement
+  Variable=BRANDING
+  Value=1
+end
+item: If/While Statement
+  Variable=DOBRAND
+  Value=1
+end
+item: Edit INI File
+  Pathname=%INST%\CUSTDATA.INI
+  Settings=[Registration]
+  Settings=NAME=%NAME%
+  Settings=COMPANY=%COMPANY%
+  Settings=
+end
+item: End Block
+end
+item: End Block
+end
+item: Remark
+  Text=Begin writing to the INSTALL.LOG
+end
+item: Open/Close INSTALL.LOG
+end
+item: Remark
+  Text=Check free disk space calculates free disk space as well as component sizes.
+end
+item: Remark
+  Text=It should be located before all Install File actions.
+end
+item: Check Disk Space
+  Component=COMPONENTS
+end
+item: Remark
+  Text=This include script allows uninstall support
+end
+item: Remark
+  Text=Note from Tim:  this is our own Uninstal.wse, a copy of Wise's except
+end
+item: Remark
+  Text=it writes to HKCU (instead of HKLM) if the user doesn't have admin privs.
+end
+item: Include Script
+  Pathname=.\Uninstal.wse
+end
+item: Remark
+  Text=Note from Tim: these seeming no-ops actually convert to short filenames.
+end
+item: Set Variable
+  Variable=COMMON
+  Value=%COMMON%
+  Flags=00010100
+end
+item: Set Variable
+  Variable=MAINDIR
+  Value=%MAINDIR%
+  Flags=00010100
+end
+item: Remark
+  Text=This IF/THEN/ELSE reads the correct registry entries for shortcut/icon placement
+end
+item: Check Configuration
+  Flags=10111011
+end
+item: Get Registry Key Value
+  Variable=STARTUPDIR
+  Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
+  Default=%WIN%\Start Menu\Programs\StartUp
+  Value Name=StartUp
+  Flags=00000010
+end
+item: Get Registry Key Value
+  Variable=DESKTOPDIR
+  Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
+  Default=%WIN%\Desktop
+  Value Name=Desktop
+  Flags=00000010
+end
+item: Get Registry Key Value
+  Variable=STARTMENUDIR
+  Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
+  Default=%WIN%\Start Menu
+  Value Name=Start Menu
+  Flags=00000010
+end
+item: Get Registry Key Value
+  Variable=GROUPDIR
+  Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
+  Default=%WIN%\Start Menu\Programs
+  Value Name=Programs
+  Flags=00000010
+end
+item: Get Registry Key Value
+  Variable=CSTARTUPDIR
+  Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
+  Default=%STARTUPDIR%
+  Value Name=Common Startup
+  Flags=00000100
+end
+item: Get Registry Key Value
+  Variable=CDESKTOPDIR
+  Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
+  Default=%DESKTOPDIR%
+  Value Name=Common Desktop
+  Flags=00000100
+end
+item: Get Registry Key Value
+  Variable=CSTARTMENUDIR
+  Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
+  Default=%STARTMENUDIR%
+  Value Name=Common Start Menu
+  Flags=00000100
+end
+item: Get Registry Key Value
+  Variable=CGROUPDIR
+  Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
+  Default=%GROUPDIR%
+  Value Name=Common Programs
+  Flags=00000100
+end
+item: Set Variable
+  Variable=CGROUP_SAVE
+  Value=%GROUP%
+end
+item: Set Variable
+  Variable=GROUP
+  Value=%GROUPDIR%\%GROUP%
+end
+item: Else Statement
+end
+item: Remark
+  Text=Note from Tim:  the Wizard left this block empty!
+end
+item: Remark
+  Text=Perhaps it's only relevant on Windows 3.1.
+end
 item: End Block
 end
-item: Open/Close INSTALL.LOG
+item: Remark
+  Text=END WIZARD STUFF -----------------------------------------------------------------------------------------------------------------------------
+end
+item: Remark
+end
+item: If/While Statement
+  Variable=SELECT_ADMIN
+  Value=B
 end
 item: Remark
-  Text=Where system DLLs are installed (choose one of the following):
+  Text=The user chose a non-admin install in "Advanced Options".
+end
+item: Remark
+  Text=This should come after the include of Uninstal.wse above, because
+end
+item: Remark
+  Text=writing uninstall info to HKCU is ineffective except under Win2K.
+end
+item: Set Variable
+  Variable=DOADMIN
+  Value=0
+end
+item: End Block
+end
+item: Remark
+end
+item: If/While Statement
+  Variable=TASKS
+  Value=B
+  Flags=00000011
+end
+item: Set Variable
+  Variable=GROUP
+end
+item: End Block
+end
+item: Remark
+end
+item: Remark
+  Text=Long section to install files.
+end
+item: Remark
+end
+item: If/While Statement
+  Variable=DOADMIN
+  Value=1
 end
 item: Set Variable
   Variable=DLLDEST
   Value=%SYS32%
 end
-item: Check Disk Space
-  Component=COMPONENTS
+item: Else Statement
 end
-item: If/While Statement
-  Variable=COMPONENTS
-  Value=D
-  Flags=00001010
+item: Set Variable
+  Variable=DLLDEST
+  Value=%MAINDIR%
+end
+item: End Block
+end
+item: Remark
+end
+item: Remark
+  Text=Install the license even if they deselect everything <wink>.
 end
 item: Install File
-  Source=%_SRC_%\LICENSE
+  Source=..\license
   Destination=%MAINDIR%\LICENSE.txt
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\README
+  Source=..\readme
   Destination=%MAINDIR%\README.txt
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\Misc\NEWS
+  Source=..\misc\news
   Destination=%MAINDIR%\NEWS.txt
   Flags=0000000000000010
 end
 item: Remark
-  Text=*** Executables ***
+  Text=Icons -- always install so that the uninstaller can use them for its own display.
+end
+item: Install File
+  Source=..\pc\pycon.ico
+  Destination=%MAINDIR%\pycon.ico
+  Flags=0000000010000010
+end
+item: Install File
+  Source=..\pc\pyc.ico
+  Destination=%MAINDIR%\pyc.ico
+  Flags=0000000010000010
+end
+item: Install File
+  Source=..\pc\py.ico
+  Destination=%MAINDIR%\py.ico
+  Flags=0000000010000010
+end
+item: Remark
+end
+item: Remark
+  Text=These arrange to (recursively!) delete all .pyc and .pyo files at uninstall time.
+end
+item: Remark
+  Text=This "does the right thing":  any directories left empty at the end are removed.
+end
+item: Add Text to INSTALL.LOG
+  Text=File Tree: %MAINDIR%\*.pyc
+end
+item: Add Text to INSTALL.LOG
+  Text=File Tree: %MAINDIR%\*.pyo
+end
+item: Remark
+end
+item: Remark
+  Text=A: interpreter and libraries
+end
+item: If/While Statement
+  Variable=COMPONENTS
+  Value=A
+  Flags=00000010
+end
+item: Remark
+  Text=Executables
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\python.exe
+  Source=.\python.exe
   Destination=%MAINDIR%\python.exe
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\pythonw.exe
+  Source=.\pythonw.exe
   Destination=%MAINDIR%\pythonw.exe
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\w9xpopen.exe
+  Source=.\w9xpopen.exe
   Destination=%MAINDIR%\w9xpopen.exe
   Flags=0000000000000010
 end
 item: Remark
-  Text=*** Extension module DLLs (.pyd); keep in synch with libs directory next ***
+end
+item: Remark
+  Text=Extension module DLLs (.pyd); keep in synch with libs directory next
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\_winreg.pyd
+  Source=.\_winreg.pyd
   Destination=%MAINDIR%\DLLs\_winreg.pyd
   Description=Extension modules
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\_sre.pyd
+  Source=.\_sre.pyd
   Destination=%MAINDIR%\DLLs\_sre.pyd
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\_symtable.pyd
+  Source=.\_symtable.pyd
   Destination=%MAINDIR%\DLLs\_symtable.pyd
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\_testcapi.pyd
+  Source=.\_testcapi.pyd
   Destination=%MAINDIR%\DLLs\_testcapi.pyd
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\_tkinter.pyd
+  Source=.\_tkinter.pyd
   Destination=%MAINDIR%\DLLs\_tkinter.pyd
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\_socket.pyd
+  Source=.\_socket.pyd
   Destination=%MAINDIR%\DLLs\_socket.pyd
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\bsddb.pyd
+  Source=.\bsddb.pyd
   Destination=%MAINDIR%\DLLs\bsddb.pyd
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\mmap.pyd
+  Source=.\mmap.pyd
   Destination=%MAINDIR%\DLLs\mmap.pyd
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\parser.pyd
+  Source=.\parser.pyd
   Destination=%MAINDIR%\DLLs\parser.pyd
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\pyexpat.pyd
+  Source=.\pyexpat.pyd
   Destination=%MAINDIR%\DLLs\pyexpat.pyd
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\select.pyd
+  Source=.\select.pyd
   Destination=%MAINDIR%\DLLs\select.pyd
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\unicodedata.pyd
+  Source=.\unicodedata.pyd
   Destination=%MAINDIR%\DLLs\unicodedata.pyd
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\winsound.pyd
+  Source=.\winsound.pyd
   Destination=%MAINDIR%\DLLs\winsound.pyd
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\zlib.pyd
+  Source=.\zlib.pyd
   Destination=%MAINDIR%\DLLs\zlib.pyd
   Flags=0000000000000010
 end
 item: Remark
-  Text=*** Link libraries (.lib); keep in synch with DLLs above, except that the Python lib lives here ***
+end
+item: Remark
+  Text=Link libraries (.lib); keep in synch with DLLs above, except that the Python lib lives here.
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\_winreg.lib
+  Source=.\_winreg.lib
   Destination=%MAINDIR%\libs\_winreg.lib
   Description=Link library files
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\_sre.lib
+  Source=.\_sre.lib
   Destination=%MAINDIR%\libs\_sre.lib
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\_symtable.lib
+  Source=.\_symtable.lib
   Destination=%MAINDIR%\libs\_symtable.lib
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\_testcapi.lib
+  Source=.\_testcapi.lib
   Destination=%MAINDIR%\libs\_testcapi.lib
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\_tkinter.lib
+  Source=.\_tkinter.lib
   Destination=%MAINDIR%\libs\_tkinter.lib
   Description=Extension modules
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\_socket.lib
+  Source=.\_socket.lib
   Destination=%MAINDIR%\libs\_socket.lib
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\bsddb.lib
+  Source=.\bsddb.lib
   Destination=%MAINDIR%\libs\bsddb.lib
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\mmap.lib
+  Source=.\mmap.lib
   Destination=%MAINDIR%\libs\mmap.lib
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\parser.lib
+  Source=.\parser.lib
   Destination=%MAINDIR%\libs\parser.lib
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\pyexpat.lib
+  Source=.\pyexpat.lib
   Destination=%MAINDIR%\libs\pyexpat.lib
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\select.lib
+  Source=.\select.lib
   Destination=%MAINDIR%\libs\select.lib
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\unicodedata.lib
+  Source=.\unicodedata.lib
   Destination=%MAINDIR%\libs\unicodedata.lib
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\winsound.lib
+  Source=.\winsound.lib
   Destination=%MAINDIR%\libs\winsound.lib
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\PCbuild\zlib.lib
+  Source=.\zlib.lib
   Destination=%MAINDIR%\libs\zlib.lib
   Flags=0000000000000010
 end
+item: Remark
+end
 item: Install File
-  Source=%_SRC_%\PCbuild\python21.lib
-  Destination=%MAINDIR%\libs\python21.lib
+  Source=.\python%_pymajor_%%_pyminor_%.lib
+  Destination=%MAINDIR%\libs\python%_PYMAJOR_%%_PYMINOR_%.lib
   Flags=0000000000000010
 end
 item: Remark
-  Text=*** More DLLs ***
+end
+item: Remark
+  Text=More DLLs
 end
 item: Install File
-  Source=%_SRC_%\..\expat\bin\xmlparse.dll
-  Destination=%MAINDIR%\DLLs\xmlparse.dll
+  Source=..\..\expat\libs\expat.dll
+  Destination=%MAINDIR%\DLLs\expat.dll
   Description=Expat library
   Flags=0000000000000010
 end
+item: Remark
+end
+item: Remark
+  Text=Main Python DLL
+end
+item: Remark
+  Text=Tell Wise it's OK to delete the Python DLL at uninstall time,
+end
+item: Remark
+  Text=despite that we (may) write it into a system directory.
+end
+item: Add Text to INSTALL.LOG
+  Text=Non-System File:
+end
+item: Install File
+  Source=.\python%_pymajor_%%_pyminor_%.dll
+  Destination=%DLLDEST%\python%_PYMAJOR_%%_PYMINOR_%.dll
+  Flags=0000000000000010
+end
+item: Remark
+end
+item: Remark
+  Text=Libraries (Lib/)
+end
 item: Install File
-  Source=%_SRC_%\..\expat\bin\xmltok.dll
-  Destination=%MAINDIR%\DLLs\xmltok.dll
-  Description=Expat library
+  Source=..\lib\*.py
+  Destination=%MAINDIR%\Lib
+  Description=Library Modules
   Flags=0000000000000010
 end
 item: Remark
-  Text=*** Main Python DLL ***
 end
 item: Install File
-  Source=%_SRC_%\pcbuild\python21.dll
-  Destination=%DLLDEST%\python21.dll
+  Source=..\lib\compiler\*.py
+  Destination=%MAINDIR%\Lib\compiler
+  Description=Python compiler written in Python
   Flags=0000000000000010
 end
+item: Remark
+end
 item: Install File
-  Source=%_SRC_%\Pc\*.ico
-  Destination=%MAINDIR%
-  Description=Icons
+  Source=..\lib\distutils\*.py
+  Destination=%MAINDIR%\Lib\distutils
+  Description=Distribution utility modules
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\Lib\*.py
-  Destination=%MAINDIR%\Lib
-  Description=Library Modules
+  Source=..\lib\distutils\readme
+  Destination=%MAINDIR%\Lib\distutils\README.txt
+  Flags=0000000000000010
+end
+item: Install File
+  Source=..\lib\distutils\command\*.py
+  Destination=%MAINDIR%\Lib\distutils\command
+  Flags=0000000000000010
+end
+item: Install File
+  Source=..\lib\distutils\command\command_template
+  Destination=%MAINDIR%\Lib\distutils\command\command_template
+  Flags=0000000000000010
+end
+item: Remark
+end
+item: Install File
+  Source=..\lib\email\*.py
+  Destination=%MAINDIR%\Lib\email
+  Description=Library email package
+  Flags=0000000000000010
+end
+item: Remark
+end
+item: Install File
+  Source=..\lib\encodings\*.py
+  Destination=%MAINDIR%\Lib\encodings
+  Description=Unicode encoding tables
   Flags=0000000000000010
 end
 item: Remark
-  Text=***  Libraries (Lib/) ***
+end
+item: Install File
+  Source=..\lib\hotshot\*.py
+  Destination=%MAINDIR%\Lib\hotshot
+  Description=Fast Python profiler
+  Flags=0000000000000010
 end
 item: Remark
-  Text=plat-win became empty!
 end
-remarked item: Install File
-  Source=%_SRC_%\Lib\plat-win\*.py
-  Destination=%MAINDIR%\Lib\Plat-Win
-  Description=Windows-specific library modules
+item: Install File
+  Source=..\lib\lib-old\*.py
+  Destination=%MAINDIR%\Lib\lib-old
+  Description=Obsolete modules
   Flags=0000000000000010
 end
+item: Remark
+end
 item: Install File
-  Source=%_SRC_%\Lib\lib-tk\*.py
+  Source=..\lib\lib-tk\*.py
   Destination=%MAINDIR%\Lib\lib-tk
   Description=Tkinter related library modules
   Flags=0000000000000010
 end
+item: Remark
+end
 item: Install File
-  Source=%_SRC_%\Lib\encodings\*.py
-  Destination=%MAINDIR%\Lib\encodings
-  Description=Unicode encoding tables
+  Source=..\lib\site-packages\readme
+  Destination=%MAINDIR%\Lib\site-packages\README.txt
+  Description=Site packages
   Flags=0000000000000010
 end
-item: Install File
-  Source=%_SRC_%\Lib\distutils\*.py
-  Destination=%MAINDIR%\Lib\distutils
-  Description=Distribution utility modules
-  Flags=0000000100000010
+item: Remark
 end
 item: Install File
-  Source=%_SRC_%\Lib\xml\*.py
+  Source=..\lib\xml\*.py
   Destination=%MAINDIR%\Lib\xml
   Description=XML support packages
+  Flags=0000000000000010
+end
+item: Install File
+  Source=..\lib\xml\dom\*.py
+  Destination=%MAINDIR%\Lib\xml\dom
+  Flags=0000000000000010
+end
+item: Install File
+  Source=..\lib\xml\parsers\*.py
+  Destination=%MAINDIR%\Lib\xml\parsers
+  Flags=0000000000000010
+end
+item: Install File
+  Source=..\lib\xml\sax\*.py
+  Destination=%MAINDIR%\Lib\xml\sax
+  Flags=0000000000000010
+end
+item: Remark
+end
+item: Remark
+  Text=C Include files
+end
+item: Install File
+  Source=..\include\*.h
+  Destination=%MAINDIR%\include
+  Description=Header files
+  Flags=0000000000000010
+end
+item: Install File
+  Source=..\pc\pyconfig.h
+  Destination=%MAINDIR%\include\pyconfig.h
+  Description=Header files (pyconfig.h)
+  Flags=0000000000000010
+end
+item: Remark
+end
+item: Remark
+  Text=Microsoft C runtime libraries
+end
+item: Install File
+  Source=%_SYS_%\MSVCIRT.DLL
+  Destination=%DLLDEST%\MSVCIRT.DLL
+  Description=Visual C++ Runtime DLLs
+  Flags=0000011000010011
+end
+item: Install File
+  Source=%_SYS_%\MSVCRT.DLL
+  Destination=%DLLDEST%\MSVCRT.DLL
+  Description=Visual C++ Runtime DLLs
+  Flags=0000011000010011
+end
+item: End Block
+end
+item: Remark
+end
+item: Remark
+  Text=B: Tcl/Tk (Tkinter, IDLE, pydoc)
+end
+item: If/While Statement
+  Variable=COMPONENTS
+  Value=B
+  Flags=00000010
+end
+item: Remark
+  Text=Tcl/Tk
+end
+item: Install File
+  Source=..\..\tcl\bin\tcl8%_tclminor_%.dll
+  Destination=%MAINDIR%\DLLs\tcl8%_TCLMINOR_%.dll
+  Description=Tcl/Tk binaries and libraries
+  Flags=0000000000000010
+end
+item: Install File
+  Source=..\..\tcl\bin\tk8%_tclminor_%.dll
+  Destination=%MAINDIR%\DLLs\tk8%_TCLMINOR_%.dll
+  Description=Tcl/Tk binaries and libraries
+  Flags=0000000000000010
+end
+item: Install File
+  Source=..\..\tcl\lib\*.*
+  Destination=%MAINDIR%\tcl
+  Description=Tcl/Tk binaries and libraries
   Flags=0000000100000010
 end
+item: Remark
+end
+item: Remark
+  Text=IDLE
+end
 item: Install File
-  Source=%_SRC_%\Lib\lib-old\*.py
-  Destination=%MAINDIR%\Lib\lib-old
-  Description=Obsolete modules
+  Source=..\tools\idle\*.py
+  Destination=%MAINDIR%\Tools\idle
+  Description=Integrated DeveLopment Environment for Python
+  Flags=0000000000000010
+end
+item: Install File
+  Source=..\tools\idle\*.txt
+  Destination=%MAINDIR%\Tools\idle
+  Description=Integrated DeveLopment Environment for Python
+  Flags=0000000000000010
+end
+item: Install File
+  Source=..\tools\idle\icons\*
+  Destination=%MAINDIR%\Tools\idle\Icons
+  Description=Integrated DeveLopment Environment for Python
+  Flags=0000000000000010
+end
+item: Install File
+  Source=..\tools\idle\idle.pyw
+  Destination=%MAINDIR%\Tools\idle\idle.pyw
+  Description=IDLE bootstrap script
   Flags=0000000000000010
 end
 item: Remark
-  Text=*** Other ***
 end
-item: Install File
-  Source=%_SRC_%\Include\*.h
-  Destination=%MAINDIR%\include
-  Description=Header files
-  Flags=0000000000000010
+item: Remark
+  Text=Windows pydoc driver
 end
 item: Install File
-  Source=%_SRC_%\PC\config.h
-  Destination=%MAINDIR%\include\config.h
-  Description=Header files (config.h)
+  Source=..\tools\scripts\*.pyw
+  Destination=%MAINDIR%\Tools\Scripts
+  Description=Windows pydoc driver
   Flags=0000000000000010
 end
-item: Install File
-  Source=%_SYS_%\MSVCIRT.DLL
-  Destination=%DLLDEST%\MSVCIRT.DLL
-  Description=Visual C++ Runtime DLLs
-  Flags=0000001000000011
+item: End Block
 end
-item: Install File
-  Source=%_SYS_%\MSVCRT.DLL
-  Destination=%DLLDEST%\MSVCRT.DLL
-  Description=Visual C++ Runtime DLLs
-  Flags=0000001000000011
+item: Remark
 end
-item: End Block
+item: Remark
+  Text=C: docs
 end
 item: If/While Statement
   Variable=COMPONENTS
-  Value=A
-  Flags=00001010
-end
-item: Add Text to INSTALL.LOG
-  Text=File Tree: %MAINDIR%\Tools\*.*
+  Value=C
+  Flags=00000010
 end
 item: Install File
-  Source=%_SRC_%\Tools\scripts\*.py
-  Destination=%MAINDIR%\Tools\Scripts
-  Description=Utility Scripts
-  Flags=0000000000000010
+  Source=%_DOC_%\*.*
+  Destination=%MAINDIR%\Doc
+  Description=Python Documentation (HTML)
+  Flags=0000000100000010
+end
+item: End Block
+end
+item: Remark
+end
+item: Remark
+  Text=D: tools
+end
+item: If/While Statement
+  Variable=COMPONENTS
+  Value=D
+  Flags=00000010
 end
 item: Install File
-  Source=%_SRC_%\Tools\scripts\*.pyw
+  Source=..\tools\scripts\*.py
   Destination=%MAINDIR%\Tools\Scripts
   Description=Utility Scripts
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\Tools\scripts\*.doc
+  Source=..\tools\scripts\*.doc
   Destination=%MAINDIR%\Tools\Scripts
   Description=Utility Scripts
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\Tools\scripts\README
+  Source=..\tools\scripts\readme
   Destination=%MAINDIR%\Tools\Scripts\README.txt
   Description=Utility Scripts
   Flags=0000000000000010
 end
+item: Remark
+end
 item: Install File
-  Source=%_SRC_%\Tools\webchecker\*.py
+  Source=..\tools\webchecker\*.py
   Destination=%MAINDIR%\Tools\webchecker
   Description=Web checker tool
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\Tools\webchecker\README
+  Source=..\tools\webchecker\readme
   Destination=%MAINDIR%\Tools\webchecker\README.txt
   Description=Web checker tool
   Flags=0000000000000010
 end
+item: Remark
+end
 item: Install File
-  Source=%_SRC_%\Tools\versioncheck\*.py
+  Source=..\tools\versioncheck\*.py
   Destination=%MAINDIR%\Tools\versioncheck
   Description=Version checker tool
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\Tools\versioncheck\README
+  Source=..\tools\versioncheck\readme
   Destination=%MAINDIR%\Tools\versioncheck\README.txt
   Description=Version checker tool
   Flags=0000000000000010
 end
-item: Install File
-  Source=%_SRC_%\Tools\idle\*.py
-  Destination=%MAINDIR%\Tools\idle
-  Description=Integrated DeveLopment Environment for Python
-  Flags=0000000000000010
-end
-item: Install File
-  Source=%_SRC_%\Tools\idle\*.txt
-  Destination=%MAINDIR%\Tools\idle
-  Description=Integrated DeveLopment Environment for Python
-  Flags=0000000000000010
-end
-item: Install File
-  Source=%_SRC_%\Tools\idle\Icons\*
-  Destination=%MAINDIR%\Tools\idle\Icons
-  Description=Integrated DeveLopment Environment for Python
-  Flags=0000000000000010
-end
-item: Install File
-  Source=%_SRC_%\Tools\idle\idle.pyw
-  Destination=%MAINDIR%\Tools\idle\idle.pyw
-  Description=IDLE bootstrap script
-  Flags=0000000000000010
-end
-item: Install File
-  Source=%_SRC_%\Tools\compiler\*.py
-  Destination=%MAINDIR%\Tools\compiler
-  Description=Python compiler written in Python
-  Flags=0000000000000010
-end
-item: Install File
-  Source=%_SRC_%\Tools\compiler\compiler\*.py
-  Destination=%MAINDIR%\Tools\compiler\compiler
-  Description=Python compiler written in Python
-  Flags=0000000000000010
+item: Remark
 end
 item: Install File
-  Source=%_SRC_%\Tools\compiler\compiler\*.txt
-  Destination=%MAINDIR%\Tools\compiler\compiler
-  Description=Python compiler written in Python
+  Source=..\tools\pynche\*.py
+  Destination=%MAINDIR%\Tools\pynche
+  Description=pynche color editor
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\Tools\pynche\*.py
+  Source=..\tools\pynche\*.txt
   Destination=%MAINDIR%\Tools\pynche
   Description=pynche color editor
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\Tools\pynche\X\*.txt
+  Source=..\tools\pynche\x\*.txt
   Destination=%MAINDIR%\Tools\pynche\X
   Description=pynche color editor - X files
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\Tools\pynche\README
+  Source=..\tools\pynche\readme
   Destination=%MAINDIR%\Tools\pynche\README.txt
   Description=pynche color editor - README
   Flags=0000000100000010
 end
 item: Install File
-  Source=%_SRC_%\Tools\pynche\pynche
+  Source=..\tools\pynche\pynche
   Destination=%MAINDIR%\Tools\pynche\pynche.py
   Description=pynche color editor - main
   Flags=0000000100000010
 end
 item: Install File
-  Source=%_SRC_%\Tools\pynche\pynche.pyw
+  Source=..\tools\pynche\pynche.pyw
   Destination=%MAINDIR%\Tools\pynche\pynche.pyw
   Description=pynche color editor - noconsole main
   Flags=0000000100000010
 end
 item: End Block
 end
-item: If/While Statement
-  Variable=COMPONENTS
-  Value=B
-  Flags=00001010
-end
-item: Install File
-  Source=%_DOC_%\*.*
-  Destination=%MAINDIR%\Doc
-  Description=Python Documentation (HTML)
-  Flags=0000000100000010
+item: Remark
 end
-item: End Block
+item: Remark
+  Text=E: test suite
 end
 item: If/While Statement
   Variable=COMPONENTS
-  Value=C
-  Flags=00001010
+  Value=E
+  Flags=00000010
 end
 item: Install File
-  Source=%_SRC_%\Lib\test\audiotest.au
+  Source=..\lib\test\audiotest.au
   Destination=%MAINDIR%\Lib\test\audiotest.au
   Description=Python Test files
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\Lib\test\*.uue
+  Source=..\lib\test\*.uue
   Destination=%MAINDIR%\Lib\test
   Description=Python Test files
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\Lib\test\*.py
+  Source=..\lib\test\*.py
   Destination=%MAINDIR%\Lib\test
   Description=Python Test files
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\Lib\test\*.xml
+  Source=..\lib\test\*.xml
   Destination=%MAINDIR%\Lib\test
   Description=Python Test files
   Flags=0000000000000010
 end
 item: Install File
-  Source=%_SRC_%\Lib\test\*.out
+  Source=..\lib\test\*.out
   Destination=%MAINDIR%\Lib\test
   Description=Python Test files
   Flags=0000000000000010
 end
+item: Remark
+end
+item: Install File
+  Source=..\lib\test\data\*.*
+  Destination=%MAINDIR%\Lib\test\data
+  Description=Python Test files
+  Flags=0000000000000010
+end
+item: Remark
+end
 item: Install File
-  Source=%_SRC_%\Lib\test\output\*.*
+  Source=..\lib\test\output\*.*
   Destination=%MAINDIR%\Lib\test\output
   Description=Python Test output files
   Flags=0000000000000010
 end
 item: End Block
 end
-item: If/While Statement
-  Variable=COMPONENTS
-  Value=D
-  Flags=00001010
+item: Remark
+end
+item: Remark
+  Text=DONE with file copying.
+end
+item: Remark
+  Text=The rest is registry and Start Menu fiddling.
+end
+item: Remark
+end
+item: If/While Statement
+  Variable=COMPONENTS
+  Value=A
+  Flags=00000010
+end
+item: If/While Statement
+  Variable=TASKS
+  Value=A
+  Flags=00000010
+end
+item: Remark
+  Text=Register file extensions.  As usual, Admin privs get in the way, but with a twist:
+end
+item: Remark
+  Text=You don't need admin privs to write to HKEY_CLASSES_ROOT *except* under Win2K.
+end
+item: Remark
+  Text=On Win2K, a user without Admin privs has to register extensions under HKCU\Software\CLASSES instead.
+end
+item: Remark
+  Text=But while you can *do* that under other flavors of Windows too, it has no useful effect except in Win2K.
+end
+item: Set Variable
+  Variable=USE_HKCR
+  Value=1
+end
+item: Check Configuration
+  Flags=11110010
+end
+item: If/While Statement
+  Variable=DOADMIN
+  Value=0
+end
+item: Set Variable
+  Variable=USE_HKCR
+  Value=0
+end
+item: End Block
+end
+item: End Block
+end
+item: If/While Statement
+  Variable=USE_HKCR
+  Value=1
+end
+item: Remark
+  Text=File types.
+end
+item: Edit Registry
+  Total Keys=1
+  Key=Python.File
+  New Value=Python File
+end
+item: Edit Registry
+  Total Keys=1
+  Key=Python.File\shell\open\command
+  New Value=%MAINDIR%\python.exe "%%1" %%*
+end
+item: Edit Registry
+  Total Keys=1
+  Key=Python.File\DefaultIcon
+  New Value=%MAINDIR%\Py.ico
+end
+item: Remark
+end
+item: Edit Registry
+  Total Keys=1
+  Key=Python.NoConFile
+  New Value=Python File (no console)
+end
+item: Edit Registry
+  Total Keys=1
+  Key=Python.NoConFile\shell\open\command
+  New Value=%MAINDIR%\pythonw.exe "%%1" %%*
+end
+item: Edit Registry
+  Total Keys=1
+  Key=Python.NoConFile\DefaultIcon
+  New Value=%MAINDIR%\Py.ico
+end
+item: Remark
+end
+item: Edit Registry
+  Total Keys=1
+  Key=Python.CompiledFile
+  New Value=Compiled Python File
+end
+item: Edit Registry
+  Total Keys=1
+  Key=Python.CompiledFile\shell\open\command
+  New Value=%MAINDIR%\python.exe "%%1" %%*
+end
+item: Edit Registry
+  Total Keys=1
+  Key=Python.CompiledFile\DefaultIcon
+  New Value=%MAINDIR%\pyc.ico
+end
+item: Remark
+end
+item: Remark
+  Text=File extensions.
+end
+item: Edit Registry
+  Total Keys=1
+  Key=.py
+  New Value=Python.File
+end
+item: Edit Registry
+  Total Keys=1
+  Key=.py
+  New Value=text/plain
+  Value Name=Content Type
+end
+item: Remark
+end
+item: Edit Registry
+  Total Keys=1
+  Key=.pyw
+  New Value=Python.NoConFile
+end
+item: Edit Registry
+  Total Keys=1
+  Key=.pyw
+  New Value=text/plain
+  Value Name=Content Type
+end
+item: Remark
+end
+item: Edit Registry
+  Total Keys=1
+  Key=.pyc
+  New Value=Python.CompiledFile
+end
+item: Edit Registry
+  Total Keys=1
+  Key=.pyo
+  New Value=Python.CompiledFile
+end
+item: Else Statement
+end
+item: Remark
+  Text=File types.
+end
+item: Edit Registry
+  Total Keys=1
+  Key=Software\CLASSES\Python.File
+  New Value=Python File
+  Root=1
+end
+item: Edit Registry
+  Total Keys=1
+  Key=Software\CLASSES\Python.File\shell\open\command
+  New Value=%MAINDIR%\python.exe "%%1" %%*
+  Root=1
+end
+item: Edit Registry
+  Total Keys=1
+  Key=Software\CLASSES\Python.File\DefaultIcon
+  New Value=%MAINDIR%\Py.ico
+  Root=1
+end
+item: Remark
+end
+item: Edit Registry
+  Total Keys=1
+  Key=Software\CLASSES\Python.NoConFile
+  New Value=Python File (no console)
+  Root=1
+end
+item: Edit Registry
+  Total Keys=1
+  Key=Software\CLASSES\Python.NoConFile\shell\open\command
+  New Value=%MAINDIR%\pythonw.exe "%%1" %%*
+  Root=1
+end
+item: Edit Registry
+  Total Keys=1
+  Key=Software\CLASSES\Python.NoConFile\DefaultIcon
+  New Value=%MAINDIR%\Py.ico
+  Root=1
+end
+item: Remark
+end
+item: Edit Registry
+  Total Keys=1
+  Key=Software\CLASSES\Python.CompiledFile
+  New Value=Compiled Python File
+  Root=1
+end
+item: Edit Registry
+  Total Keys=1
+  Key=Software\CLASSES\Python.CompiledFile\shell\open\command
+  New Value=%MAINDIR%\python.exe "%%1" %%*
+  Root=1
+end
+item: Edit Registry
+  Total Keys=1
+  Key=Software\CLASSES\Python.CompiledFile\DefaultIcon
+  New Value=%MAINDIR%\pyc.ico
+  Root=1
+end
+item: Remark
 end
-item: Add Text to INSTALL.LOG
-  Text=File Tree: %MAINDIR%\Lib\*.*
+item: Remark
+  Text=File extensions.
 end
 item: Edit Registry
-  Key=.py
+  Total Keys=1
+  Key=Software\CLASSES\.py
   New Value=Python.File
+  Root=1
 end
 item: Edit Registry
-  Key=.py
+  Total Keys=1
+  Key=Software\CLASSES\.py
   New Value=text/plain
   Value Name=Content Type
+  Root=1
 end
-item: Edit Registry
-  Key=Python.File
-  New Value=Python File
-end
-item: Edit Registry
-  Key=Python.File\shell\open\command
-  New Value=%MAINDIR%\python.exe "%%1" %%*
-end
-item: Edit Registry
-  Key=Python.File\DefaultIcon
-  New Value=%MAINDIR%\Py.ico
+item: Remark
 end
 item: Edit Registry
-  Key=.pyw
+  Total Keys=1
+  Key=Software\CLASSES\.pyw
   New Value=Python.NoConFile
+  Root=1
 end
 item: Edit Registry
-  Key=.pyw
+  Total Keys=1
+  Key=Software\CLASSES\.pyw
   New Value=text/plain
   Value Name=Content Type
+  Root=1
 end
-item: Edit Registry
-  Key=Python.NoConFile
-  New Value=Python File (no console)
-end
-item: Edit Registry
-  Key=Python.NoConFile\shell\open\command
-  New Value=%MAINDIR%\pythonw.exe "%%1" %%*
+item: Remark
 end
 item: Edit Registry
-  Key=Python.NoConFile\DefaultIcon
-  New Value=%MAINDIR%\Py.ico
+  Total Keys=1
+  Key=Software\CLASSES\.pyc
+  New Value=Python.CompiledFile
+  Root=1
 end
 item: Edit Registry
-  Key=.pyc
+  Total Keys=1
+  Key=Software\CLASSES\.pyo
   New Value=Python.CompiledFile
+  Root=1
+end
+item: End Block
+end
+item: Remark
+end
+item: Remark
+  Text=If we're installing IDLE, also set an Edit context menu action to use IDLE, for .py and .pyw files.
+end
+item: If/While Statement
+  Variable=COMPONENTS
+  Value=B
+  Flags=00000010
+end
+item: If/While Statement
+  Variable=USE_HKCR
+  Value=1
 end
 item: Edit Registry
-  Key=.pyo
-  New Value=Python.CompiledFile
+  Total Keys=1
+  Key=Python.NoConFile\shell\Edit with IDLE\command
+  New Value=%MAINDIR%\pythonw.exe %MAINDIR%\Tools\idle\idle.pyw -e "%%1"
 end
 item: Edit Registry
-  Key=Python.CompiledFile
-  New Value=Compiled Python File
+  Total Keys=1
+  Key=Python.File\shell\Edit with IDLE\command
+  New Value=%MAINDIR%\pythonw.exe %MAINDIR%\Tools\idle\idle.pyw -e "%%1"
+end
+item: Else Statement
 end
 item: Edit Registry
-  Key=Python.CompiledFile\shell\open\command
-  New Value=%MAINDIR%\python.exe "%%1" %%*
+  Total Keys=1
+  Key=Software\CLASSES\Python.NoConFile\shell\Edit with IDLE\command
+  New Value=%MAINDIR%\pythonw.exe %MAINDIR%\Tools\idle\idle.pyw -e "%%1"
+  Root=1
 end
 item: Edit Registry
-  Key=Python.CompiledFile\DefaultIcon
-  New Value=%MAINDIR%\pyc.ico
+  Total Keys=1
+  Key=Software\CLASSES\Python.File\shell\Edit with IDLE\command
+  New Value=%MAINDIR%\pythonw.exe %MAINDIR%\Tools\idle\idle.pyw -e "%%1"
+  Root=1
+end
+item: End Block
+end
+item: End Block
+end
+item: End Block
+end
+item: Remark
+end
+item: Remark
+  Text=Register Python paths.
 end
 item: Remark
   Text=Write to HKLM for admin, else HKCU.  Keep these blocks otherwise identical!
 end
-item: Check Configuration
-  Flags=10111111
+item: If/While Statement
+  Variable=DOADMIN
+  Value=1
 end
 item: Edit Registry
+  Total Keys=1
   Key=Software\Python\PythonCore\CurrentVersion
   Root=130
 end
 item: Edit Registry
+  Total Keys=1
   Key=Software\Python\PythonCore\%PY_VERSION%\InstallPath
   New Value=%MAINDIR%
   Root=2
 end
 item: Edit Registry
+  Total Keys=1
   Key=Software\Python\PythonCore\%PY_VERSION%\InstallPath\InstallGroup
-  New Value=%GROUP%
+  New Value=%CGROUP_SAVE%
+  New Value=
   Root=2
 end
 item: Edit Registry
+  Total Keys=1
   Key=Software\Python\PythonCore\%PY_VERSION%\PythonPath
-  New Value=%MAINDIR%\Lib\plat-win;%MAINDIR%\Lib;%MAINDIR%\DLLs;%MAINDIR%\Lib\lib-tk
+  New Value=%MAINDIR%\Lib;%MAINDIR%\DLLs;%MAINDIR%\Lib\lib-tk
+  New Value=
   Root=2
 end
 item: Edit Registry
+  Total Keys=1
   Key=Software\Python\PythonCore\%PY_VERSION%\Modules
   Root=2
 end
 item: Edit Registry
+  Total Keys=1
   Key=Software\Microsoft\Windows\CurrentVersion\App Paths\Python.exe
   New Value=%MAINDIR%\Python.exe
   Root=2
@@ -1231,29 +2608,37 @@ end
 item: Else Statement
 end
 item: Edit Registry
+  Total Keys=1
   Key=Software\Python\PythonCore\CurrentVersion
   Root=129
 end
 item: Edit Registry
+  Total Keys=1
   Key=Software\Python\PythonCore\%PY_VERSION%\InstallPath
   New Value=%MAINDIR%
   Root=1
 end
 item: Edit Registry
+  Total Keys=1
   Key=Software\Python\PythonCore\%PY_VERSION%\InstallPath\InstallGroup
-  New Value=%GROUP%
+  New Value=%CGROUP_SAVE%
+  New Value=
   Root=1
 end
 item: Edit Registry
+  Total Keys=1
   Key=Software\Python\PythonCore\%PY_VERSION%\PythonPath
-  New Value=%MAINDIR%\Lib\plat-win;%MAINDIR%\Lib;%MAINDIR%\DLLs;%MAINDIR%\Lib\lib-tk
+  New Value=%MAINDIR%\Lib;%MAINDIR%\DLLs;%MAINDIR%\Lib\lib-tk
+  New Value=
   Root=1
 end
 item: Edit Registry
+  Total Keys=1
   Key=Software\Python\PythonCore\%PY_VERSION%\Modules
   Root=1
 end
 item: Edit Registry
+  Total Keys=1
   Key=Software\Microsoft\Windows\CurrentVersion\App Paths\Python.exe
   New Value=%MAINDIR%\Python.exe
   Root=1
@@ -1262,18 +2647,25 @@ item: End Block
 end
 item: End Block
 end
-item: If/While Statement
-  Variable=COMPONENTS
-  Value=B
-  Flags=00001010
+item: Remark
+end
+item: Remark
+  Text=Registry fiddling for docs.
 end
 item: Remark
   Text=Write to HKLM for admin, else HKCU.  Keep these blocks otherwise identical!
 end
-item: Check Configuration
-  Flags=10111111
+item: If/While Statement
+  Variable=COMPONENTS
+  Value=C
+  Flags=00000010
+end
+item: If/While Statement
+  Variable=DOADMIN
+  Value=1
 end
 item: Edit Registry
+  Total Keys=1
   Key=Software\Python\PythonCore\%PY_VERSION%\Help\Main Python Documentation
   New Value=%MAINDIR%\Doc\index.html
   Root=2
@@ -1281,6 +2673,7 @@ end
 item: Else Statement
 end
 item: Edit Registry
+  Total Keys=1
   Key=Software\Python\PythonCore\%PY_VERSION%\Help\Main Python Documentation
   New Value=%MAINDIR%\Doc\index.html
   Root=1
@@ -1289,72 +2682,149 @@ item: End Block
 end
 item: End Block
 end
-item: Set Variable
-  Variable=MAINDIR
-  Value=%MAINDIR%
-  Flags=00010100
+item: Remark
 end
-item: Include Script
-  Pathname=C:\Wise\include\uninstal.wse
+item: Remark
+  Text=Set the app publisher and URL entries for Win2K add/remove.
 end
-item: If/While Statement
-  Variable=COMPONENTS
-  Value=D
-  Flags=00001010
+item: Remark
+  Text=It doesn't hurt on other systems.
 end
-item: Get Registry Key Value
-  Variable=GROUPDIR
-  Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
-  Value Name=Common Programs
-  Flags=00000100
+item: Remark
+  Text=As usual, write to HKLM or HKCU depending on Admin privs.
+end
+item: Remark
+  Text=CAUTION:  If you set this info on the "Windows 2000" page (step 6) of the
+end
+item: Remark
+  Text=Installation Expert, it only shows up in the "If" block below.  Keep in synch!
 end
 item: If/While Statement
-  Variable=GROUPDIR
+  Variable=DOADMIN
+  Value=1
 end
-item: Get Registry Key Value
-  Variable=GROUPDIR
-  Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
-  Default=%WIN%\Start Menu\Programs
-  Value Name=Programs
-  Flags=00000010
+item: Edit Registry
+  Total Keys=1
+  Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE%
+  New Value=http://www.python.org/
+  Value Name=HelpLink
+  Root=2
+end
+item: Edit Registry
+  Total Keys=1
+  Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE%
+  New Value=PythonLabs at Zope Corporation
+  Value Name=Publisher
+  Root=2
+end
+item: Edit Registry
+  Total Keys=1
+  Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE%
+  New Value=http://www.python.org/
+  Value Name=URLInfoAbout
+  Root=2
+end
+item: Edit Registry
+  Total Keys=1
+  Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE%
+  New Value=%PYVER_STRING%
+  Value Name=DisplayVersion
+  Root=2
+end
+item: Edit Registry
+  Total Keys=1
+  Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE%
+  New Value=%MAINDIR%\py.ico,-0
+  Value Name=DisplayIcon
+  Root=2
+end
+item: Else Statement
+end
+item: Edit Registry
+  Total Keys=1
+  Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE%
+  New Value=http://www.python.org/
+  Value Name=HelpLink
+  Root=1
+end
+item: Edit Registry
+  Total Keys=1
+  Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE%
+  New Value=PythonLabs at Zope Corporation
+  Value Name=Publisher
+  Root=1
+end
+item: Edit Registry
+  Total Keys=1
+  Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE%
+  New Value=http://www.python.org/
+  Value Name=URLInfoAbout
+  Root=1
+end
+item: Edit Registry
+  Total Keys=1
+  Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE%
+  New Value=%PYVER_STRING%
+  Value Name=DisplayVersion
+  Root=1
+end
+item: Edit Registry
+  Total Keys=1
+  Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE%
+  New Value=%MAINDIR%\py.ico,-0
+  Value Name=DisplayIcon
+  Root=1
 end
 item: End Block
 end
-item: Set Variable
-  Variable=GROUP
-  Value=%GROUPDIR%\%GROUP%
+item: Remark
+end
+item: Remark
+  Text=Populate Start Menu group
+end
+item: If/While Statement
+  Variable=TASKS
+  Value=B
+  Flags=00000010
+end
+item: Remark
+  Text=Shortcut to installer no matter what.
 end
 item: Create Shortcut
-  Source=%MAINDIR%\python.exe
-  Destination=%GROUP%\Python (command line).lnk
+  Source=%MAINDIR%\unwise.exe
+  Destination=%GROUP%\Uninstall Python.lnk
   Working Directory=%MAINDIR%
-  Icon Pathname=%MAINDIR%\pycon.ico
   Key Type=1536
   Flags=00000001
 end
+item: Remark
+end
 item: If/While Statement
   Variable=COMPONENTS
-  Value=B
-  Flags=00001010
+  Value=A
+  Flags=00000010
 end
 item: Create Shortcut
-  Source=%MAINDIR%\Doc\index.html
-  Destination=%GROUP%\Python Manuals.lnk
+  Source=%MAINDIR%\python.exe
+  Destination=%GROUP%\Python (command line).lnk
   Working Directory=%MAINDIR%
+  Icon Pathname=%MAINDIR%\pycon.ico
   Key Type=1536
   Flags=00000001
 end
 item: End Block
 end
+item: Remark
+end
 item: If/While Statement
   Variable=COMPONENTS
-  Value=A
-  Flags=00001010
+  Value=B
+  Flags=00000010
 end
 item: Create Shortcut
   Source=%MAINDIR%\pythonw.exe
   Destination=%GROUP%\IDLE (Python GUI).lnk
-  Command Options=%MAINDIR%\Tools\idle\idle.pyw
+  Command Options="%MAINDIR%\Tools\idle\idle.pyw"
   Working Directory=%MAINDIR%
   Key Type=1536
   Flags=00000001
@@ -1362,57 +2832,53 @@ end
 item: Create Shortcut
   Source=%MAINDIR%\pythonw.exe
   Destination=%GROUP%\Module Docs.lnk
-  Command Options=%MAINDIR%\Tools\Scripts\pydoc.pyw
+  Command Options="%MAINDIR%\Tools\Scripts\pydocgui.pyw"
   Working Directory=%MAINDIR%
   Key Type=1536
   Flags=00000001
 end
 item: End Block
 end
+item: Remark
+end
+item: If/While Statement
+  Variable=COMPONENTS
+  Value=C
+  Flags=00000010
+end
 item: Create Shortcut
-  Source=%MAINDIR%\unwise.exe
-  Destination=%GROUP%\Uninstall Python.lnk
+  Source=%MAINDIR%\Doc\index.html
+  Destination=%GROUP%\Python Manuals.lnk
   Working Directory=%MAINDIR%
   Key Type=1536
   Flags=00000001
 end
 item: End Block
 end
-item: Self-Register OCXs/DLLs
-  Description=Updating System Configuration, Please Wait...
+item: End Block
 end
-item: If/While Statement
-  Variable=COMPONENTS
-  Value=E
-  Flags=00001010
+item: Remark
 end
-item: Install File
-  Source=%_SRC_%\..\tcl\bin\tcl8%_TCLMINOR_%.dll
-  Destination=%MAINDIR%\DLLs\tcl8%_TCLMINOR_%.dll
-  Description=Tcl/Tk binaries and libraries
-  Flags=0000000000000010
+item: Remark
+  Text=I don't think we need this, but have always done it.
 end
-item: Install File
-  Source=%_SRC_%\..\tcl\bin\tk8%_TCLMINOR_%.dll
-  Destination=%MAINDIR%\DLLs\tk8%_TCLMINOR_%.dll
-  Description=Tcl/Tk binaries and libraries
-  Flags=0000000000000010
+item: Self-Register OCXs/DLLs
+  Description=Updating System Configuration, Please Wait...
 end
-item: Install File
-  Source=%_SRC_%\..\tcl\lib\*.*
-  Destination=%MAINDIR%\tcl
-  Description=Tcl/Tk binaries and libraries
-  Flags=0000000100000010
+item: Remark
 end
-item: End Block
+item: Add Text to INSTALL.LOG
+  Text=Delete in-use files: On
+end
+item: Remark
 end
 item: Wizard Block
   Direction Variable=DIRECTION
   Display Variable=DISPLAY
-  Bitmap Pathname=C:\Wise\DIALOGS\TEMPLATE\WIZARD.BMP
+  Bitmap Pathname=.\installer.bmp
   X Position=9
   Y Position=10
-  Filler Color=8421440
+  Filler Color=11173759
   Flags=00000011
 end
 item: Custom Dialog Set
@@ -1424,12 +2890,12 @@ item: Custom Dialog Set
     Title German=Installation von %APPTITLE%
     Title Spanish=Instalación de %APPTITLE%
     Title Italian=Installazione di %APPTITLE%
-    Width=271
-    Height=224
+    Width=339
+    Height=280
     Font Name=Helv
     Font Size=8
     item: Push Button
-      Rectangle=150 187 195 202
+      Rectangle=188 234 244 253
       Variable=DIRECTION
       Value=N
       Create Flags=01010000000000010000000000000001
@@ -1440,18 +2906,7 @@ item: Custom Dialog Set
       Text Italian=&Fine
     end
     item: Push Button
-      Rectangle=105 187 150 202
-      Variable=DISABLED
-      Value=!
-      Create Flags=01010000000000010000000000000000
-      Text=< &Back
-      Text French=< &Retour
-      Text German=< &Zurück
-      Text Spanish=< &Atrás
-      Text Italian=< &Indietro
-    end
-    item: Push Button
-      Rectangle=211 187 256 202
+      Rectangle=264 234 320 253
       Variable=DISABLED
       Value=!
       Action=3
@@ -1463,12 +2918,7 @@ item: Custom Dialog Set
       Text Italian=&Annulla
     end
     item: Static
-      Rectangle=8 180 256 181
-      Action=3
-      Create Flags=01010000000000000000000000000111
-    end
-    item: Static
-      Rectangle=86 8 258 42
+      Rectangle=108 10 323 48
       Create Flags=01010000000000000000000000000000
       Flags=0000000000000001
       Name=Times New Roman
@@ -1480,7 +2930,7 @@ item: Custom Dialog Set
       Text Italian=Installazione completata!
     end
     item: Static
-      Rectangle=86 42 256 102
+      Rectangle=108 44 320 82
       Create Flags=01010000000000000000000000000000
       Text=%APPTITLE% has been successfully installed.
       Text=
@@ -1498,7 +2948,43 @@ item: Custom Dialog Set
       Text Italian=
       Text Italian=Premere il pulsante Fine per uscire dall'installazione.
     end
+    item: Static
+      Rectangle=10 225 320 226
+      Action=3
+      Create Flags=01010000000000000000000000000111
+    end
+    item: Static
+      Rectangle=106 105 312 210
+      Enabled Color=00000000000000001111111111111111
+      Create Flags=01010000000000000000000000000000
+      Text=Special Windows thanks to:
+      Text=
+      Text=Wise Solutions, for the use of InstallMaster 8.1.
+      Text=    http://www.wisesolutions.com/
+      Text=
+      Text=
+      Text=LettError, Erik van Blokland, for the Python for Windows graphic.
+      Text=    http://www.letterror.com/
+      Text=
+      Text=
+      Text=Mark Hammond, without whose years of freely shared Windows expertise, Python for Windows would still be Python for DOS.
+    end
+    item: Static
+      Rectangle=106 95 312 96
+      Action=3
+      Enabled Color=00000000000000001111111111111111
+      Create Flags=01010000000000000000000000001001
+    end
   end
 end
 item: End Block
 end
+item: New Event
+  Name=Cancel
+end
+item: Remark
+  Text=This include script supports a rollback to preinstallation state if the user chooses to cancel before the installation is complete.
+end
+item: Include Script
+  Pathname=%_WISE_%\INCLUDE\rollback.wse
+end