; 1. WinMerge\r
; 2. Read Me\r
; 3. Users's Guide\r
-; 4. WinMerge on the Web\r
-; 5. Uninstall WinMerge\r
; # Create the ability to install to two start menu groups simultaneously\r
;\r
; Not yet possible (Limited by Inno Setup):\r
; # While uninstalling prompt the user as to whether or not they'd like to remove their WinMerge preferences too?\r
\r
-#define AppVersion GetFileVersion(SourcePath + "\..\..\Build\MergeUnicodeRelease\WinMergeU.exe")\r
-#define FriendlyAppVersion Copy(GetFileVersion(SourcePath + "\..\..\Build\MergeUnicodeRelease\WinMergeU.exe"), 1, 5)\r
-#define VS120COMNTOOLS GetEnv('VS120COMNTOOLS')\r
-#define VS140COMNTOOLS GetEnv('VS140COMNTOOLS')\r
+#define AppVersion GetFileVersion(SourcePath + "\..\..\Build\Release\WinMergeU.exe")\r
+#define ShellExtensionVersion GetFileVersion(SourcePath + "..\..\Build\ShellExtension\ShellExtensionU.dll")\r
\r
[Setup]\r
AppName=WinMerge\r
AppVersion={#AppVersion}\r
AppVerName=WinMerge {#AppVersion}\r
AppPublisher=Thingamahoochie Software\r
-AppPublisherURL=http://WinMerge.org/\r
-AppSupportURL=http://WinMerge.org/\r
-AppUpdatesURL=http://WinMerge.org/\r
+AppPublisherURL=https://WinMerge.org/\r
+AppSupportURL=https://WinMerge.org/\r
+AppUpdatesURL=https://WinMerge.org/\r
\r
; Installer executable's version resource info\r
-VersionInfoCompany=http://winmerge.org\r
+VersionInfoCompany=https://winmerge.org\r
VersionInfoDescription=WinMerge Installer\r
VersionInfoVersion={#AppVersion}\r
\r
;Windows 2000 or later required\r
MinVersion=0,5.0\r
\r
-UninstallDisplayIcon={app}\{code:ExeName}\r
+UninstallDisplayIcon={app}\WinMergeU.exe\r
\r
;Artwork References\r
WizardImageFile=Art\Large Logo.bmp\r
\r
[Languages]\r
;Inno Setup's Native Language\r
-Name: English; MessagesFile: ..\..\Translations\InnoSetup\English.isl\r
+Name: English; MessagesFile: compiler:Default.isl,..\..\Translations\InnoSetup\English.isl\r
\r
;Localizations:\r
-Name: Basque; MessagesFile: ..\..\Translations\InnoSetup\Basque.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Basque.txt\r
-Name: Bulgarian; MessagesFile: ..\..\Translations\InnoSetup\Bulgarian.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Bulgarian.txt\r
-Name: Catalan; MessagesFile: ..\..\Translations\InnoSetup\Catalan.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Catalan.txt\r
-Name: Chinese_Simplified; MessagesFile: ..\..\Translations\InnoSetup\Chinese_Simplified.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-ChineseSimplified.txt\r
-Name: Chinese_Traditional; MessagesFile: ..\..\Translations\InnoSetup\Chinese_Traditional.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-ChineseTraditional.txt\r
-Name: Croatian; MessagesFile: ..\..\Translations\InnoSetup\Croatian.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Croatian.txt\r
-Name: Czech; MessagesFile: ..\..\Translations\InnoSetup\Czech.isl\r
-Name: Danish; MessagesFile: ..\..\Translations\InnoSetup\Danish.isl\r
-Name: Dutch; MessagesFile: ..\..\Translations\InnoSetup\Dutch.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Dutch.txt\r
-Name: Finnish; MessagesFile: ..\..\Translations\InnoSetup\Finnish.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Finnish.txt\r
-Name: French; MessagesFile: ..\..\Translations\InnoSetup\French.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-French.txt\r
-Name: Galician; MessagesFile: ..\..\Translations\InnoSetup\Galician.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Galician.txt\r
-Name: German; MessagesFile: ..\..\Translations\InnoSetup\German.isl\r
-Name: Greek; MessagesFile: ..\..\Translations\InnoSetup\Greek.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Greek.txt\r
-Name: Hungarian; MessagesFile: ..\..\Translations\InnoSetup\Hungarian.isl\r
-Name: Italian; MessagesFile: ..\..\Translations\InnoSetup\Italian.isl\r
-Name: Japanese; MessagesFile: ..\..\Translations\InnoSetup\Japanese.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Japanese.txt\r
-Name: Korean; MessagesFile: ..\..\Translations\InnoSetup\Korean.isl\r
-Name: Norwegian; MessagesFile: ..\..\Translations\InnoSetup\Norwegian.isl\r
-Name: Persian; MessagesFile: ..\..\Translations\InnoSetup\Persian.isl\r
-Name: Polish; MessagesFile: ..\..\Translations\InnoSetup\Polish.isl\r
-Name: Portuguese; MessagesFile: ..\..\Translations\InnoSetup\Portuguese.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Portuguese.txt\r
-Name: PortugueseBrazilian; MessagesFile: ..\..\Translations\InnoSetup\Brazilian_Portuguese.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Brazilian.txt\r
-Name: Romanian; MessagesFile: ..\..\Translations\InnoSetup\Romanian.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Romanian.txt\r
-Name: Russian; MessagesFile: ..\..\Translations\InnoSetup\Russian.isl\r
-Name: Serbian; MessagesFile: ..\..\Translations\InnoSetup\Serbian.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Serbian.txt\r
-Name: Sinhala; MessagesFile: ..\..\Translations\InnoSetup\Sinhala.isl\r
-Name: Slovak; MessagesFile: ..\..\Translations\InnoSetup\Slovak.isl\r
-Name: Slovenian; MessagesFile: ..\..\Translations\InnoSetup\Slovenian.isl\r
-Name: Spanish; MessagesFile: ..\..\Translations\InnoSetup\Spanish.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Spanish.txt\r
-Name: Swedish; MessagesFile: ..\..\Translations\InnoSetup\Swedish.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Swedish.txt\r
-Name: Turkish; MessagesFile: ..\..\Translations\InnoSetup\Turkish.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Turkish.txt\r
-Name: Ukrainian; MessagesFile: ..\..\Translations\InnoSetup\Ukrainian.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Ukrainian.txt\r
+Name: Arabic; MessagesFile: ..\..\Translations\InnoSetup\Unbundled.is5\Arabic.isl,..\..\Translations\InnoSetup\Arabic.isl\r
+Name: Basque; MessagesFile: ..\..\Translations\InnoSetup\Unbundled.is5\Basque.isl,..\..\Translations\InnoSetup\Basque.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Basque.txt\r
+Name: Bulgarian; MessagesFile: ..\..\Translations\InnoSetup\Unbundled.is5\Bulgarian.isl,..\..\Translations\InnoSetup\Bulgarian.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Bulgarian.txt\r
+Name: Catalan; MessagesFile: compiler:Languages\Catalan.isl,..\..\Translations\InnoSetup\Catalan.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Catalan.txt\r
+Name: Chinese_Simplified; MessagesFile: ..\..\Translations\InnoSetup\Unbundled.is5\ChineseSimplified.isl,..\..\Translations\InnoSetup\Chinese_Simplified.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-ChineseSimplified.txt\r
+Name: Chinese_Traditional; MessagesFile: ..\..\Translations\InnoSetup\Unbundled.is5\ChineseTraditional.isl,..\..\Translations\InnoSetup\Chinese_Traditional.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-ChineseTraditional.txt\r
+Name: Croatian; MessagesFile: ..\..\Translations\InnoSetup\Unbundled.is5\Croatian.isl,..\..\Translations\InnoSetup\Croatian.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Croatian.txt\r
+Name: Czech; MessagesFile: compiler:Languages\Czech.isl,..\..\Translations\InnoSetup\Czech.isl\r
+Name: Danish; MessagesFile: compiler:Languages\Danish.isl,..\..\Translations\InnoSetup\Danish.isl\r
+Name: Dutch; MessagesFile: compiler:Languages\Dutch.isl,..\..\Translations\InnoSetup\Dutch.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Dutch.txt\r
+Name: Finnish; MessagesFile: compiler:Languages\Finnish.isl,..\..\Translations\InnoSetup\Finnish.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Finnish.txt\r
+Name: French; MessagesFile: compiler:Languages\French.isl,..\..\Translations\InnoSetup\French.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-French.txt\r
+Name: Galician; MessagesFile: ..\..\Translations\InnoSetup\Unbundled.is5\Galician.isl,..\..\Translations\InnoSetup\Galician.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Galician.txt\r
+Name: German; MessagesFile: compiler:Languages\German.isl,..\..\Translations\InnoSetup\German.isl;InfoAfterFile:..\..\Translations\Docs\Readme\ReadMe-German.txt\r
+Name: Greek; MessagesFile: compiler:Languages\Greek.isl,..\..\Translations\InnoSetup\Greek.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Greek.txt\r
+Name: Hungarian; MessagesFile: compiler:Languages\Hungarian.isl,..\..\Translations\InnoSetup\Hungarian.isl\r
+Name: Italian; MessagesFile: compiler:Languages\Italian.isl,..\..\Translations\InnoSetup\Italian.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Italian.txt\r
+Name: Japanese; MessagesFile: compiler:Languages\Japanese.isl,..\..\Translations\InnoSetup\Japanese.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Japanese.txt\r
+Name: Korean; MessagesFile: ..\..\Translations\InnoSetup\Unbundled.is5\Korean.isl,..\..\Translations\InnoSetup\Korean.isl\r
+Name: Lithuanian; MessagesFile: ..\..\Translations\InnoSetup\Unbundled.is5\Lithuanian.isl,..\..\Translations\InnoSetup\Lithuanian.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Lithuanian.txt\r
+Name: Norwegian; MessagesFile: compiler:Languages\Norwegian.isl,..\..\Translations\InnoSetup\Norwegian.isl\r
+Name: Persian; MessagesFile: ..\..\Translations\InnoSetup\Unbundled.is5\Farsi.isl,..\..\Translations\InnoSetup\Persian.isl\r
+Name: Polish; MessagesFile: compiler:Languages\Polish.isl,..\..\Translations\InnoSetup\Polish.isl\r
+Name: Portuguese; MessagesFile: compiler:Languages\Portuguese.isl,..\..\Translations\InnoSetup\Portuguese.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Portuguese.txt\r
+Name: PortugueseBrazilian; MessagesFile: compiler:Languages\BrazilianPortuguese.isl,..\..\Translations\InnoSetup\Brazilian.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Brazilian.txt\r
+Name: Romanian; MessagesFile: ..\..\Translations\InnoSetup\Unbundled.is5\Romanian.isl,..\..\Translations\InnoSetup\Romanian.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Romanian.txt\r
+Name: Russian; MessagesFile: compiler:Languages\Russian.isl,..\..\Translations\InnoSetup\Russian.isl\r
+Name: Serbian; MessagesFile: compiler:Languages\SerbianCyrillic.isl,..\..\Translations\InnoSetup\Serbian.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Serbian.txt\r
+Name: Sinhala; MessagesFile: ..\..\Translations\InnoSetup\Unbundled.is5\Sinhala.islu,..\..\Translations\InnoSetup\Sinhala.islu\r
+Name: Slovak; MessagesFile: ..\..\Translations\InnoSetup\Unbundled.is5\Slovak.isl,..\..\Translations\InnoSetup\Slovak.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Slovak.txt\r
+Name: Slovenian; MessagesFile: compiler:Languages\Slovenian.isl,..\..\Translations\InnoSetup\Slovenian.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Slovenian.txt\r
+Name: Spanish; MessagesFile: compiler:Languages\Spanish.isl,..\..\Translations\InnoSetup\Spanish.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Spanish.txt\r
+Name: Swedish; MessagesFile: ..\..\Translations\InnoSetup\Unbundled.is5\Swedish.isl,..\..\Translations\InnoSetup\Swedish.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Swedish.txt\r
+Name: Turkish; MessagesFile: compiler:Languages\Turkish.isl,..\..\Translations\InnoSetup\Turkish.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Turkish.txt\r
+Name: Ukrainian; MessagesFile: compiler:Languages\Ukrainian.isl,..\..\Translations\InnoSetup\Ukrainian.isl; InfoAfterFile: ..\..\Translations\Docs\Readme\ReadMe-Ukrainian.txt\r
\r
\r
[Messages]\r
\r
;Language components\r
Name: Languages; Description: {cm:Languages}; Flags: disablenouninstallwarning\r
+Name: Languages\Arabic; Description: {cm:ArabicLanguage}; Flags: disablenouninstallwarning; Types: full; Languages: not Arabic\r
+Name: Languages\Arabic; Description: {cm:ArabicLanguage}; Flags: disablenouninstallwarning; Types: full typical compact; Languages: Arabic\r
+\r
Name: Languages\Basque; Description: {cm:BasqueLanguage}; Flags: disablenouninstallwarning; Types: full; Languages: not Basque\r
Name: Languages\Basque; Description: {cm:BasqueLanguage}; Flags: disablenouninstallwarning; Types: full typical compact; Languages: Basque\r
\r
Name: Languages\Korean; Description: {cm:KoreanLanguage}; Flags: disablenouninstallwarning; Types: full; Languages: not Korean\r
Name: Languages\Korean; Description: {cm:KoreanLanguage}; Flags: disablenouninstallwarning; Types: full typical compact; Languages: Korean\r
\r
+Name: Languages\Lithuanian; Description: {cm:LithuanianLanguage}; Flags: disablenouninstallwarning; Types: full; Languages: not Lithuanian\r
+Name: Languages\Lithuanian; Description: {cm:LithuanianLanguage}; Flags: disablenouninstallwarning; Types: full typical compact; Languages: Lithuanian\r
+\r
Name: Languages\Norwegian; Description: {cm:NorwegianLanguage}; Flags: disablenouninstallwarning; Types: full; Languages: not Norwegian\r
Name: Languages\Norwegian; Description: {cm:NorwegianLanguage}; Flags: disablenouninstallwarning; Types: full typical compact; Languages: Norwegian\r
\r
Name: TortoiseCVS; Description: {cm:IntegrateTortoiseCVS}; GroupDescription: {cm:OptionalFeatures}; Check: TortoiseCVSInstalled\r
Name: TortoiseGit; Description: {cm:IntegrateTortoiseGit}; GroupDescription: {cm:OptionalFeatures}; Check: TortoiseGitInstalled; MinVersion: 0,5.0.2195sp3\r
Name: TortoiseSVN; Description: {cm:IntegrateTortoiseSVN}; GroupDescription: {cm:OptionalFeatures}; Check: TortoiseSVNInstalled; MinVersion: 0,5.0.2195sp3\r
-Name: ClearCase; Description: {cm:IntegrateClearCase}; GroupDescription: {cm:OptionalFeatures}; Check: ClearCaseInstalled\r
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked\r
Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; OnlyBelowVersion: 0,6.1\r
\r
\r
;Removes the user's guide icon if the user deselects the user's guide component.\r
Name: {group}\{cm:UsersGuide}.lnk; Type: files; Check: not IsComponentSelected('Docs')\r
+Name: {group}\{cm:ReadMe}.lnk; Type: files\r
\r
;This removes the quick launch icon in case the user chooses not to install it after previously having it installed\r
Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\WinMerge.lnk; Type: files; Check: not IsTaskSelected('QuickLauchIcon')\r
\r
;Removes the Uninstall icon from the start menu...\r
Name: {group}\{cm:UninstallProgram,WinMerge}.lnk; Type: files;\r
+Name: {group}\{cm:UninstallProgram,WinMerge}; Type: files;\r
\r
;Remove ANSI executable link from start menu for NT-based Windows versions\r
;This was installed earlier, but not anymore.\r
Name: {group}\WinMerge (ANSI).lnk; Type: files; MinVersion: 0,4\r
+\r
Name: {app}\Docs; Type: filesandordirs\r
\r
Name: {app}\MergePlugins\editor addin.sct; Type: Files; Check: not IsComponentSelected('Plugins')\r
Name: {app}\Filters\FileFilter.tmpl; Type: Files; Check: not IsComponentSelected('Filters')\r
Name: {app}\Filters; Type: DirIfEmpty; Check: not IsComponentSelected('Filters')\r
\r
+;Remove old "List of installed files"...\r
+Name: {app}\Files.txt; Type: files\r
\r
\r
[Dirs]\r
\r
[Files]\r
; WinMerge itself\r
-Source: ..\..\Build\MergeUnicodeRelease\WinMergeU.exe; DestDir: {app}; Flags: promptifolder; Components: Core\r
-\r
-; List of installed files\r
-Source: ..\..\Docs\Users\Files.txt; DestDir: {app}; Flags: promptifolder; Components: Core\r
+Source: ..\..\Build\Release\WinMergeU.exe; DestDir: {app}; Flags: promptifolder; Components: Core\r
+; Visual Elements\r
+Source: ..\..\Build\Release\WinMergeU.VisualElementsManifest.xml; DestDir: {app}; Flags: promptifolder; Components: Core\r
+Source: ..\..\Build\Release\LogoImages\*.png; DestDir: {app}\LogoImages; Flags: promptifolder; Components: Core\r
\r
; Shell extension\r
-Source: ..\..\Build\ShellExtension\ShellExtensionU.dll; DestDir: {app}; Flags: regserver uninsrestartdelete restartreplace promptifolder; MinVersion: 0, 4; Check: not IsWin64\r
+Source: ..\..\Build\ShellExtension\ShellExtensionU.dll; DestDir: {app}; Flags: regserver uninsrestartdelete restartreplace promptifolder; MinVersion: 0, 4; Check: not IsWin64 and not AreSourceAndDestinationOfShellExtensionSame(ExpandConstant('{app}\ShellExtensionU.dll'))\r
; 64-bit version of ShellExtension\r
-Source: ..\..\Build\ShellExtension\ShellExtensionX64.dll; DestDir: {app}; Flags: regserver uninsrestartdelete restartreplace promptifolder 64bit; MinVersion: 0,5.01.2600; Check: IsWin64\r
+Source: ..\..\Build\ShellExtension\ShellExtensionX64.dll; DestDir: {app}; Flags: regserver uninsrestartdelete restartreplace promptifolder 64bit; MinVersion: 0,5.01.2600; Check: IsWin64 and not AreSourceAndDestinationOfShellExtensionSame(ExpandConstant('{app}\ShellExtensionX64.dll'))\r
\r
+; ArchiveSupport\r
;Please do not reorder the 7z Dlls by version they compress better ordered by platform and then by version\r
-Source: ..\..\Build\Merge7z\Merge7z1805U.dll; DestDir: {app}\Merge7z; Flags: promptifolder; MinVersion: 0, 4; Components: ArchiveSupport\r
+Source: ..\..\Build\Merge7z\Merge7z.dll; DestDir: {app}\Merge7z; Flags: promptifolder; MinVersion: 0, 4; Components: ArchiveSupport\r
Source: ..\..\Build\Merge7z\7z.dll; DestDir: {app}\Merge7z; Flags: promptifolder; MinVersion: 0, 4; Components: ArchiveSupport\r
Source: ..\..\Build\Merge7z\*.txt; DestDir: {app}\Merge7z; Flags: promptifolder; MinVersion: 0, 4; Components: ArchiveSupport\r
Source: ..\..\Build\Merge7z\Lang\*.txt; DestDir: {app}\Merge7z\Lang; Flags: promptifolder; MinVersion: 0, 4; Components: ArchiveSupport\r
\r
-; MergeLang.dll - translation helper dll\r
-Source: ..\..\Build\MergeUnicodeRelease\MergeLang.dll; DestDir: {app}; Flags: promptifolder ignoreversion; Components: Core\r
-\r
; Language files\r
+Source: ..\..\Translations\WinMerge\Arabic.po; DestDir: {app}\Languages; Components: Languages\Arabic; Flags: ignoreversion comparetimestamp\r
Source: ..\..\Translations\WinMerge\Basque.po; DestDir: {app}\Languages; Components: Languages\Basque; Flags: ignoreversion comparetimestamp\r
Source: ..\..\Translations\Docs\Readme\ReadMe-Basque.txt; DestDir: {app}\Docs; Components: Languages\Basque\r
Source: ..\..\Translations\WinMerge\Brazilian.po; DestDir: {app}\Languages; Components: Languages\PortugueseBrazilian; Flags: ignoreversion comparetimestamp\r
Source: ..\..\Translations\WinMerge\Galician.po; DestDir: {app}\Languages; Components: Languages\Galician; Flags: ignoreversion comparetimestamp\r
Source: ..\..\Translations\Docs\Readme\ReadMe-Galician.txt; DestDir: {app}\Docs; Components: Languages\Galician\r
Source: ..\..\Translations\WinMerge\German.po; DestDir: {app}\Languages; Components: Languages\German; Flags: ignoreversion comparetimestamp\r
+Source: ..\..\Translations\Docs\Readme\ReadMe-German.txt; DestDir: {app}\Docs; Components: Languages\German\r
Source: ..\..\Translations\WinMerge\Greek.po; DestDir: {app}\Languages; Components: Languages\Greek; Flags: ignoreversion comparetimestamp\r
Source: ..\..\Translations\Docs\Readme\ReadMe-Greek.txt; DestDir: {app}\Docs; Components: Languages\Greek\r
Source: ..\..\Translations\WinMerge\Hungarian.po; DestDir: {app}\Languages; Components: Languages\Hungarian; Flags: ignoreversion comparetimestamp\r
Source: ..\..\Translations\WinMerge\Italian.po; DestDir: {app}\Languages; Components: Languages\Italian; Flags: ignoreversion comparetimestamp\r
+Source: ..\..\Translations\Docs\Readme\ReadMe-Italian.txt; DestDir: {app}\Docs; Components: Languages\Italian\r
Source: ..\..\Translations\WinMerge\Japanese.po; DestDir: {app}\Languages; Components: Languages\Japanese; Flags: ignoreversion comparetimestamp\r
Source: ..\..\Translations\Docs\Readme\ReadMe-Japanese.txt; DestDir: {app}\Docs; Components: Languages\Japanese\r
+Source: ..\..\Build\Manual\htmlhelp\WinMergeJapanese.chm; DestDir: {app}\Docs; Components: Languages\Japanese\r
Source: ..\..\Translations\WinMerge\Korean.po; DestDir: {app}\Languages; Components: Languages\Korean; Flags: ignoreversion comparetimestamp\r
+Source: ..\..\Translations\WinMerge\Lithuanian.po; DestDir: {app}\Languages; Components: Languages\Lithuanian; Flags: ignoreversion comparetimestamp\r
+Source: ..\..\Translations\Docs\Readme\ReadMe-Lithuanian.txt; DestDir: {app}\Docs; Components: Languages\Lithuanian\r
Source: ..\..\Translations\WinMerge\Norwegian.po; DestDir: {app}\Languages; Components: Languages\Norwegian; Flags: ignoreversion comparetimestamp\r
Source: ..\..\Translations\WinMerge\Persian.po; DestDir: {app}\Languages; Components: Languages\Persian; Flags: ignoreversion comparetimestamp\r
Source: ..\..\Translations\WinMerge\Polish.po; DestDir: {app}\Languages; Components: Languages\Polish; Flags: ignoreversion comparetimestamp\r
Source: ..\..\Translations\Docs\Readme\ReadMe-Serbian.txt; DestDir: {app}\Docs; Components: Languages\Serbian\r
Source: ..\..\Translations\WinMerge\Sinhala.po; DestDir: {app}\Languages; Components: Languages\Sinhala; Flags: ignoreversion comparetimestamp\r
Source: ..\..\Translations\WinMerge\Slovak.po; DestDir: {app}\Languages; Components: Languages\Slovak; Flags: ignoreversion comparetimestamp\r
+Source: ..\..\Translations\Docs\Readme\ReadMe-Slovak.txt; DestDir: {app}\Docs; Components: Languages\Slovak\r
Source: ..\..\Translations\WinMerge\Slovenian.po; DestDir: {app}\Languages; Components: Languages\Slovenian; Flags: ignoreversion comparetimestamp\r
+Source: ..\..\Translations\Docs\Readme\ReadMe-Slovenian.txt; DestDir: {app}\Docs; Components: Languages\Slovenian\r
Source: ..\..\Translations\WinMerge\Spanish.po; DestDir: {app}\Languages; Components: Languages\Spanish; Flags: ignoreversion comparetimestamp\r
Source: ..\..\Translations\Docs\Readme\ReadMe-Spanish.txt; DestDir: {app}\Docs; Components: Languages\Spanish\r
Source: ..\..\Translations\WinMerge\Swedish.po; DestDir: {app}\Languages; Components: Languages\Swedish; Flags: ignoreversion comparetimestamp\r
Source: ..\..\Translations\WinMerge\Ukrainian.po; DestDir: {app}\Languages; Components: Languages\Ukrainian; Flags: ignoreversion comparetimestamp\r
Source: ..\..\Translations\Docs\Readme\ReadMe-Ukrainian.txt; DestDir: {app}\Docs; Components: Languages\Ukrainian\r
\r
+;Filters\r
Source: ..\..\Filters\*.flt; DestDir: {app}\Filters; Flags: sortfilesbyextension comparetimestamp ignoreversion; Components: filters\r
Source: ..\..\Filters\FileFilter.tmpl; DestDir: {app}\Filters; Flags: sortfilesbyextension comparetimestamp ignoreversion; Components: filters\r
\r
+;ColorSchemes\r
+Source: ..\..\ColorSchemes\*.ini; DestDir: {app}\ColorSchemes; Flags: sortfilesbyextension comparetimestamp ignoreversion\r
+\r
;Documentation\r
Source: ..\..\Docs\Users\ReadMe.txt; DestDir: {app}\Docs; Flags: comparetimestamp ignoreversion promptifolder; Components: Core\r
Source: ..\..\Docs\Users\Contributors.txt; DestDir: {app}; Flags: comparetimestamp ignoreversion promptifolder; Components: Core\r
Source: ..\..\Docs\Users\ReleaseNotes.html; DestDir: {app}\Docs; Flags: comparetimestamp ignoreversion promptifolder; Components: Core\r
-Source: ..\..\Docs\Users\ChangeLog.txt; DestDir: {app}\Docs; Flags: comparetimestamp ignoreversion promptifolder; Components: Core\r
+Source: ..\..\Docs\Users\ChangeLog.html; DestDir: {app}\Docs; Flags: comparetimestamp ignoreversion promptifolder; Components: Core\r
Source: ..\..\Build\Manual\htmlhelp\WinMerge.chm; DestDir: {app}\Docs\; Flags: overwritereadonly uninsremovereadonly; Components: Core\r
Source: ..\..\Docs\users\GPL.rtf; DestDir: {app}\Docs\; Flags: comparetimestamp ignoreversion promptifolder; Components: Core\r
\r
Source: ..\..\Plugins\dlls\CompareMSExcelFiles.sct; DestDir: {app}\MergePlugins; Flags: IgnoreVersion CompareTimeStamp; Components: Plugins\r
Source: ..\..\Plugins\dlls\CompareMSWordFiles.sct; DestDir: {app}\MergePlugins; Flags: IgnoreVersion CompareTimeStamp; Components: Plugins\r
Source: ..\..\Plugins\dlls\CompareMSPowerPointFiles.sct; DestDir: {app}\MergePlugins; Flags: IgnoreVersion CompareTimeStamp; Components: Plugins\r
+Source: ..\..\Plugins\dlls\CompareMSVisioFiles.sct; DestDir: {app}\MergePlugins; Flags: IgnoreVersion CompareTimeStamp; Components: Plugins\r
Source: ..\..\Plugins\dlls\ApplyPatch.sct; DestDir: {app}\MergePlugins; Flags: IgnoreVersion CompareTimeStamp; Components: Plugins\r
Source: ..\..\Plugins\dlls\PrediffLineFilter.sct; DestDir: {app}\MergePlugins; Flags: IgnoreVersion CompareTimeStamp; Components: Plugins\r
Source: ..\..\Plugins\dlls\IgnoreColumns.dll; DestDir: {app}\MergePlugins; Flags: ignoreversion replacesameversion; Components: Plugins\r
Source: ..\..\Build\Frhed\Languages\fr.po; DestDir: {app}\Frhed\Languages; Components: Frhed\r
Source: ..\..\Build\Frhed\Languages\ja.po; DestDir: {app}\Frhed\Languages; Components: Frhed\r
Source: ..\..\Build\Frhed\Languages\nl.po; DestDir: {app}\Frhed\Languages; Components: Frhed\r
+Source: ..\..\Build\Frhed\Languages\sl.po; DestDir: {app}\Frhed\Languages; Components: Frhed\r
Source: ..\..\Build\Frhed\Languages\heksedit.lng; DestDir: {app}\Frhed\Languages; Components: Frhed\r
\r
;WinIMerge\r
\r
[Icons]\r
;Start Menu Icons\r
-Name: {group}\WinMerge; Filename: {app}\{code:ExeName}; AppUserModelID: "Thingamahoochie.WinMerge"\r
-Name: {group}\{cm:ReadMe}; Filename: {app}\Docs\ReadMe.txt; IconFileName: {win}\NOTEPAD.EXE\r
+Name: {group}\WinMerge; Filename: {app}\WinMergeU.exe; AppUserModelID: "Thingamahoochie.WinMerge"\r
Name: {group}\{cm:UsersGuide}; Filename: {app}\Docs\WinMerge.chm\r
-Name: {group}\{cm:UninstallProgram,WinMerge}; Filename: {uninstallexe}\r
-Name: {group}\{cm:ProgramOnTheWeb,WinMerge}; Filename: http://winmerge.org\r
-\r
-;Link to translated ReadMe in Start Menu\r
-Name: {group}\{cm:ReadMe}; Filename: {app}\Docs\ReadMe-Basque.txt; IconFileName: {win}\NOTEPAD.EXE; Languages: Basque\r
-Name: {group}\{cm:ReadMe}; Filename: {app}\Docs\ReadMe-Brazilian.txt; IconFileName: {win}\NOTEPAD.EXE; Languages: PortugueseBrazilian\r
-Name: {group}\{cm:ReadMe}; Filename: {app}\Docs\ReadMe-Bulgarian.txt; IconFileName: {win}\NOTEPAD.EXE; Languages: Bulgarian\r
-Name: {group}\{cm:ReadMe}; Filename: {app}\Docs\ReadMe-Catalan.txt; IconFileName: {win}\NOTEPAD.EXE; Languages: Catalan\r
-Name: {group}\{cm:ReadMe}; Filename: {app}\Docs\ReadMe-ChineseSimplified.txt; IconFileName: {win}\NOTEPAD.EXE; Languages: Chinese_Simplified\r
-Name: {group}\{cm:ReadMe}; Filename: {app}\Docs\ReadMe-ChineseTraditional.txt; IconFileName: {win}\NOTEPAD.EXE; Languages: Chinese_Traditional\r
-Name: {group}\{cm:ReadMe}; Filename: {app}\Docs\ReadMe-Croatian.txt; IconFileName: {win}\NOTEPAD.EXE; Languages: Croatian\r
-Name: {group}\{cm:ReadMe}; Filename: {app}\Docs\ReadMe-Dutch.txt; IconFileName: {win}\NOTEPAD.EXE; Languages: Dutch\r
-Name: {group}\{cm:ReadMe}; Filename: {app}\Docs\ReadMe-Finnish.txt; IconFileName: {win}\NOTEPAD.EXE; Languages: Finnish\r
-Name: {group}\{cm:ReadMe}; Filename: {app}\Docs\ReadMe-French.txt; IconFileName: {win}\NOTEPAD.EXE; Languages: French\r
-Name: {group}\{cm:ReadMe}; Filename: {app}\Docs\ReadMe-Galician.txt; IconFileName: {win}\NOTEPAD.EXE; Languages: Galician\r
-Name: {group}\{cm:ReadMe}; Filename: {app}\Docs\ReadMe-Greek.txt; IconFileName: {win}\NOTEPAD.EXE; Languages: Greek\r
-Name: {group}\{cm:ReadMe}; Filename: {app}\Docs\ReadMe-Japanese.txt; IconFileName: {win}\NOTEPAD.EXE; Languages: Japanese\r
-Name: {group}\{cm:ReadMe}; Filename: {app}\Docs\ReadMe-Portuguese.txt; IconFileName: {win}\NOTEPAD.EXE; Languages: Portuguese\r
-Name: {group}\{cm:ReadMe}; Filename: {app}\Docs\ReadMe-Romanian.txt; IconFileName: {win}\NOTEPAD.EXE; Languages: Romanian\r
-Name: {group}\{cm:ReadMe}; Filename: {app}\Docs\ReadMe-Serbian.txt; IconFileName: {win}\NOTEPAD.EXE; Languages: Serbian\r
-Name: {group}\{cm:ReadMe}; Filename: {app}\Docs\ReadMe-Spanish.txt; IconFileName: {win}\NOTEPAD.EXE; Languages: Spanish\r
-Name: {group}\{cm:ReadMe}; Filename: {app}\Docs\ReadMe-Swedish.txt; IconFileName: {win}\NOTEPAD.EXE; Languages: Swedish\r
-Name: {group}\{cm:ReadMe}; Filename: {app}\Docs\ReadMe-Turkish.txt; IconFileName: {win}\NOTEPAD.EXE; Languages: Turkish\r
-Name: {group}\{cm:ReadMe}; Filename: {app}\Docs\ReadMe-Ukrainian.txt; IconFileName: {win}\NOTEPAD.EXE; Languages: Ukrainian\r
\r
;Desktop Icon\r
-Name: {commondesktop}\WinMerge; Filename: {app}\{code:ExeName}; Tasks: desktopicon\r
+Name: {commondesktop}\WinMerge; Filename: {app}\WinMergeU.exe; Tasks: desktopicon\r
\r
;Quick Launch Icon\r
-Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\WinMerge; Filename: {app}\{code:ExeName}; Tasks: quicklaunchicon\r
+Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\WinMerge; Filename: {app}\WinMergeU.exe; Tasks: quicklaunchicon\r
\r
[Registry]\r
Root: HKCU; Subkey: Software\Thingamahoochie; Flags: uninsdeletekeyifempty\r
;set Notepad to edit project files\r
Root: HKCR; Subkey: .WinMerge; ValueType: String; ValueData: WinMerge.Project.File; Flags: uninsdeletekey\r
Root: HKCR; Subkey: WinMerge.Project.File; ValueType: String; ValueData: {cm:ProjectFileDesc}; Flags: uninsdeletekey\r
-Root: HKCR; Subkey: WinMerge.Project.File\shell\open\command; ValueType: String; ValueData: """{app}\{code:ExeName}"" ""%1"""; Flags: uninsdeletekey\r
+Root: HKCR; Subkey: WinMerge.Project.File\shell\open\command; ValueType: String; ValueData: """{app}\WinMergeU.exe"" ""%1"""; Flags: uninsdeletekey\r
Root: HKCR; Subkey: WinMerge.Project.File\shell\edit\command; ValueType: String; ValueData: """NOTEPAD.EXE"" ""%1"""; Flags: uninsdeletekey\r
-Root: HKCR; Subkey: WinMerge.Project.File\DefaultIcon; ValueType: String; ValueData: """{app}\{code:ExeName}"",1"; Flags: uninsdeletekey\r
+Root: HKCR; Subkey: WinMerge.Project.File\DefaultIcon; ValueType: String; ValueData: """{app}\WinMergeU.exe"",1"; Flags: uninsdeletekey\r
\r
; delete obsolete values\r
;In Inno Setup Version 4.18 ValueData couldn't be null and compile,\r
;Adds "Start Menu" --> "Run" Support for WinMerge\r
Root: HKLM; Subkey: Software\Microsoft\Windows\CurrentVersion\App Paths\WinMerge.exe; ValueType: none; Flags: uninsdeletekey\r
Root: HKLM; Subkey: Software\Microsoft\Windows\CurrentVersion\App Paths\WinMergeU.exe; ValueType: none; Flags: uninsdeletekey\r
-Root: HKLM; SubKey: SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinMerge.exe; ValueType: string; ValueName: ; ValueData: {app}\{code:ExeName}\r
-Root: HKLM; SubKey: SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinMergeU.exe; ValueType: string; ValueName: ; ValueData: {app}\{code:ExeName}\r
+Root: HKLM; SubKey: SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinMerge.exe; ValueType: string; ValueName: ; ValueData: {app}\WinMergeU.exe\r
+Root: HKLM; SubKey: SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinMergeU.exe; ValueType: string; ValueName: ; ValueData: {app}\WinMergeU.exe\r
\r
;Registry Keys for use by ShellExtension.dll\r
-Root: HKLM; SubKey: Software\Thingamahoochie\WinMerge; ValueType: string; ValueName: Executable; ValueData: {app}\{code:ExeName}\r
+Root: HKLM; SubKey: Software\Thingamahoochie\WinMerge; ValueType: string; ValueName: Executable; ValueData: {app}\WinMergeU.exe\r
+Root: HKCU; SubKey: Software\Thingamahoochie\WinMerge; ValueType: string; ValueName: Executable; ValueData: {app}\WinMergeU.exe\r
\r
;Enables or disables the Context Menu preference based on what the user selects during install\r
;Initially the Context menu is explicitly disabled:\r
Root: HKCU; SubKey: Software\Thingamahoochie\WinMerge; ValueType: dword; ValueName: ContextMenuEnabled; ValueData: {code:ShellMenuEnabled}\r
\r
;If WinMerge.exe is installed then we'll automatically configure WinMerge as the differencing application\r
-Root: HKCU; SubKey: Software\TortoiseCVS; ValueType: string; ValueName: External Diff Application; ValueData: {app}\{code:ExeName}; Flags: uninsdeletevalue; Tasks: TortoiseCVS\r
+Root: HKCU; SubKey: Software\TortoiseCVS; ValueType: string; ValueName: External Diff Application; ValueData: {app}\WinMergeU.exe; Flags: uninsdeletevalue; Tasks: TortoiseCVS\r
Root: HKCU; SubKey: Software\TortoiseCVS; ValueType: dword; ValueName: DiffAsUnicode; ValueData: $00000001; Flags: uninsdeletevalue; Tasks: TortoiseCVS\r
-Root: HKCU; SubKey: Software\TortoiseCVS\Prefs\External Diff Application; ValueType: string; ValueName: _; ValueData: {app}\{code:ExeName}; Flags: uninsdeletevalue dontcreatekey; Tasks: TortoiseCVS\r
+Root: HKCU; SubKey: Software\TortoiseCVS\Prefs\External Diff Application; ValueType: string; ValueName: _; ValueData: {app}\WinMergeU.exe; Flags: uninsdeletevalue dontcreatekey; Tasks: TortoiseCVS\r
Root: HKCU; SubKey: Software\TortoiseCVS\Prefs\External Diff2 Params; ValueType: string; ValueName: _; ValueData: """%1"" ""%2"""; Flags: uninsdeletevalue dontcreatekey; Tasks: TortoiseCVS\r
\r
;Tells TortoiseCVS to use WinMerge as its differencing application (this happens whether or not Tortoise is current installed, that way\r
;if it is installed at a later date this will automatically support it)\r
-Root: HKCU; SubKey: Software\TortoiseCVS; ValueType: string; ValueName: External Merge Application; ValueData: {app}\{code:ExeName}; Flags: uninsdeletevalue; Tasks: TortoiseCVS\r
+Root: HKCU; SubKey: Software\TortoiseCVS; ValueType: string; ValueName: External Merge Application; ValueData: {app}\WinMergeU.exe; Flags: uninsdeletevalue; Tasks: TortoiseCVS\r
Root: HKCU; SubKey: Software\TortoiseCVS; ValueType: dword; ValueName: MergeAsUnicode; ValueData: $00000001; Flags: uninsdeletevalue; Tasks: TortoiseCVS\r
-Root: HKCU; SubKey: Software\TortoiseCVS\Prefs\External Merge Application; ValueType: string; ValueName: _; ValueData: {app}\{code:ExeName}; Flags: uninsdeletevalue dontcreatekey; Tasks: TortoiseCVS\r
+Root: HKCU; SubKey: Software\TortoiseCVS\Prefs\External Merge Application; ValueType: string; ValueName: _; ValueData: {app}\WinMergeU.exe; Flags: uninsdeletevalue dontcreatekey; Tasks: TortoiseCVS\r
Root: HKCU; SubKey: Software\TortoiseCVS\Prefs\External Merge2 Params; ValueType: string; ValueName: _; ValueData: """%mine"" ""%yours"""; Flags: uninsdeletevalue dontcreatekey; Tasks: TortoiseCVS\r
\r
;Set WinMerge as TortoiseGit diff tool\r
-Root: HKCU; SubKey: Software\TortoiseGit; ValueType: string; ValueName: Diff; ValueData: {app}\{code:ExeName} -e -ub -dl %bname -dr %yname %base %mine; Flags: uninsdeletevalue; Tasks: TortoiseGit\r
-Root: HKCU; SubKey: Software\TortoiseGit; ValueType: string; ValueName: Merge; ValueData: {code:TortoiseSVNGITMergeToolCommandLine}; Flags: uninsdeletevalue; Check: UseAs3WayMergeTool\r
+Root: HKCU; SubKey: Software\TortoiseGit; ValueType: string; ValueName: Diff; ValueData: {app}\WinMergeU.exe -e -ub -dl %bname -dr %yname %base %mine; Flags: uninsdeletevalue; Tasks: TortoiseGit\r
+Root: HKCU; SubKey: Software\TortoiseGit; ValueType: string; ValueName: Merge; ValueData: {code:TortoiseSVNGitMergeToolCommandLine}; Flags: uninsdeletevalue; Check: UseAs3WayMergeTool\r
\r
;Set WinMerge as TortoiseSVN diff tool\r
-Root: HKCU; SubKey: Software\TortoiseSVN; ValueType: string; ValueName: Diff; ValueData: {app}\{code:ExeName} -e -ub -dl %bname -dr %yname %base %mine; Flags: uninsdeletevalue; Tasks: TortoiseSVN\r
-Root: HKCU; SubKey: Software\TortoiseSVN; ValueType: string; ValueName: Merge; ValueData: {code:TortoiseSVNGITMergeToolCommandLine}; Flags: uninsdeletevalue; Check: UseAs3WayMergeTool\r
+Root: HKCU; SubKey: Software\TortoiseSVN; ValueType: string; ValueName: Diff; ValueData: {app}\WinMergeU.exe -e -ub -dl %bname -dr %yname %base %mine; Flags: uninsdeletevalue; Tasks: TortoiseSVN\r
+Root: HKCU; SubKey: Software\TortoiseSVN; ValueType: string; ValueName: Merge; ValueData: {code:TortoiseSVNGitMergeToolCommandLine}; Flags: uninsdeletevalue; Check: UseAs3WayMergeTool\r
\r
;Whatever the user chooses at the [Select Setup Language] dialog should also determine what language WinMerge will start up in\r
;(unless the user already has a startup language specified)\r
+Root: HKLM; SubKey: Software\Thingamahoochie\WinMerge\Locale; ValueType: dword; ValueName: LanguageId; ValueData: $00001401; Flags: deletevalue; Languages: Arabic\r
Root: HKLM; SubKey: Software\Thingamahoochie\WinMerge\Locale; ValueType: dword; ValueName: LanguageId; ValueData: $0000042d; Flags: deletevalue; Languages: Basque\r
Root: HKLM; SubKey: Software\Thingamahoochie\WinMerge\Locale; ValueType: dword; ValueName: LanguageId; ValueData: $00000402; Flags: deletevalue; Languages: Bulgarian\r
Root: HKLM; SubKey: Software\Thingamahoochie\WinMerge\Locale; ValueType: dword; ValueName: LanguageId; ValueData: $00000403; Flags: deletevalue; Languages: Catalan\r
Root: HKLM; SubKey: Software\Thingamahoochie\WinMerge\Locale; ValueType: dword; ValueName: LanguageId; ValueData: $00000410; Flags: deletevalue; Languages: Italian\r
Root: HKLM; SubKey: Software\Thingamahoochie\WinMerge\Locale; ValueType: dword; ValueName: LanguageId; ValueData: $00000411; Flags: deletevalue; Languages: Japanese\r
Root: HKLM; SubKey: Software\Thingamahoochie\WinMerge\Locale; ValueType: dword; ValueName: LanguageId; ValueData: $00000412; Flags: deletevalue; Languages: Korean\r
+Root: HKLM; SubKey: Software\Thingamahoochie\WinMerge\Locale; ValueType: dword; ValueName: LanguageId; ValueData: $00000427; Flags: deletevalue; Languages: Lithuanian \r
Root: HKLM; SubKey: Software\Thingamahoochie\WinMerge\Locale; ValueType: dword; ValueName: LanguageId; ValueData: $00000414; Flags: deletevalue; Languages: Norwegian\r
Root: HKLM; SubKey: Software\Thingamahoochie\WinMerge\Locale; ValueType: dword; ValueName: LanguageId; ValueData: $00000429; Flags: deletevalue; Languages: Persian\r
Root: HKLM; SubKey: Software\Thingamahoochie\WinMerge\Locale; ValueType: dword; ValueName: LanguageId; ValueData: $00000415; Flags: deletevalue; Languages: Polish\r
;This will no longer appear unless the user chose to make a start menu group in the first place\r
Filename: {win}\Explorer.exe; Description: {cm:ViewStartMenuFolder}; Parameters: """{group}"""; Flags: waituntilidle postinstall skipifsilent unchecked; Check: GroupCreated\r
\r
-Filename: {app}\{code:ExeName}; Description: {cm:LaunchProgram,WinMerge}; Flags: nowait postinstall skipifsilent runmaximized\r
+Filename: {app}\WinMergeU.exe; Description: {cm:LaunchProgram,WinMerge}; Flags: nowait postinstall skipifsilent runmaximized\r
\r
\r
[UninstallDelete]\r
End;\r
\r
\r
-{Returns the appropriate name of the .EXE being installed}\r
-Function ExeName(Unused: string): string;\r
-Begin\r
- Result := 'WinMergeU.exe';\r
-End;\r
-\r
-Function FixVersion(strInput: string): string;\r
-{Returns a version with four segments A.B.C.D}\r
-Var\r
- {Stores the number of periods found within the version string}\r
- intPeriods: integer;\r
-\r
- {Creates a counter}\r
- i: integer;\r
-\r
- {Generates the string to be returned to the user}\r
- strVersion: string;\r
-Begin\r
-\r
- {Creates a copy of the input string before we tear it apart}\r
- strVersion := strInput;\r
-\r
- {Until strInput is empty do..}\r
- While Length(strInput) > 0 do\r
- Begin\r
- {if the first character of the input string is a period then}\r
- If Copy(strInput, 1, 1) = '.' Then\r
-\r
- {Incriment the number of periods found}\r
- intPeriods := intPeriods + 1;\r
-\r
- {Remove the first character from the Input string}\r
- strInput := Copy(strINput, 2, length(strINput));\r
- End;\r
-\r
- {For every period shy of 3 do..}\r
- For i := 1 to 3 - intperiods do\r
-\r
- {Add a '.0' to the version string}\r
- strVersion := strVersion + '.0';\r
-\r
- {Returns the Version string with the correct number of segments}\r
- Result := strVersion;\r
-\r
-End;\r
-\r
-Function RemoveLeadingZeros(strInput: string): string;\r
-{Removes the leading zeros if any from a numeric string}\r
-Begin\r
-\r
- {While the first character of the string is a zero}\r
- While Copy(strInput, 1, 1) = '0' Do\r
- begin\r
-\r
- {Removes one leading zero from the input string}\r
- strInput := Copy(strInput, 2, Length(strINput));\r
- end;\r
-\r
- {Returns the formatted string}\r
- Result := strInput;\r
-\r
-End;\r
-\r
-\r
-{Returns whether or not the version string detected is meets the version number requirement}\r
-Function VersionAtLeast(strVersion_Installed: string; intMajor: integer; intMinor: integer; intRevision: integer; intBuild: integer): boolean;\r
-Var\r
-\r
- {Stores the Major of the Version installed (X.0.0.0)}\r
- intMajor_Installed: Integer;\r
-\r
- {Stores the Minor of the Version installed (1.X.0.0)}\r
- intMinor_Installed: Integer;\r
-\r
- {Stores the Revision of the Version installed (1.0.X.0)}\r
- intRevision_Installed: Integer;\r
-\r
- {Stores the Revision of the Version installed (1.0.0.X)}\r
- intBuild_Installed: Integer;\r
-\r
- {Stores the last valid character of a particular segment (Major, Minor, Revision) of the Version string}\r
- intEnd_Pos: Integer;\r
-\r
-begin\r
- {Debug\r
- Msgbox('The version installed is ' + strVersion_Installed + ' and the required version is ' + IntToStr(intMajor) + '.' + IntToStr(intMinor) + '.' + IntToStr(intRevision) + '.' + IntToStr(intBuild), mbINformation, mb_OK)\r
- }\r
-\r
- {Makes sure the version string contains four numberic segments 5.2 ---> 5.2.0.0}\r
- strVersion_Installed := FixVersion(strVersion_Installed);\r
-\r
- {If the version number is empty then quit the function}\r
- if strVersion_Installed = '' Then\r
- begin\r
- Result := False;\r
-\r
- {Stops analyzing the version installed and returns that the version installed was inadequate}\r
- exit;\r
- end;\r
-\r
- {Starts detecting the Major value of the Version Installed}\r
-\r
- {Sets the end position equal to one character before the first period in the version number}\r
- intEnd_Pos := Pos('.', strVersion_Installed) -1\r
-\r
- {Sets the major version equal to all character before the first period }\r
- intMajor_installed := StrToIntDef(RemoveLeadingZeros(Copy(strVersion_Installed, 1, intEnd_Pos)), 0);\r
-\r
- {Debug\r
- msgbox('The Major version installed is ' + IntToStr(intMajor_installed) + ' and the required Major is ' + IntToStr(intMajor) + '.', mbInformation, MB_OK)\r
- }\r
-\r
- {If the Major Version Installed is greater than the required value then...}\r
- if intMajor_Installed > intMajor Then\r
- begin\r
- {Returns that the version number was adequate, since it actually exceeded the requirement}\r
- Result := True;\r
-\r
- {Debug\r
- msgbox(IntToStr(intMajor_installed) + ' > ' + IntToStr(intMajor), mbInformation, MB_OK)\r
- }\r
-\r
- {Stops analyzing the version number since we already know it met the requirement}\r
- exit;\r
- end;\r
-\r
- {If the Major version installed is less than the requirement then...}\r
- If intMajor_Installed < intMajor Then\r
- begin\r
- {Debug\r
- msgbox(IntToStr(intMajor_installed) + ' < ' + IntToStr(intMajor), mbInformation, MB_OK)\r
- }\r
-\r
- Result := False;\r
-\r
- {Stops analyzing the version number since we already know it's inadequate and returns False (inadequate)}\r
- exit;\r
- end;\r
-\r
-\r
- {Starts detecting the Minor version of the Version Installed}\r
-\r
- {Modifies strVersion_Installed removing the first period and everything prior to it (Removes the Major Version)}\r
- strVersion_Installed := Copy(strVersion_Installed, intEnd_Pos + 2, Length(strVersion_Installed));\r
-\r
- {Sets the end position equal to one character before the first period in the version number}\r
- intEnd_Pos := Pos('.', strVersion_Installed) -1\r
-\r
- {Sets the Minor version equal to all character before the first period }\r
- intMinor_installed := StrToIntDef(RemoveLeadingZeros(Copy(strVersion_Installed, 1, intEnd_Pos)), 0)\r
-\r
- {Debug\r
- msgbox('The Minor version installed is ' + IntToStr(intMinor_installed) + ' and the required Minor is ' + IntToStr(intMinor) + '.', mbInformation, MB_OK)\r
- }\r
-\r
- {If the Minor Version Installed is greater than the required value then...}\r
- If intMinor_Installed > intMinor Then\r
- begin\r
- {Returns that the version number was adequate}\r
- Result := True;\r
-\r
- {Stops further analyzation of the version number}\r
- exit\r
- end;\r
-\r
- {If the minor installed is less than what was required}\r
- If intMinor_Installed < intMinor Then\r
- Begin\r
- Result := False;\r
-\r
- {Returns that the version installed did not meet the required value and stops analyzing the version number}\r
- exit;\r
- end;\r
-\r
-\r
- {Starts Detecting the Revision of the Version Installed}\r
-\r
- {Modifies strVersion_Installed removing the first period and everything prior to it (Removes the Minor Version)}\r
- strVersion_Installed := Copy(strVersion_Installed, intEnd_Pos + 2, Length(strVersion_Installed));\r
-\r
- {Sets the last character of the Revision to last character before the first period}\r
- intEnd_Pos := Pos('.', strVersion_Installed) -1\r
-\r
- {Sets the Revision Installed equal to everything before the first period}\r
- intRevision_Installed := strToIntDef(RemoveLeadingZeros(Copy(strVersion_Installed, 1, intEnd_Pos)), 0);\r
-\r
- {Debug\r
- msgbox('The Revision version installed is ' + IntToStr(intRevision_installed) + ' and the required Revision is ' + IntToStr(intRevision) + '.', mbInformation, MB_OK)\r
- }\r
-\r
- {If the Revision Installed is greater than the required value then...}\r
- If intRevision_Installed > intRevision Then\r
- begin\r
- {Return that the version installed was adequate}\r
- Result := True;\r
-\r
- {Stops further analyzation of the version number}\r
- exit\r
- end;\r
-\r
- {If the revision installed did not meet the requirement then...}\r
- If intRevision_Installed < intRevision Then\r
- begin\r
- Result := False;\r
-\r
- {Return that the version number failed to meet the requirement and stops further analyzation of the version number}\r
- exit;\r
- end;\r
-\r
- {Start Detection the Build Installed}\r
-\r
- {Modifies strVersion_Installed removing the first period and everything prior to it (Removes the Revision) leaving behind only the build number}\r
- strVersion_Installed := Copy(strVersion_Installed, intEnd_Pos + 2, Length(strVersion_Installed));\r
-\r
- {Set the build installed = to what's left of the strVersion_Installed text}\r
- intBuild_installed := strToIntDef(RemoveLeadingZeros(strVersion_Installed), 0);\r
-\r
- {Debug\r
- msgbox('The Build version installed is ' + IntToStr(intBuild_installed) + ' and the required Build is ' + IntToStr(intBuild) + '.', mbInformation, MB_OK)\r
- }\r
-\r
- {If the build installed is greater than or equal to the requirement then...}\r
- if intBuild_installed >= intBuild Then\r
-\r
- {Report that the version installed was adequate}\r
- Result := True\r
- else\r
-\r
- {Reports the inadequacy of the version installed and seases processing }\r
- Result := False;\r
-end;\r
-\r
-\r
{Determines whether or not TortoiseCVS is installed}\r
Function TortoiseCVSInstalled(): boolean;\r
Begin\r
Result := '0';\r
End;\r
\r
-{Replace one occurrence of OldStr in Str with NewStr}\r
-Function ReplaceSubString(Src: string; OldStr: string; NewStr: string) : string;\r
-Var\r
- OldStrStartAt: Integer;\r
-\r
-Begin\r
- OldStrStartAt := Pos(OldStr, Src);\r
- if OldStrStartAt > 0 then\r
- begin\r
- {Remove old string}\r
- Delete(Src, OldStrStartAt, Length(OldStr));\r
- {Insert new string}\r
- Insert(NewStr, Src, OldStrStartAt);\r
- end;\r
- Result := Src;\r
-End;\r
-\r
-{Returns WinMerge installed exeutable file name}\r
-Function WinMergeExeName(): string;\r
-Var\r
- Unused: String;\r
-\r
-Begin\r
- Result := ExpandConstant('{app}\') + ExeName(Unused);\r
-End;\r
-\r
-{Returns ClearCase external tools configuration file name}\r
-Function ClearCaseMapFile(): string;\r
-Begin\r
- if not RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Rational Software\', 'RSINSTALLDIR', Result) then\r
- begin\r
- Result := {pf} + '\Rational\';\r
- end;\r
- Result := Result + 'ClearCase\lib\mgrs\map';\r
-End;\r
-\r
-{Determines whether or not Rational ClearCase is installed}\r
-Function ClearCaseInstalled(): boolean;\r
-Begin\r
- Result := FileExists(ClearCaseMapFile());\r
-End;\r
-\r
-{Intergrate WinMerge as ClearCase external diff tool}\r
-Procedure IntegrateClearCase(OldExe: String; NewExe: String);\r
-Var\r
- MapFile: TStringList;\r
- FileName: String;\r
- I: Integer;\r
- BakFile: String;\r
-\r
-Begin\r
- FileName := ClearCaseMapFile();\r
- {Create a backup file of the original file first time it gets modified}\r
- BakFile := FileName + '.original';\r
- if not FileExists(BakFile) then\r
- begin\r
- FileCopy(FileName, BakFile, True);\r
- end;\r
- MapFile := TStringList.Create();\r
- {Read the entire map file to a string list}\r
- MapFile.LoadFromFile(FileName);\r
- if MapFile.Count > 0 then\r
- begin\r
- for I := 0 to MapFile.Count do\r
- begin\r
- {Search for the 'text_file_delta xcompare ...' line}\r
- if (MapFile.Strings[I][1] <> ';') and (Pos('text_file_delta', MapFile.Strings[I]) > 0) and (Pos('xcompare', MapFile.Strings[I]) > 0) then\r
- begin\r
- {Replace old executable name with a new executable name}\r
- MapFile.Strings[I] := ReplaceSubString(MapFile.Strings[I], OldExe, NewExe);\r
- break;\r
- end;\r
- end;\r
- { Save the modified file. }\r
- MapFile.SaveToFile(FileName);\r
- end;\r
-End;\r
-\r
// Add WinMerge to system path.\r
// This requires certain order of things to work:\r
// #1 ModPathDir function must be first (it gets called by others)\r
Result := g_CheckListBox.Checked[0];\r
end;\r
\r
-function TortoiseSVNGITMergeToolCommandLine(Unused: string): string;\r
+function TortoiseSVNGitMergeToolCommandLine(Unused: string): string;\r
var\r
lmr: string;\r
Args: string;\r
if g_CheckListBox.Checked[4] then begin\r
Args := Args + ' /a' + lmr;\r
end;\r
- Result := WinMergeExeName() + ' ' + Args;\r
+ Result := ExpandConstant('{app}\WinMergeU.exe') + ' ' + Args;\r
end;\r
\r
function ThreeWayMergePage_ShouldSkipPage(Page: TWizardPage): Boolean;\r
begin\r
- Result := not (IsTaskSelected('TortoiseSVN') or IsTaskSelected('TortoiseGIT'));\r
+ Result := not (IsTaskSelected('TortoiseSVN') or IsTaskSelected('TortoiseGit'));\r
end;\r
\r
#include "modpath.iss"\r
begin\r
if IsTaskSelected('modifypath') then\r
ModPath();\r
- if IsTaskSelected('ClearCase') then\r
- begin\r
- IntegrateClearCase('..\..\bin\cleardiffmrg.exe', WinMergeExeName());\r
- end;\r
end;\r
End;\r
\r
ModPath();\r
DeleteFile(appdir + '\uninsTasks.txt')\r
end;\r
-\r
- if CurUninstallStep = usPostUninstall then\r
- begin\r
- if ClearCaseInstalled() then\r
- IntegrateClearCase(WinMergeExeName(), '..\..\bin\cleardiffmrg.exe');\r
- end;\r
End;\r
\r
function BooleanToString(Value : Boolean) : String; \r
Result := false;\r
end;\r
\r
+function AreSourceAndDestinationOfShellExtensionSame(Filename: String) : Boolean;\r
+var\r
+ ver: String;\r
+begin\r
+ ver := ''\r
+ GetVersionNumbersString(Filename, ver);\r
+ if ver = ExpandConstant('{#ShellExtensionVersion}') then\r
+ Result := true\r
+ else\r
+ Result := false;\r
+end;\r
+\r
procedure RegisterPreviousData(PreviousDataKey: Integer);\r
begin\r
SetPreviousData(PreviousDataKey, 'UseAs3WayMergeTool', BooleanToString(g_CheckListBox.Checked[0]));\r