1 |
#define AppName "Tera Term" |
#define AppName "Tera Term" |
2 |
#define AppVer "4.64" |
#define AppVer "4.69-RC3" |
3 |
#define snapshot GetDateTimeString('yyyymmdd_hhnnss', '', ''); |
;#define snapshot GetDateTimeString('yyyymmdd_hhnnss', '', ''); |
4 |
|
|
5 |
[Setup] |
[Setup] |
6 |
AppCopyright=TeraTerm Project |
AppCopyright=TeraTerm Project |
16 |
ShowLanguageDialog=yes |
ShowLanguageDialog=yes |
17 |
AllowNoIcons=true |
AllowNoIcons=true |
18 |
UninstallDisplayIcon={app}\ttermpro.exe |
UninstallDisplayIcon={app}\ttermpro.exe |
19 |
AppMutex=TeraTermProAppMutex, TeraTermProMacroAppMutex, TeraTermProKeycodeAppMutex, TeraTermMenuAppMutex, CygTermAppMutex |
;AppMutex=TeraTermProAppMutex, TeraTermProMacroAppMutex, TeraTermProKeycodeAppMutex, TeraTermMenuAppMutex, CygTermAppMutex, Global\TeraTermProAppMutex, Global\TeraTermProMacroAppMutex, Global\TeraTermProKeycodeAppMutex, Global\TeraTermMenuAppMutex, Global\CygTermAppMutex |
20 |
#ifndef snapshot |
#ifndef snapshot |
21 |
OutputBaseFilename=teraterm-{#AppVer} |
OutputBaseFilename=teraterm-{#AppVer} |
22 |
#else |
#else |
64 |
Source: release\screencapture.ttl; DestDir: {app}; Components: TeraTerm |
Source: release\screencapture.ttl; DestDir: {app}; Components: TeraTerm |
65 |
Source: release\ssh2login.ttl; DestDir: {app}; Components: TeraTerm |
Source: release\ssh2login.ttl; DestDir: {app}; Components: TeraTerm |
66 |
Source: release\wait_regex.ttl; DestDir: {app}; Components: TeraTerm |
Source: release\wait_regex.ttl; DestDir: {app}; Components: TeraTerm |
67 |
|
Source: release\lang\Default.lng; DestDir: {app}\lang; Components: TeraTerm; Flags: onlyifdoesntexist uninsneveruninstall; Permissions: authusers-modify |
68 |
Source: release\lang\Japanese.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly |
Source: release\lang\Japanese.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly |
69 |
Source: release\lang\German.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly |
Source: release\lang\German.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly |
70 |
|
Source: release\lang\French.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly |
71 |
Source: ..\ttssh2\ttxssh\Release\ttxssh.dll; DestDir: {app}; Components: TTSSH; Flags: ignoreversion |
Source: ..\ttssh2\ttxssh\Release\ttxssh.dll; DestDir: {app}; Components: TTSSH; Flags: ignoreversion |
72 |
Source: release\ssh_known_hosts; DestDir: {app}; Components: TTSSH; Flags: onlyifdoesntexist uninsneveruninstall; Permissions: authusers-modify |
Source: release\ssh_known_hosts; DestDir: {app}; Components: TTSSH; Flags: onlyifdoesntexist uninsneveruninstall; Permissions: authusers-modify |
73 |
Source: ..\cygterm\cygterm.exe; DestDir: {app}; Components: cygterm |
Source: ..\cygterm\cygterm.exe; DestDir: {app}; Components: cygterm |
74 |
Source: ..\cygterm\cygterm.cfg; DestDir: {app}; Components: cygterm; Flags: onlyifdoesntexist uninsneveruninstall; Permissions: authusers-modify |
Source: ..\cygterm\cygterm.cfg; DestDir: {app}; Components: cygterm; Flags: onlyifdoesntexist uninsneveruninstall; Permissions: authusers-modify |
75 |
Source: ..\cygterm\cyglaunch.exe; DestDir: {app}; Components: cygterm |
Source: ..\cygterm\cyglaunch.exe; DestDir: {app}; Components: cygterm |
76 |
Source: ..\cygterm\cygterm+.tar.gz; DestDir: {app}; Components: cygterm |
Source: ..\cygterm\cygterm+.tar.gz; DestDir: {app}; Components: cygterm |
77 |
Source: ..\libs\logmett\Setup_LogMeTT_2_9_7.exe; DestDir: {tmp}; Components: LogMeTT; Flags: deleteafterinstall |
Source: ..\libs\logmett\Setup_LogMeTT_2_9_8_1.exe; DestDir: {tmp}; Components: LogMeTT; Flags: deleteafterinstall |
78 |
Source: ..\libs\logmett\Setup_TTLEdit_1_1_5.exe; DestDir: {tmp}; Components: TTLEdit; Flags: deleteafterinstall |
Source: ..\libs\logmett\Setup_TTLEditor_1_2_1.exe; DestDir: {tmp}; Components: TTLEdit; Flags: deleteafterinstall |
79 |
Source: ..\ttpmenu\Release\ttpmenu.exe; DestDir: {app}; Components: TeraTerm_Menu; Flags: ignoreversion |
Source: ..\ttpmenu\Release\ttpmenu.exe; DestDir: {app}; Components: TeraTerm_Menu; Flags: ignoreversion |
80 |
Source: release\ttmenu_readme-j.txt; DestDir: {app}; Components: TeraTerm_Menu |
Source: release\ttmenu_readme-j.txt; DestDir: {app}; Components: TeraTerm_Menu |
81 |
Source: ..\TTProxy\Release\TTXProxy.dll; DestDir: {app}; Components: TTProxy; Flags: ignoreversion |
Source: ..\TTProxy\Release\TTXProxy.dll; DestDir: {app}; Components: TTProxy; Flags: ignoreversion |
209 |
[Run] |
[Run] |
210 |
Filename: {app}\ttermpro.exe; Flags: nowait postinstall skipifsilent unchecked; Description: {cm:launch_teraterm}; Components: TeraTerm |
Filename: {app}\ttermpro.exe; Flags: nowait postinstall skipifsilent unchecked; Description: {cm:launch_teraterm}; Components: TeraTerm |
211 |
Filename: {tmp}\Setup_LogMeTT_2_9_7.exe; Components: LogMeTT |
Filename: {tmp}\Setup_LogMeTT_2_9_7.exe; Components: LogMeTT |
212 |
Filename: {tmp}\Setup_TTLEdit_1_1_5.exe; Components: TTLEdit |
Filename: {tmp}\Setup_TTLEditor_1_2_1.exe; Components: TTLEdit |
213 |
Filename: {app}\ttpmenu.exe; Flags: nowait postinstall skipifsilent unchecked; Description: {cm:launch_ttmenu}; Components: TeraTerm_Menu |
Filename: {app}\ttpmenu.exe; Flags: nowait postinstall skipifsilent unchecked; Description: {cm:launch_ttmenu}; Components: TeraTerm_Menu |
214 |
Filename: {app}\Collector\Collector.exe; Flags: nowait postinstall skipifsilent unchecked; Description: {cm:launch_collector}; Components: Collector |
Filename: {app}\Collector\Collector.exe; Flags: nowait postinstall skipifsilent unchecked; Description: {cm:launch_collector}; Components: Collector |
215 |
|
|
254 |
en.msg_language_none=&English |
en.msg_language_none=&English |
255 |
en.msg_language_japanese=&Japanese |
en.msg_language_japanese=&Japanese |
256 |
en.msg_language_german=&German |
en.msg_language_german=&German |
257 |
|
en.msg_language_french=&French |
258 |
ja.msg_language_caption=言語の選択 |
ja.msg_language_caption=言語の選択 |
259 |
ja.msg_language_description=ユーザーインターフェースの言語を選択してください。 |
ja.msg_language_description=ユーザーインターフェースの言語を選択してください。 |
260 |
ja.msg_language_subcaption=アプリケーションのメニューやダイアログ等の表示言語を選択して、「次へ」をクリックしてください。 |
ja.msg_language_subcaption=アプリケーションのメニューやダイアログ等の表示言語を選択して、「次へ」をクリックしてください。 |
261 |
ja.msg_language_none=英語(&E) |
ja.msg_language_none=英語(&E) |
262 |
ja.msg_language_japanese=日本語(&J) |
ja.msg_language_japanese=日本語(&J) |
263 |
ja.msg_language_german=ドイツ語(&G) |
ja.msg_language_german=ドイツ語(&G) |
264 |
|
ja.msg_language_french=フランス語(&F) |
265 |
en.msg_del_confirm=Are you sure that you want to delete %s ? |
en.msg_del_confirm=Are you sure that you want to delete %s ? |
266 |
ja.msg_del_confirm=%s を削除しますか? |
ja.msg_del_confirm=%s を削除しますか? |
267 |
en.msg_uninstall_confirm=It seems a former version is installed. You are recommended to uninstall it previously. Do you uninstall former version ? |
en.msg_uninstall_confirm=It seems a former version is installed. You are recommended to uninstall it previously. Do you uninstall former version ? |
282 |
ja.comp_TTXAlwaysOnTop=常に最前面に表示できるようにする |
ja.comp_TTXAlwaysOnTop=常に最前面に表示できるようにする |
283 |
en.comp_TTXRecurringCommand=Recurring Command can be used |
en.comp_TTXRecurringCommand=Recurring Command can be used |
284 |
ja.comp_TTXRecurringCommand=定期的に文字列を送信する |
ja.comp_TTXRecurringCommand=定期的に文字列を送信する |
285 |
|
en.msg_AppRunningError=Setup has detected that Tera Term is currently running.%n%nPlease close all instances of it now, then click Next to continue. |
286 |
|
ja.msg_AppRunningError=セットアップは実行中の Tera Term を検出しました。%n%n開いているアプリケーションをすべて閉じてから「次へ」をクリックしてください。 |
287 |
|
|
288 |
[Code] |
[Code] |
289 |
const |
const |
336 |
end; |
end; |
337 |
end; |
end; |
338 |
|
|
339 |
|
{ |
340 |
|
// If value is not found in INI, returns "" |
341 |
|
function GetIniString2(Section:String; Key:String; Filename:String) : String; |
342 |
|
var |
343 |
|
Default1: String; |
344 |
|
Default2: String; |
345 |
|
Value1: String; |
346 |
|
Value2: String; |
347 |
|
begin |
348 |
|
Default1 := 'on'; |
349 |
|
Default2 := 'off'; |
350 |
|
Value1 := GetIniString(Section, Key, Default1, Filename); |
351 |
|
Value2 := GetIniString(Section, Key, Default2, Filename); |
352 |
|
|
353 |
|
if Value1 <> Value2 then |
354 |
|
// no value in INI |
355 |
|
Result := '' |
356 |
|
else |
357 |
|
// value in INI |
358 |
|
Result := Value1 |
359 |
|
end; |
360 |
|
} |
361 |
|
|
362 |
|
function CheckAppUsing(Filename:String) : integer; |
363 |
|
var |
364 |
|
TmpFileName : String; |
365 |
|
begin |
366 |
|
if FileExists(FileName) then |
367 |
|
begin |
368 |
|
TmpFileName := FileName + '.' + GetDateTimeString('yyyymmddhhnnss', #0, #0); // Tmp file ends with timestamp |
369 |
|
if FileCopy(FileName, TmpFileName, True) then |
370 |
|
if DeleteFile(FileName) then |
371 |
|
if RenameFile(TmpFileName, FileName) then |
372 |
|
Result := 0 |
373 |
|
else |
374 |
|
Result := -1 // permission? |
375 |
|
else |
376 |
|
begin |
377 |
|
Result := 1; // failed to delete |
378 |
|
DeleteFile(TmpFileName); |
379 |
|
end |
380 |
|
else |
381 |
|
Result := -1 // permission? |
382 |
|
end |
383 |
|
else |
384 |
|
Result := 0; |
385 |
|
end; |
386 |
|
|
387 |
|
function CheckAppsUsing() : integer; |
388 |
|
var |
389 |
|
FileDir : String; |
390 |
|
FileName : array[0..6] of String; |
391 |
|
i : integer; |
392 |
|
flag : boolean; |
393 |
|
begin |
394 |
|
FileDir := ExpandConstant('{app}'); |
395 |
|
FileName[0] := FileDir + '\ttermpro.exe'; |
396 |
|
FileName[1] := FileDir + '\ttpmacro.exe'; |
397 |
|
FileName[2] := FileDir + '\keycode.exe'; |
398 |
|
FileName[3] := FileDir + '\ttpmenu.exe'; |
399 |
|
FileName[4] := FileDir + '\cygterm.exe'; |
400 |
|
FileName[5] := FileDir + '\Collector.exe'; |
401 |
|
FileName[6] := FileDir + '\Collector_org.exe'; |
402 |
|
|
403 |
|
flag := True; |
404 |
|
for i := 0 to 6 do |
405 |
|
begin |
406 |
|
if flag = True then |
407 |
|
begin |
408 |
|
case CheckAppUsing(FileName[i]) of |
409 |
|
1: |
410 |
|
// failed to delete. in use. |
411 |
|
begin |
412 |
|
Result := 1; |
413 |
|
flag := False; |
414 |
|
end; |
415 |
|
-1: |
416 |
|
// failed to copy/rename |
417 |
|
begin |
418 |
|
Result := -1; |
419 |
|
flag := False; |
420 |
|
end; |
421 |
|
else |
422 |
|
// OK |
423 |
|
end; |
424 |
|
end; |
425 |
|
end; |
426 |
|
|
427 |
|
end; |
428 |
|
|
429 |
function GetDefaultIniFilename : String; |
function GetDefaultIniFilename : String; |
430 |
begin |
begin |
431 |
Result := ExpandConstant('{app}') + '\TERATERM.INI'; |
Result := ExpandConstant('{app}') + '\TERATERM.INI'; |
433 |
|
|
434 |
procedure SetIniFile(iniFile: String); |
procedure SetIniFile(iniFile: String); |
435 |
var |
var |
436 |
Language : String; |
Language : String; |
437 |
Locale : String; |
Locale : String; |
438 |
CodePage : integer; |
CodePage : integer; |
439 |
VTFont : String; |
VTFont : String; |
440 |
TEKFont : String; |
TEKFont : String; |
441 |
FileDir : String; |
FileDir : String; |
442 |
TCPPort : integer; |
TCPPort : integer; |
443 |
|
ViewlogEditor : String; |
444 |
|
|
445 |
begin |
begin |
446 |
Language := GetIniString('Tera Term', 'Language', '', iniFile); |
Language := GetIniString('Tera Term', 'Language', '', iniFile); |
447 |
Locale := GetIniString('Tera Term', 'Locale', '', iniFile); |
Locale := GetIniString('Tera Term', 'Locale', '', iniFile); |
448 |
CodePage := GetIniInt('Tera Term', 'CodePage', 0, 0, 0, iniFile); |
CodePage := GetIniInt('Tera Term', 'CodePage', 0, 0, 0, iniFile); |
449 |
VTFont := GetIniString('Tera Term', 'VTFont', '', iniFile); |
VTFont := GetIniString('Tera Term', 'VTFont', '', iniFile); |
450 |
TEKFont := GetIniString('Tera Term', 'TEKFont', '', iniFile); |
TEKFont := GetIniString('Tera Term', 'TEKFont', '', iniFile); |
451 |
FileDir := GetIniString('Tera Term', 'FileDir', '', iniFile); |
FileDir := GetIniString('Tera Term', 'FileDir', '', iniFile); |
452 |
|
FileDir := GetIniString('Tera Term', 'FileDir', '', iniFile); |
453 |
|
ViewlogEditor := GetIniString('Tera Term', 'ViewlogEditor', '', iniFile); |
454 |
|
|
455 |
case GetUILanguage and $3FF of |
case GetUILanguage and $3FF of |
456 |
$04: // Chinese |
$04: // Chinese |
457 |
begin |
begin |
458 |
if Length(Language) = 0 then |
if Length(Language) = 0 then |
459 |
SetIniString('Tera Term', 'Language', 'Japanese', iniFile); |
SetIniString('Tera Term', 'Language', 'UTF-8', iniFile); |
460 |
if Length(Locale) = 0 then |
if Length(Locale) = 0 then |
461 |
SetIniString('Tera Term', 'Locale', 'chs', iniFile); |
SetIniString('Tera Term', 'Locale', 'chs', iniFile); |
462 |
if CodePage = 0 then |
if CodePage = 0 then |
511 |
if GetUILanguage = $409 then begin // en-US |
if GetUILanguage = $409 then begin // en-US |
512 |
|
|
513 |
if Length(Language) = 0 then |
if Length(Language) = 0 then |
514 |
SetIniString('Tera Term', 'Language', 'Japanese', iniFile); |
SetIniString('Tera Term', 'Language', 'UTF-8', iniFile); |
515 |
if Length(Locale) = 0 then |
if Length(Locale) = 0 then |
516 |
SetIniString('Tera Term', 'Locale', 'american', iniFile); |
SetIniString('Tera Term', 'Locale', 'american', iniFile); |
517 |
if CodePage = 0 then |
if CodePage = 0 then |
540 |
SetIniString('Tera Term', 'UILanguageFile', 'lang\Japanese.lng', iniFile); |
SetIniString('Tera Term', 'UILanguageFile', 'lang\Japanese.lng', iniFile); |
541 |
2: |
2: |
542 |
SetIniString('Tera Term', 'UILanguageFile', 'lang\German.lng', iniFile); |
SetIniString('Tera Term', 'UILanguageFile', 'lang\German.lng', iniFile); |
543 |
|
3: |
544 |
|
SetIniString('Tera Term', 'UILanguageFile', 'lang\French.lng', iniFile); |
545 |
else |
else |
546 |
SetIniString('Tera Term', 'UILanguageFile', 'lang\English.lng', iniFile); |
SetIniString('Tera Term', 'UILanguageFile', 'lang\Default.lng', iniFile); |
547 |
end; |
end; |
548 |
|
|
549 |
if Length(FileDir) = 0 then begin |
if Length(FileDir) = 0 then begin |
558 |
SetIniInt('Tera Term', 'TCPPort', 23, iniFile); |
SetIniInt('Tera Term', 'TCPPort', 23, iniFile); |
559 |
end; |
end; |
560 |
|
|
561 |
|
if ViewlogEditor = 'notepad.exe' then begin |
562 |
|
ViewlogEditor := ExpandConstant('{win}') + '\' + 'notepad.exe'; |
563 |
|
SetIniString('Tera Term', 'ViewlogEditor', ViewlogEditor, iniFile); |
564 |
|
end; |
565 |
|
|
566 |
end; |
end; |
567 |
|
|
568 |
procedure InitializeWizard; |
procedure InitializeWizard; |
573 |
UILangFilePageNone : String; |
UILangFilePageNone : String; |
574 |
UILangFilePageJapanese : String; |
UILangFilePageJapanese : String; |
575 |
UILangFilePageGerman : String; |
UILangFilePageGerman : String; |
576 |
|
UILangFilePageFrench : String; |
577 |
begin |
begin |
578 |
UILangFilePageCaption := CustomMessage('msg_language_caption'); |
UILangFilePageCaption := CustomMessage('msg_language_caption'); |
579 |
UILangFilePageDescription := CustomMessage('msg_language_description'); |
UILangFilePageDescription := CustomMessage('msg_language_description'); |
581 |
UILangFilePageNone := CustomMessage('msg_language_none'); |
UILangFilePageNone := CustomMessage('msg_language_none'); |
582 |
UILangFilePageJapanese := CustomMessage('msg_language_japanese'); |
UILangFilePageJapanese := CustomMessage('msg_language_japanese'); |
583 |
UILangFilePageGerman := CustomMessage('msg_language_german'); |
UILangFilePageGerman := CustomMessage('msg_language_german'); |
584 |
|
UILangFilePageFrench := CustomMessage('msg_language_french'); |
585 |
|
|
586 |
UILangFilePage := CreateInputOptionPage(wpSelectComponents, |
UILangFilePage := CreateInputOptionPage(wpSelectComponents, |
587 |
UILangFilePageCaption, UILangFilePageDescription, |
UILangFilePageCaption, UILangFilePageDescription, |
589 |
UILangFilePage.Add(UILangFilePageNone); |
UILangFilePage.Add(UILangFilePageNone); |
590 |
UILangFilePage.Add(UILangFilePageJapanese); |
UILangFilePage.Add(UILangFilePageJapanese); |
591 |
UILangFilePage.Add(UILangFilePageGerman); |
UILangFilePage.Add(UILangFilePageGerman); |
592 |
|
UILangFilePage.Add(UILangFilePageFrench); |
593 |
case ActiveLanguage of |
case ActiveLanguage of |
594 |
'ja': |
'ja': |
595 |
UILangFilePage.SelectedValueIndex := 1; |
UILangFilePage.SelectedValueIndex := 1; |
596 |
|
// 他の言語は最新版に追従していないので、日本語だけ特別扱い |
597 |
else |
else |
598 |
UILangFilePage.SelectedValueIndex := 0; |
UILangFilePage.SelectedValueIndex := 0; |
599 |
end; |
end; |
606 |
ResultCode: Integer; |
ResultCode: Integer; |
607 |
iniFile : String; |
iniFile : String; |
608 |
begin |
begin |
609 |
|
Result := True; |
610 |
|
|
611 |
case CurPageID of |
case CurPageID of |
612 |
|
|
613 |
wpWelcome: |
wpWelcome: |
641 |
|
|
642 |
end; |
end; |
643 |
|
|
644 |
|
wpSelectDir: |
645 |
|
begin |
646 |
|
|
647 |
|
ResultCode := CheckAppsUsing(); |
648 |
|
if ResultCode = 1 then |
649 |
|
begin |
650 |
|
MsgBox(CustomMessage('msg_AppRunningError'), mbError, MB_OK); |
651 |
|
Result := False; |
652 |
|
end; |
653 |
|
// if -1, goto next. turn over to Inno Setup. |
654 |
|
|
655 |
|
end; |
656 |
|
|
657 |
wpSelectComponents: |
wpSelectComponents: |
658 |
begin |
begin |
659 |
|
|
660 |
iniFile := GetIniString('Tera Term', 'UILanguageFile', '', GetDefaultIniFilename()); |
if FileExists(GetDefaultIniFileName()) then |
661 |
if iniFile = 'lang\Japanese.lng' then |
begin |
662 |
UILangFilePage.SelectedValueIndex := 1 |
iniFile := Lowercase(GetIniString('Tera Term', 'UILanguageFile', '', GetDefaultIniFilename())); |
663 |
else if iniFile = 'lang\German.lng' then |
if iniFile = 'lang\japanese.lng' then |
664 |
UILangFilePage.SelectedValueIndex := 2 |
UILangFilePage.SelectedValueIndex := 1 |
665 |
else |
else if iniFile = 'lang\german.lng' then |
666 |
UILangFilePage.SelectedValueIndex := 0; |
UILangFilePage.SelectedValueIndex := 2 |
667 |
|
else if iniFile = 'lang\french.lng' then |
668 |
|
UILangFilePage.SelectedValueIndex := 3 |
669 |
|
else |
670 |
|
UILangFilePage.SelectedValueIndex := 0; |
671 |
|
end; |
672 |
|
|
673 |
end; |
end; |
674 |
end; |
end; |
|
Result := True; |
|
675 |
end; |
end; |
676 |
|
|
677 |
procedure CurStepChanged(CurStep: TSetupStep); |
procedure CurStepChanged(CurStep: TSetupStep); |
790 |
Name: {app}\copyfont.pif; Type: files |
Name: {app}\copyfont.pif; Type: files |
791 |
Name: {app}\libeay.txt; Type: files |
Name: {app}\libeay.txt; Type: files |
792 |
|
|
793 |
[_ISToolPreCompile] |
[InnoIDE_PreCompile] |
794 |
Name: makechm.bat |
;Name: makechm.bat |
795 |
; Name: build.bat; Parameters: rebuild |
;Name: build.bat; Parameters: rebuild |
796 |
Name: build.bat |
;Name: build.bat |