diff options
| author | Tank_Master <tank.master@phoenixviewer.com> | 2015-02-11 14:26:54 -0800 | 
|---|---|---|
| committer | Tank_Master <tank.master@phoenixviewer.com> | 2015-02-11 14:26:54 -0800 | 
| commit | 14acb2fd0f3bb08fe5f524e887c5c3c6dee1113f (patch) | |
| tree | 8429efe592e8a458e812b6858a554b029584f269 | |
| parent | 4673020c6395bf0542017c6a118d797fa19285dc (diff) | |
Comments formatting changes, no behavior changes
| -rwxr-xr-x | indra/newview/installers/windows/installer_template.nsi | 447 | 
1 files changed, 221 insertions, 226 deletions
| diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi index c07ba560a7..7e3cfe04d2 100755 --- a/indra/newview/installers/windows/installer_template.nsi +++ b/indra/newview/installers/windows/installer_template.nsi @@ -1,6 +1,6 @@  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;; secondlife setup.nsi
 -;; Copyright 2004-2011, Linden Research, Inc.
 +;; Copyright 2004-2015, Linden Research, Inc.
  ;;
  ;; This library is free software; you can redistribute it and/or
  ;; modify it under the terms of the GNU Lesser General Public
 @@ -18,7 +18,7 @@  ;;
  ;; Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
  ;;
 -;; NSIS Unicode 2.38.1 or higher required
 +;; NSIS Unicode 2.46.5 or higher required
  ;; http://www.scratchpaper.com/
  ;;
  ;; Author: James Cook, Don Kjer, Callum Prentice
 @@ -27,15 +27,15 @@  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;; Compiler flags
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -SetOverwrite on				; Overwrite files
 -SetCompress auto			; Compress if saves space
 -SetCompressor /solid lzma	; Compress whole installer as one block
 -SetDatablockOptimize off	; Only saves us 0.1%, not worth it
 -XPStyle on                  ; Add an XP manifest to the installer
 -RequestExecutionLevel admin	; For when we write to Program Files
 +SetOverwrite on				# Overwrite files
 +SetCompress auto			# Compress if saves space
 +SetCompressor /solid lzma	# Compress whole installer as one block
 +SetDatablockOptimize off	# Only saves us 0.1%, not worth it
 +XPStyle on                  # Add an XP manifest to the installer
 +RequestExecutionLevel admin	# For when we write to Program Files
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -;;; Project flags
 +;; Project flags
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  %%VERSION%%
 @@ -72,23 +72,23 @@ LangString LanguageCode ${LANG_RUSSIAN}  "ru"  LangString LanguageCode ${LANG_TURKISH}  "tr"
  LangString LanguageCode ${LANG_TRADCHINESE}  "zh"
 -;; this placeholder is replaced by viewer_manifest.py
 +# this placeholder is replaced by viewer_manifest.py
  %%INST_VARS%%
  Name ${INSTNAME}
 -SubCaption 0 $(LicenseSubTitleSetup)	; override "license agreement" text
 +SubCaption 0 $(LicenseSubTitleSetup)	# Override "license agreement" text
 -BrandingText " "						; bottom of window text
 +BrandingText " "						# Bottom of window text
  Icon          %%SOURCE%%\installers\windows\install_icon.ico
  UninstallIcon %%SOURCE%%\installers\windows\uninstall_icon.ico
 -WindowIcon on							; show our icon in left corner
 -BGGradient off							; no big background window
 -CRCCheck on								; make sure CRC is OK
 -InstProgressFlags smooth colored		; new colored smooth look
 -ShowInstDetails nevershow				; no details, no "show" button
 -SetOverwrite on							; stomp files by default
 -AutoCloseWindow true					; after all files install, close window
 +WindowIcon on							# Show our icon in left corner
 +BGGradient off							# No big background window
 +CRCCheck on								# Make sure CRC is OK
 +InstProgressFlags smooth colored		# New colored smooth look
 +ShowInstDetails nevershow				# No details, no "show" button
 +SetOverwrite on							# Overwrite files by default
 +AutoCloseWindow true					# After all files install, close window
  InstallDir "$PROGRAMFILES\${INSTNAME}"
  InstallDirRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" ""
 @@ -97,51 +97,53 @@ Page directory dirPre  Page instfiles
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -;;; Variables
 +;; Variables
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  Var INSTPROG
  Var INSTEXE
  Var INSTSHORTCUT
 -Var COMMANDLINE         ; command line passed to this installer, set in .onInit
 -Var SHORTCUT_LANG_PARAM ; "--set InstallLanguage de", passes language to viewer
 -Var SKIP_DIALOGS        ; set from command line in  .onInit. autoinstall 
 -                        ; GUI and the defaults.
 -Var SKIP_AUTORUN		; skip automatic launch of viewer after install
 -Var DO_UNINSTALL_V2     ; If non-null, path to a previous Viewer 2 installation that will be uninstalled.
 -
 -;;; Function definitions should go before file includes, because calls to
 -;;; DLLs like LangDLL trigger an implicit file include, so if that call is at
 -;;; the end of this script NSIS has to decompress the whole installer before 
 -;;; it can call the DLL function. JC
 -
 -!include "FileFunc.nsh"     ; For GetParameters, GetOptions
 +Var COMMANDLINE         # Command line passed to this installer, set in .onInit
 +Var SHORTCUT_LANG_PARAM # "--set InstallLanguage de", Passes language to viewer
 +Var SKIP_DIALOGS        # Set from command line in  .onInit. autoinstall 
 +                        # GUI and the defaults.
 +Var SKIP_AUTORUN		# Skip automatic launch of viewer after install
 +Var DO_UNINSTALL_V2     # If non-null, path to a previous Viewer 2 installation that will be uninstalled.
 +
 +# Function definitions should go before file includes, because calls to
 +# DLLs like LangDLL trigger an implicit file include, so if that call is at
 +# the end of this script NSIS has to decompress the whole installer before 
 +# it can call the DLL function. JC
 +
 +!include "FileFunc.nsh"     # For GetParameters, GetOptions
  !insertmacro GetParameters
  !insertmacro GetOptions
 -!include WinVer.nsh			; For OS and SP detection
 +!include WinVer.nsh			# For OS and SP detection
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -;;; After install completes, launch app
 +;; After install completes, launch app
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  Function .onInstSuccess
 -Call CheckWindowsServPack				; Warn if not on the latest SP before asking to launch.
 -    Push $R0	# Option value, unused
 +Call CheckWindowsServPack		# Warn if not on the latest SP before asking to launch.
 +    Push $R0					# Option value, unused
  	StrCmp $SKIP_AUTORUN "true" +2;
 -	# Assumes SetOutPath $INSTDIR
 +# Assumes SetOutPath $INSTDIR
  	Exec '"$INSTDIR\$INSTEXE" $SHORTCUT_LANG_PARAM'
  	Pop $R0
 +
  FunctionEnd
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -;;; Pre-directory page callback
 +;; Pre-directory page callback
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  Function dirPre
      StrCmp $SKIP_DIALOGS "true" 0 +2
  	Abort
 +
  FunctionEnd    
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -; Make sure this computer meets the minimum system requirements.
 -; Currently: Windows 32bit XP SP3, 64bit XP SP2 and Server 2003 SP2
 +;; Make sure this computer meets the minimum system requirements.
 +;; Currently: Windows Vista SP2
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  Function CheckWindowsVersion
    ${If} ${AtMostWin2003}
 @@ -160,10 +162,11 @@ Function CheckWindowsVersion      MessageBox MB_OK $(CheckWindowsVersionMB)
      Quit
    ${EndIf}
 +
  FunctionEnd
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -;Recommend Upgrading Service Pack
 +;; Recommend Upgrading to Service Pack 1 for Windows 7, if not present
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  Function CheckWindowsServPack
    ${If} ${IsWin7}
 @@ -179,10 +182,11 @@ Function CheckWindowsServPack      DetailPrint $(UseLatestServPackDP)
      Return
    ${EndIf}
 +
  FunctionEnd
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -; Make sure the user can install/uninstall
 +;; Make sure the user can install
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  Function CheckIfAdministrator
      DetailPrint $(CheckAdministratorInstDP)
 @@ -193,10 +197,11 @@ Function CheckIfAdministrator          Quit
  lbl_is_admin:
      Return
 +
  FunctionEnd
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -;;
 +;; Make sure the user can uninstall
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  Function un.CheckIfAdministrator
      DetailPrint $(CheckAdministratorUnInstDP)
 @@ -207,11 +212,12 @@ Function un.CheckIfAdministrator          Quit
  lbl_is_admin:
      Return
 +
  FunctionEnd
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -; Checks to see if the current version has already been installed (according to the registry).
 -; If it has, allow user to bail out of install process.
 +;; Checks to see if the current version has already been installed (according to the registry).
 +;; If it has, allow user to bail out of install process.
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  Function CheckIfAlreadyCurrent
      Push $0
 @@ -223,10 +229,11 @@ Function CheckIfAlreadyCurrent  continue_install:
      Pop $0
      Return
 +
  FunctionEnd
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -; Checks for CPU valid (must have SSE2 support)
 +;; Checks for CPU valid (must have SSE2 support)
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  Function CheckCPUFlags
      Push $1
 @@ -238,11 +245,12 @@ Function CheckCPUFlags    OK_SSE2:
      Pop $1
      Return
 +
  FunctionEnd
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -; Close the program, if running. Modifies no variables.
 -; Allows user to bail out of install process.
 +;; Close the program, if running. Modifies no variables.
 +;; Allows user to bail out of install process.
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  Function CloseSecondLife
    Push $0
 @@ -268,50 +276,51 @@ Function CloseSecondLife    DONE:
      Pop $0
      Return
 +
  FunctionEnd
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -; Test our connection to secondlife.com
 -; Also allows us to count attempted installs by examining web logs.
 -; *TODO: Return current SL version info and have installer check
 -; if it is up to date.
 +;; Test our connection to secondlife.com
 +;; Also allows us to count attempted installs by examining web logs.
 +;; *TODO: Return current SL version info and have installer check
 +;; if it is up to date.
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  Function CheckNetworkConnection
      Push $0
      Push $1
      Push $2	# Option value for GetOptions
      DetailPrint $(CheckNetworkConnectionDP)
 -    ; Look for a tag value from the stub installer, used for statistics
 -    ; to correlate installs.  Default to "" if not found on command line.
 +# Look for a tag value from the stub installer, used for statistics to correlate installs.
 +# Default to "" if not found on command line.
      StrCpy $2 ""
      ${GetOptions} $COMMANDLINE "/STUBTAG=" $2
      GetTempFileName $0
 -    !define HTTP_TIMEOUT 5000 ; milliseconds
 -    ; Don't show secondary progress bar, this will be quick.
 +    !define HTTP_TIMEOUT 5000		# milliseconds
 +# Don't show secondary progress bar, this will be quick.
      NSISdl::download_quiet \
          /TIMEOUT=${HTTP_TIMEOUT} \
          "http://install.secondlife.com/check/?stubtag=$2&version=${VERSION_LONG}" \
          $0
 -    Pop $1 ; Return value, either "success", "cancel" or an error message
 +    Pop $1		# Return value, either "success", "cancel" or an error message
      ; MessageBox MB_OK "Download result: $1"
      ; Result ignored for now
  	; StrCmp $1 "success" +2
  	;	DetailPrint "Connection failed: $1"
 -    Delete $0 ; temporary file
 +    Delete $0	# temporary file
      Pop $2
      Pop $1
      Pop $0
      Return
 +
  FunctionEnd
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -; Function CheckOldExeName
 -; Viewer versions < 3.6.12 used the name 'SecondLife.exe'
 -; If that name is found in the install folder, delete it to invalidate any
 -; old shortcuts to it that may be in non-standard locations, so that the user
 -; does not end up running the old version (potentially getting caught in an 
 -; infinite update loop). See MAINT-3575
 -; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 +;; Function CheckOldExeName
 +;; Viewer versions < 3.6.12 used the name 'SecondLife.exe'
 +;; If that name is found in the install folder, delete it to invalidate any
 +;;  old shortcuts to it that may be in non-standard locations. This is to prevent
 +;;  the userpotentially getting caught in an infinite update loop). See MAINT-3575
 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  Function CheckOldExeName
    IfFileExists "$INSTDIR\SecondLife.exe" CHECKOLDEXE_FOUND CHECKOLDEXE_DONE
 @@ -319,23 +328,22 @@ Function CheckOldExeName  CHECKOLDEXE_FOUND:
    Delete "$INSTDIR\SecondLife.exe"
  CHECKOLDEXE_DONE:
 -FunctionEnd
 +FunctionEnd
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -; Function CheckWillUninstallV2               
 -;
 -; If we are being called through auto-update, we need to uninstall any
 -; existing V2 installation. Otherwise, we wind up with
 -; SecondLifeViewer2 and SecondLifeViewer installations existing side
 -; by side no indication which to use.
 -; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 +;; Function CheckWillUninstallV2               
 +;;
 +;; If called through auto-update, need to uninstall any existing V2 installation.
 +;; Don't want to end up with SecondLifeViewer2 and SecondLifeViewer installations
 +;;  existing side by side with no indication on which to use.
 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  Function CheckWillUninstallV2
    StrCpy $DO_UNINSTALL_V2 ""
    StrCmp $SKIP_DIALOGS "true" 0 CHECKV2_DONE
 -  StrCmp $INSTDIR "$PROGRAMFILES\SecondLifeViewer2" CHECKV2_DONE ; don't uninstall our own install dir.
 +  StrCmp $INSTDIR "$PROGRAMFILES\SecondLifeViewer2" CHECKV2_DONE	# Don't uninstall our own install dir.
    IfFileExists "$PROGRAMFILES\SecondLifeViewer2\uninst.exe" CHECKV2_FOUND CHECKV2_DONE
  CHECKV2_FOUND:
 @@ -346,7 +354,7 @@ CHECKV2_DONE:  FunctionEnd
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -; Save user files to temp location
 +;; Save user files to temp location
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  Function PreserveUserFiles
 @@ -354,18 +362,18 @@ Push $0  Push $1
  Push $2
 -    RMDir /r "$TEMP\SecondLifeSettingsBackup"
 +    RMDir /r "$TEMP\SecondLifeSettingsBackup"		# Clear out any old data that might be there
      CreateDirectory "$TEMP\SecondLifeSettingsBackup"
 -    StrCpy $0 0 ; Index number used to iterate via EnumRegKey
 +    StrCpy $0 0		# Index number used to iterate via EnumRegKey
    LOOP:
      EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0
 -    StrCmp $1 "" DONE               ; no more users
 +    StrCmp $1 "" DONE               # no more users
      ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath" 
 -    StrCmp $2 "" CONTINUE 0         ; "ProfileImagePath" value is missing
 +    StrCmp $2 "" CONTINUE 0         # "ProfileImagePath" value is missing
 -    ; Required since ProfileImagePath is of type REG_EXPAND_SZ
 +# Required since ProfileImagePath is of type REG_EXPAND_SZ
      ExpandEnvStrings $2 $2
      CreateDirectory "$TEMP\SecondLifeSettingsBackup\$0"
 @@ -380,7 +388,7 @@ Pop $2  Pop $1
  Pop $0
 -; Copy files in Documents and Settings\All Users\SecondLife
 +# Copy files in Documents and Settings\All Users\SecondLife
  Push $0
      ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData"
      StrCmp $0 "" +2
 @@ -391,7 +399,7 @@ Pop $0  FunctionEnd
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -; Restore user files from temp location
 +;; Restore user files from temp location
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  Function RestoreUserFiles
 @@ -399,16 +407,16 @@ Push $0  Push $1
  Push $2
 -    StrCpy $0 0 ; Index number used to iterate via EnumRegKey
 +    StrCpy $0 0		# Index number used to iterate via EnumRegKey
    LOOP:
      EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0
 -    StrCmp $1 "" DONE               ; no more users
 +    StrCmp $1 "" DONE               # no more users
      ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath" 
 -    StrCmp $2 "" CONTINUE 0         ; "ProfileImagePath" value is missing
 +    StrCmp $2 "" CONTINUE 0         # "ProfileImagePath" value is missing
 -    ; Required since ProfileImagePath is of type REG_EXPAND_SZ
 +# Required since ProfileImagePath is of type REG_EXPAND_SZ
      ExpandEnvStrings $2 $2
      CreateDirectory "$2\Application Data\SecondLife\"
 @@ -423,7 +431,7 @@ Pop $2  Pop $1
  Pop $0
 -; Copy files in Documents and Settings\All Users\SecondLife
 +# Copy files in Documents and Settings\All Users\SecondLife
  Push $0
      ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData"
      StrCmp $0 "" +2
 @@ -434,7 +442,7 @@ Pop $0  FunctionEnd
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -; Remove temp dirs
 +;; Remove temp directories
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  Function RemoveTempUserFiles
 @@ -442,16 +450,16 @@ Push $0  Push $1
  Push $2
 -    StrCpy $0 0 ; Index number used to iterate via EnumRegKey
 +    StrCpy $0 0		# Index number used to iterate via EnumRegKey
    LOOP:
      EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0
 -    StrCmp $1 "" DONE               ; no more users
 +    StrCmp $1 "" DONE               # no more users
      ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath" 
 -    StrCmp $2 "" CONTINUE 0         ; "ProfileImagePath" value is missing
 +    StrCmp $2 "" CONTINUE 0         # "ProfileImagePath" value is missing
 -    ; Required since ProfileImagePath is of type REG_EXPAND_SZ
 +# Required since ProfileImagePath is of type REG_EXPAND_SZ
      ExpandEnvStrings $2 $2
      RMDir /r "$TEMP\SecondLifeSettingsBackup\$0\*"
 @@ -465,7 +473,7 @@ Pop $2  Pop $1
  Pop $0
 -; Copy files in Documents and Settings\All Users\SecondLife
 +# Copy files in Documents and Settings\All Users\SecondLife
  Push $0
      ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData"
      StrCmp $0 "" +2
 @@ -474,10 +482,9 @@ Pop $0  FunctionEnd
 -
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -; Clobber user files - TEST ONLY
 -; This is here for testing, generally not desirable to call it.
 +;; Clobber user files - TEST ONLY
 +;; This is here for testing, DO NOT USE UNLESS YOU KNOW WHAT YOU ARE TESTING FOR!
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;Function ClobberUserFilesTESTONLY
 @@ -485,16 +492,16 @@ FunctionEnd  ;Push $1
  ;Push $2
  ;
 -;    StrCpy $0 0 ; Index number used to iterate via EnumRegKey
 +;    StrCpy $0 0	# Index number used to iterate via EnumRegKey
  ;
  ;  LOOP:
  ;    EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0
 -;    StrCmp $1 "" DONE               ; no more users
 +;    StrCmp $1 "" DONE               # no more users
  ;
  ;    ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath" 
 -;    StrCmp $2 "" CONTINUE 0         ; "ProfileImagePath" value is missing
 +;    StrCmp $2 "" CONTINUE 0         # "ProfileImagePath" value is missing
  ;
 -;    ; Required since ProfileImagePath is of type REG_EXPAND_SZ
 +;# Required since ProfileImagePath is of type REG_EXPAND_SZ
  ;    ExpandEnvStrings $2 $2
  ;
  ;    RMDir /r "$2\Application Data\SecondLife\"
 @@ -508,7 +515,7 @@ FunctionEnd  ;Pop $1
  ;Pop $0
  ;
 -;; Copy files in Documents and Settings\All Users\SecondLife
 +;# Copy files in Documents and Settings\All Users\SecondLife
  ;Push $0
  ;    ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData"
  ;    StrCmp $0 "" +2
 @@ -518,10 +525,10 @@ FunctionEnd  ;FunctionEnd
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -;;; Delete the installed shader files
 -;;; Since shaders are in active development, we'll likely need to shuffle them
 -;;; around a bit from build to build.  This ensures that shaders that we move
 -;;; or rename in the dev tree don't get left behind in the install.
 +;; Delete the installed shader files
 +;; Since shaders are in active development, we'll likely need to shuffle them
 +;;  around a bit from build to build.  This ensures that shaders that were removed
 +;;  or renamed don't get left behind in the install directory.
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  Function RemoveOldShaders
 @@ -531,14 +538,13 @@ RMDir /r "$INSTDIR\app_settings\shaders\*"  FunctionEnd
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -;;; Delete the installed XUI files
 -;;; We've changed the directory hierarchy for skins, putting all XUI and texture
 -;;; files under a specific skin directory, i.e. skins/default/xui/en-us as opposed
 -;;; to skins/xui/en-us.  Need to clean up the old path when upgrading
 +;; Delete the installed XUI files
 +;; We've changed the directory hierarchy for skins, putting all XUI and texture
 +;; files under a specific skin directory, i.e. skins/default/xui/en-us as opposed
 +;; to skins/xui/en-us.  Need to clean up the old path when upgrading.
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  Function RemoveOldXUI
 -;; remove old XUI and texture files
  RmDir /r "$INSTDIR\skins\html"
  RmDir /r "$INSTDIR\skins\xui"
  RmDir /r "$INSTDIR\skins\textures"
 @@ -547,47 +553,41 @@ Delete "$INSTDIR\skins\*.txt"  FunctionEnd
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -;;; Remove any releasenotes files.
 -;;; We are no longer including release notes with the viewer. This will delete
 -;;; any that were left behind by an older installer. Delete will not fail if
 -;;; the files do not exist
 +;; Remove any release notes files.
 +;; We are no longer including release notes with the viewer, so remove them.
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  Function RemoveOldReleaseNotes
 -;; remove releasenotes.txt file from application directory, and the shortcut
 -;; from the start menu.
  Delete "$SMPROGRAMS\$INSTSHORTCUT\SL Release Notes.lnk"
  Delete "$INSTDIR\releasenotes.txt"
  FunctionEnd
 -
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -; Delete files in Documents and Settings\<user>\SecondLife
 -; Delete files in Documents and Settings\All Users\SecondLife
 +;; Delete files in \Users\<User>\AppData\Roaming\SecondLife
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  Function un.DocumentsAndSettingsFolder
 -; Delete files in Documents and Settings\<user>\SecondLife
 +# Delete files in \Users\<User>\AppData\Roaming\SecondLife
  Push $0
  Push $1
  Push $2
 -  DetailPrint "Deleting files in Documents and Settings folder"
 +  DetailPrint "Deleting Second Life files"
 -  StrCpy $0 0 ; Index number used to iterate via EnumRegKey
 +  StrCpy $0 0	# Index number used to iterate via EnumRegKey
    LOOP:
      EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0
 -    StrCmp $1 "" DONE               ; no more users
 +    StrCmp $1 "" DONE               # no more users
      ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath" 
 -    StrCmp $2 "" CONTINUE 0         ; "ProfileImagePath" value is missing
 +    StrCmp $2 "" CONTINUE 0         # "ProfileImagePath" value is missing
 -    ; Required since ProfileImagePath is of type REG_EXPAND_SZ
 +# Required since ProfileImagePath is of type REG_EXPAND_SZ
      ExpandEnvStrings $2 $2
 -        ; Remove all cache and settings files but leave any other .txt files to preserve the chat logs
 +# Remove all settings files but leave any other .txt files to preserve the chat logs
  ;    RMDir /r "$2\Application Data\SecondLife\logs"
      RMDir /r "$2\Application Data\SecondLife\browser_profile"
      RMDir /r "$2\Application Data\SecondLife\user_settings"
 @@ -606,23 +606,23 @@ Pop $2  Pop $1
  Pop $0
 -; Delete files in Documents and Settings\All Users\SecondLife
 +# Delete files in Program Data folder
  Push $0
    ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData"
    StrCmp $0 "" +2
    RMDir /r "$0\SecondLife"
  Pop $0
 -; Delete files in C:\Windows\Application Data\SecondLife
 -; If the user is running on a pre-NT system, Application Data lives here instead of
 -; in Documents and Settings.
 +# Delete files in C:\Windows\Application Data\SecondLife
 +# If the user is running on a pre-NT system, Application Data lives here instead of
 +# in Documents and Settings.
  RMDir /r "$WINDIR\Application Data\SecondLife"
  FunctionEnd
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -; Close the program, if running. Modifies no variables.
 -; Allows user to bail out of uninstall process.
 +;; Close the program, if running. Modifies no variables.
 +;; Allows user to bail out of uninstall process.
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  Function un.CloseSecondLife
    Push $0
 @@ -646,14 +646,13 @@ Function un.CloseSecondLife    DONE:
      Pop $0
      Return
 -FunctionEnd
 +FunctionEnd
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -;
 -;   Delete the stored password for the current Windows user
 -;   DEV-10821 -- Unauthorised user can gain access to an SL account after a real user has uninstalled
 -;
 +;; Delete the stored password for the current Windows user
 +;; DEV-10821 -- Unauthorised user can gain access to an SL account after a real user has uninstalled
 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  Function un.RemovePassword
  DetailPrint "Removing Second Life password"
 @@ -665,23 +664,21 @@ SetShellVarContext all  FunctionEnd
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -;;; Delete the installed files
 -;;; This deletes the uninstall executable, but it works 
 -;;; because it is copied to temp directory before running
 -;;;
 -;;; Note:  You must list all files here, because we only
 -;;; want to delete our files, not things users left in the
 -;;; application directories.
 +;; Delete the installed files
 +;; This deletes the uninstall executable, but it works because it is copied to temp directory before running
 +;;
 +;; Note:  You must list all files here, because we only want to delete our files,
 +;; not things users left in the application directories.
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  Function un.ProgramFiles
 -;; Remove mozilla file first so recursive directory deletion doesn't get hung up
 +# Remove mozilla file first so recursive directory deletion doesn't get hung up
  Delete "$INSTDIR\app_settings\mozilla\components"
 -;; This placeholder is replaced by the complete list of files to uninstall by viewer_manifest.py
 +# This placeholder is replaced by the complete list of files to uninstall by viewer_manifest.py
  %%DELETE_FILES%%
 -;; Optional/obsolete files.  Delete won't fail if they don't exist.
 +# Optional/obsolete files.  Delete won't fail if they don't exist.
  Delete "$INSTDIR\dronesettings.ini"
  Delete "$INSTDIR\message_template.msg"
  Delete "$INSTDIR\newview.pdb"
 @@ -694,9 +691,11 @@ Delete "$INSTDIR\motions\*.lla"  Delete "$INSTDIR\trial\*.html"
  Delete "$INSTDIR\newview.exe"
  Delete "$INSTDIR\SecondLife.exe"
 -;; MAINT-3099 workaround - prevent these log files, if present, from causing a user alert
 +
 +# MAINT-3099 workaround - prevent these log files, if present, from causing a user alert
  Delete "$INSTDIR\VivoxVoiceService-*.log"
 -;; Remove entire help directory
 +
 +# Remove entire help directory
  Delete "$INSTDIR\help\Advanced\*"
  RMDir  "$INSTDIR\help\Advanced"
  Delete "$INSTDIR\help\basics\*"
 @@ -714,7 +713,7 @@ RMDir "$INSTDIR"  IfFileExists "$INSTDIR" FOLDERFOUND NOFOLDER
  FOLDERFOUND:
 -  ; Silent uninstall always removes all files (/SD IDYES)
 +# Silent uninstall always removes all files (/SD IDYES)
    MessageBox MB_YESNO $(DeleteProgramFilesMB) /SD IDYES IDNO NOFOLDER
    RMDir /r "$INSTDIR"
 @@ -723,33 +722,35 @@ NOFOLDER:  FunctionEnd
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -;;; Uninstall settings
 +;; Uninstall settings
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  UninstallText $(UninstallTextMsg)
  ShowUninstDetails show
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -;;; Uninstall section
 +;; Uninstall Section
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  Section Uninstall
 -; Start with some default values.
 +# Start with some default values.
  StrCpy $INSTPROG "${INSTNAME}"
  StrCpy $INSTEXE "${INSTEXE}"
  StrCpy $INSTSHORTCUT "${SHORTCUT}"
 -Call un.CheckIfAdministrator		; Make sure the user can install/uninstall
 -; uninstall for all users (if you change this, change it in the install as well)
 +# Make sure the user can install/uninstall
 +Call un.CheckIfAdministrator		
 +
 +# uninstall for all users (if you change this, change it in the install as well)
  SetShellVarContext all			
 -; Make sure we're not running
 +# Make sure we're not running
  Call un.CloseSecondLife
 -; Clean up registry keys and subkeys (these should all be !defines somewhere)
 +# Clean up registry keys and subkeys (these should all be !defines somewhere)
  DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG"
  DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG"
 -; Clean up shortcuts
 +# Clean up shortcuts
  Delete "$SMPROGRAMS\$INSTSHORTCUT\*.*"
  RMDir  "$SMPROGRAMS\$INSTSHORTCUT"
 @@ -757,81 +758,85 @@ Delete "$DESKTOP\$INSTSHORTCUT.lnk"  Delete "$INSTDIR\$INSTSHORTCUT.lnk"
  Delete "$INSTDIR\Uninstall $INSTSHORTCUT.lnk"
 -; Clean up cache and log files.
 -; Leave them in-place for non AGNI installs.
 +# Clean up cache and log files, but leave them in-place for non AGNI installs.
  !ifdef UNINSTALL_SETTINGS
  Call un.DocumentsAndSettingsFolder
  !endif
 -; remove stored password on uninstall
 +# Remove stored password on uninstall
  Call un.RemovePassword
  Call un.ProgramFiles
 -SectionEnd 				; end of uninstall section
 +# End of uninstall section
 +
 +SectionEnd 				
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -;;  Note: to add new languages, add a language file include to the list 
 -;;  at the top of this file, add an entry to the menu and then add an 
 -;;  entry to the language ID selector below
 +;; Prep Installer Section
 +;;
 +;; Note: to add new languages, add a language file include to the list 
 +;; at the top of this file, add an entry to the menu and then add an 
 +;; entry to the language ID selector below
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  Function .onInit
 -Call CheckWindowsVersion		; Don't install On unsupported systems
 +Call CheckWindowsVersion					# Don't install On unsupported systems
      Push $0
 -    ${GetParameters} $COMMANDLINE              ; get our command line
 +    ${GetParameters} $COMMANDLINE			# Get our command line
      ${GetOptions} $COMMANDLINE "/SKIP_DIALOGS" $0   
 -    IfErrors +2 0 ; If error jump past setting SKIP_DIALOGS
 +    IfErrors +2 0	# If error jump past setting SKIP_DIALOGS
          StrCpy $SKIP_DIALOGS "true"
  	${GetOptions} $COMMANDLINE "/SKIP_AUTORUN" $0
 -    IfErrors +2 0 ; If error jump past setting SKIP_AUTORUN
 +    IfErrors +2 0	# If error jump past setting SKIP_AUTORUN
  		StrCpy $SKIP_AUTORUN "true"
 -    ${GetOptions} $COMMANDLINE "/LANGID=" $0   ; /LANGID=1033 implies US English
 +    ${GetOptions} $COMMANDLINE "/LANGID=" $0	# /LANGID=1033 implies US English
 -    ; If no language (error), then proceed
 +# If no language (error), then proceed
      IfErrors lbl_configure_default_lang
 -    ; No error means we got a language, so use it
 +# No error means we got a language, so use it
      StrCpy $LANGUAGE $0
      Goto lbl_return
  lbl_configure_default_lang:
 -    ; If we currently have a version of SL installed, default to the language of that install
 -    ; Otherwise don't change $LANGUAGE and it will default to the OS UI language.
 +# If we currently have a version of SL installed, default to the language of that install
 +# Otherwise don't change $LANGUAGE and it will default to the OS UI language.
      ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage"
 -    IfErrors +2 0 ; If error skip the copy instruction 
 +    IfErrors +2 0	# If error skip the copy instruction 
  	StrCpy $LANGUAGE $0
 -    ; For silent installs, no language prompt, use default
 +# For silent installs, no language prompt, use default
      IfSilent lbl_return
      StrCmp $SKIP_DIALOGS "true" lbl_return
  lbl_build_menu:
  	Push ""
 -    # Use separate file so labels can be UTF-16 but we can still merge changes
 -    # into this ASCII file. JC
 +# Use separate file so labels can be UTF-16 but we can still merge changes into this ASCII file. JC
      !include "%%SOURCE%%\installers\windows\language_menu.nsi"
 -	Push A ; A means auto count languages for the auto count to work the first empty push (Push "") must remain
 +	Push A	# A means auto count languages for the auto count to work the first empty push (Push "") must remain
  	LangDLL::LangDialog $(InstallerLanguageTitle) $(SelectInstallerLanguage)
  	Pop $0
  	StrCmp $0 "cancel" 0 +2
  		Abort
      StrCpy $LANGUAGE $0
 -	; save language in registry		
 +# save language in registry		
  	WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage" $LANGUAGE
  lbl_return:
      Pop $0
      Return
 +
  FunctionEnd
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 +;; Prep Uninstaller Section
 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  Function un.onInit
 -	; read language from registry and set for uninstaller
 -    ; Key will be removed on successful uninstall
 +# Read language from registry and set for uninstaller. Key will be removed on successful uninstall
  	ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage"
      IfErrors lbl_end
  	StrCpy $LANGUAGE $0
 @@ -840,56 +845,50 @@ lbl_end:  FunctionEnd
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -;;; MAIN SECTION
 +;; Default Section
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -Section ""						; (default section)
 +Section ""						# (default section)
 -SetShellVarContext all			; install for all users (if you change this, change it in the uninstall as well)
 +SetShellVarContext all			# install for all users (if you change this, change it in the uninstall as well)
 -; Start with some default values.
 +# Start with some default values.
  StrCpy $INSTPROG "${INSTNAME}"
  StrCpy $INSTEXE "${INSTEXE}"
  StrCpy $INSTSHORTCUT "${SHORTCUT}"
 -Call CheckCPUFlags				; Make sure we have SSE2 support
 -Call CheckIfAdministrator		; Make sure the user can install/uninstall
 -Call CheckIfAlreadyCurrent		; Make sure that we haven't already installed this version
 -Call CloseSecondLife			; Make sure we're not running
 -Call CheckNetworkConnection		; ping secondlife.com
 -Call CheckWillUninstallV2		; See if a V2 install exists and will be removed.
 -Call CheckOldExeName                    ; Clean up a previous version of the exe
 +Call CheckCPUFlags				# Make sure we have SSE2 support
 +Call CheckIfAdministrator		# Make sure the user can install/uninstall
 +Call CheckIfAlreadyCurrent		# Make sure that we haven't already installed this version
 +Call CloseSecondLife			# Make sure we're not running
 +Call CheckNetworkConnection		# ping secondlife.com
 +Call CheckWillUninstallV2		# See if a V2 install exists and will be removed.
 +Call CheckOldExeName            # Clean up a previous version of the exe
 -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  StrCmp $DO_UNINSTALL_V2 "" PRESERVE_DONE
    Call PreserveUserFiles
  PRESERVE_DONE:
 -;;; Don't remove cache files during a regular install, removing the inventory cache on upgrades results in lots of damage to the servers.
 -;Call RemoveCacheFiles			; Installing over removes potentially corrupted
 -								; VFS and cache files.
 -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -;;; Need to clean out shader files from previous installs to fix DEV-5663
 +# Don't remove cache files during a regular install,
 +# removing the inventory cache on upgrades results in lots of damage to the servers.
 +;Call RemoveCacheFiles			# Installing over removes potentially corrupted
 +								# VFS and cache files.
 +
 +# Need to clean out shader files from previous installs to fix DEV-5663
  Call RemoveOldShaders
 -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -;;; Need to clean out old XUI files that predate skinning
 +# Need to clean out old XUI files that predate skinning
  Call RemoveOldXUI
 -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -;;; Clear out old releasenotes.txt files. These are now on the public wiki.
 +# Clear out old releasenotes.txt files. These are now on the public wiki.
  Call RemoveOldReleaseNotes
 -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -;;; Files
 -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -;; This placeholder is replaced by the complete list of all the files in the installer, by viewer_manifest.py
 +# This placeholder is replaced by the complete list of all the files in the installer, by viewer_manifest.py
  %%INSTALL_FILES%%
  # Pass the installer's language to the client to use as a default
  StrCpy $SHORTCUT_LANG_PARAM "--set InstallLanguage $(LanguageCode)"
 -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -; Shortcuts in start menu
 +# Shortcuts in start menu
  CreateDirectory	"$SMPROGRAMS\$INSTSHORTCUT"
  SetOutPath "$INSTDIR"
  CreateShortCut	"$SMPROGRAMS\$INSTSHORTCUT\$INSTSHORTCUT.lnk" \
 @@ -908,8 +907,7 @@ WriteINIStr		"$SMPROGRAMS\$INSTSHORTCUT\SL Scripting Language Help.url" \  CreateShortCut	"$SMPROGRAMS\$INSTSHORTCUT\Uninstall $INSTSHORTCUT.lnk" \
  				'"$INSTDIR\uninst.exe"' ''
 -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -; Other shortcuts
 +# Other shortcuts
  SetOutPath "$INSTDIR"
  CreateShortCut "$DESKTOP\$INSTSHORTCUT.lnk" \
          "$INSTDIR\$INSTEXE" "$SHORTCUT_LANG_PARAM"
 @@ -918,9 +916,7 @@ CreateShortCut "$INSTDIR\$INSTSHORTCUT.lnk" \  CreateShortCut "$INSTDIR\Uninstall $INSTSHORTCUT.lnk" \
  				'"$INSTDIR\uninst.exe"' ''
 -
 -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -; Write registry
 +# Write registry
  WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "" "$INSTDIR"
  WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Version" "${VERSION_LONG}"
  WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Shortcut" "$INSTSHORTCUT"
 @@ -928,35 +924,34 @@ WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Exe"  WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" "DisplayName" "$INSTPROG (remove only)"
  WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" "UninstallString" '"$INSTDIR\uninst.exe"'
 -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -; Write URL registry info
 +# Write URL registry info
  WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}" "(default)" "URL:Second Life"
  WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}" "URL Protocol" ""
  WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}\DefaultIcon" "" '"$INSTDIR\$INSTEXE"'
 -;; URL param must be last item passed to viewer, it ignores subsequent params
 -;; to avoid parameter injection attacks.
 +
 +# URL param must be last item passed to viewer, it ignores subsequent params to avoid parameter injection attacks.
  WriteRegExpandStr HKEY_CLASSES_ROOT "${URLNAME}\shell\open\command" "" '"$INSTDIR\$INSTEXE" -url "%1"'
  WriteRegStr HKEY_CLASSES_ROOT "x-grid-location-info"(default)" "URL:Second Life"
  WriteRegStr HKEY_CLASSES_ROOT "x-grid-location-info" "URL Protocol" ""
  WriteRegStr HKEY_CLASSES_ROOT "x-grid-location-info\DefaultIcon" "" '"$INSTDIR\$INSTEXE"'
 -;; URL param must be last item passed to viewer, it ignores subsequent params
 -;; to avoid parameter injection attacks.
 +
 +# URL param must be last item passed to viewer, it ignores subsequent params to avoid parameter injection attacks.
  WriteRegExpandStr HKEY_CLASSES_ROOT "x-grid-location-info\shell\open\command" "" '"$INSTDIR\$INSTEXE" -url "%1"'
 -; write out uninstaller
 +# write out uninstaller
  WriteUninstaller "$INSTDIR\uninst.exe"
 -; Uninstall existing "Second Life Viewer 2" install if needed.
 +# Uninstall existing "Second Life Viewer 2" install if needed.
  StrCmp $DO_UNINSTALL_V2 "" REMOVE_SLV2_DONE
    ExecWait '"$PROGRAMFILES\SecondLifeViewer2\uninst.exe" /S _?=$PROGRAMFILES\SecondLifeViewer2'
 -  Delete "$PROGRAMFILES\SecondLifeViewer2\uninst.exe" ; with _? option above, uninst.exe will be left behind.
 -  RMDir "$PROGRAMFILES\SecondLifeViewer2" ; will remove only if empty.
 +  Delete "$PROGRAMFILES\SecondLifeViewer2\uninst.exe"	# with _? option above, uninst.exe will be left behind.
 +  RMDir "$PROGRAMFILES\SecondLifeViewer2"	# will remove only if empty.
    Call RestoreUserFiles
    Call RemoveTempUserFiles
  REMOVE_SLV2_DONE:
 -; end of default section
 +# end of default section
  SectionEnd
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; EOF  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
