Now that we have Subversion's file renaming ability, it's time at

long last to move all the Windows-specific source files down into a
`windows' subdirectory. Only platform-specific files remain at the
top level. With any luck this will act as a hint to anyone still
contemplating sending us a Windows-centric patch...

[originally from svn r4792]
This commit is contained in:
Simon Tatham 2004-11-16 22:14:56 +00:00
Родитель 1b94cc85c6
Коммит cb45b9cc25
42 изменённых файлов: 155 добавлений и 127 удалений

29
README
Просмотреть файл

@ -8,34 +8,37 @@ below.)
For building on Windows:
- Makefile.vc is for command-line builds on MS Visual C++ systems.
Type `nmake -f Makefile.vc' to build all the PuTTY binaries.
- windows/Makefile.vc is for command-line builds on MS Visual C++
systems. Change into the `windows' subdirectory and type `nmake
-f Makefile.vc' to build all the PuTTY binaries.
(We've also had one report of success building with the
OpenWatcom compiler -- www.openwatcom.org -- using Makefile.vc
with `wmake -ms -f makefile.vc' and NO_MULTIMON, although we
haven't tried this ourselves.)
- Inside the MSVC subdirectory are MS Visual Studio project files
for doing GUI-based builds of the various PuTTY utilities. These
have been tested on Visual Studio 6.
- Inside the windows/MSVC subdirectory are MS Visual Studio project
files for doing GUI-based builds of the various PuTTY utilities.
These have been tested on Visual Studio 6.
You should be able to build each PuTTY utility by loading the
corresponding .dsp file in Visual Studio. For example,
MSVC/putty/putty.dsp builds PuTTY itself, MSVC/plink/plink.dsp
builds Plink, and so on.
- Makefile.bor is for the Borland C compiler. Type `make -f
Makefile.bor' to build all the PuTTY binaries.
- windows/Makefile.bor is for the Borland C compiler. Type `make -f
Makefile.bor' while in the `windows' subdirectory to build all
the PuTTY binaries.
- Makefile.cyg is for Cygwin / mingw32 installations. Type `make -f
Makefile.cyg' to build all the PuTTY binaries. Note that by
default the Pageant WinNT security features and the multiple
monitor support are excluded from the Cygwin build, since at the
- windows/Makefile.cyg is for Cygwin / mingw32 installations. Type
`make -f Makefile.cyg' while in the `windows' subdirectory to
build all the PuTTY binaries. Note that by default the multiple
monitor support is excluded from the Cygwin build, since at the
time of writing Cygwin doesn't include the necessary headers.
- Makefile.lcc is for lcc-win32. Type `make -f Makefile.lcc'. (You
will probably need to specify COMPAT=-DNO_MULTIMON.)
- windows/Makefile.lcc is for lcc-win32. Type `make -f
Makefile.lcc' while in the `windows' subdirectory. (You will
probably need to specify COMPAT=-DNO_MULTIMON.)
For building on Unix:

44
Recipe
Просмотреть файл

@ -12,15 +12,16 @@
# Overall project name.
!name putty
# Locations and types of output Makefiles.
!makefile vc Makefile.vc
!makefile vcproj MSVC
!makefile cygwin Makefile.cyg
!makefile borland Makefile.bor
!makefile lcc Makefile.lcc
!makefile vc windows/Makefile.vc
!makefile vcproj windows/MSVC
!makefile cygwin windows/Makefile.cyg
!makefile borland windows/Makefile.bor
!makefile lcc windows/Makefile.lcc
!makefile gtk unix/Makefile.gtk
!makefile mpw mac/Makefile.mpw
# Source directories.
!srcdir charset/
!srcdir windows/
!srcdir unix/
!srcdir mac/
@ -109,23 +110,27 @@
# Hack to force version.o to be rebuilt always.
!begin vc
version.obj: *.c *.h *.rc
cl $(FWHACK) $(VER) $(CFLAGS) /c version.c
cl $(FWHACK) $(VER) $(CFLAGS) /c ..\version.c
!end
!specialobj vc version
!begin cygwin
version.o: FORCE;
version.o: FORCE
FORCE:
$(CC) $(COMPAT) $(FWHACK) $(XFLAGS) $(CFLAGS) $(VER) -c version.c
$(CC) $(COMPAT) $(FWHACK) $(XFLAGS) $(CFLAGS) $(VER) -c ../version.c
!end
!specialobj cygwin version
!begin borland
version.obj: FORCE
FORCE:
bcc32 $(FWHACK) $(VER) $(CFLAGS) /c version.c
bcc32 $(FWHACK) $(VER) $(CFLAGS) /c ..\version.c
!end
!specialobj borland version
!begin lcc
version.o: FORCE
FORCE:
lcc $(FWHACK) $(VER) $(CFLAGS) /c version.c
lcc $(FWHACK) $(VER) $(CFLAGS) /c ..\version.c
!end
!specialobj lcc version
# For Unix, we also need the gross MD5 hack that causes automatic
# version number selection in release source archives.
!begin gtk
@ -137,6 +142,7 @@ FORCE:
$(CC) $(COMPAT) $(FWHACK) $(XFLAGS) $(CFLAGS) $(VER) -c ../version.c; \
fi
!end
!specialobj gtk version
# `make install' target for Unix.
!begin gtk
@ -171,7 +177,7 @@ TERMINAL = terminal wcwidth ldiscucs logging tree234 minibidi
+ config dialog
# GUI front end and terminal emulator (putty, puttytel).
GUITERM = TERMINAL window windlg winctrls sizetip unicode printing
GUITERM = TERMINAL window windlg winctrls sizetip winucs winprint
+ winutils wincfg
# Same thing on Unix.
@ -184,7 +190,7 @@ NONSSH = telnet raw rlogin ldisc
SSH = ssh sshcrc sshdes sshmd5 sshrsa sshrand sshsha sshblowf
+ sshdh sshcrcda sshpubk sshzlib sshdss x11fwd portfwd
+ sshaes sshsh512 sshbn wildcard
WINSSH = SSH noise pageantc
WINSSH = SSH winnoise winpgntc
UXSSH = SSH uxnoise uxagentc
MACSSH = SSH macnoise
@ -222,18 +228,18 @@ BE_NONE = be_none nocproxy
putty : [G] GUITERM NONSSH WINSSH BE_ALL WINMISC win_res.res LIBS
puttytel : [G] GUITERM NONSSH BE_NOSSH WINMISC win_res.res LIBS
plink : [C] plink console NONSSH WINSSH BE_ALL logging WINMISC
plink : [C] winplink wincons NONSSH WINSSH BE_ALL logging WINMISC
+ plink.res LIBS
pscp : [C] scp winsftp console WINSSH BE_SSH SFTP wildcard WINMISC
pscp : [C] scp winsftp wincons WINSSH BE_SSH SFTP wildcard WINMISC
+ scp.res LIBS
psftp : [C] psftp winsftp console WINSSH BE_SSH SFTP WINMISC scp.res LIBS
psftp : [C] psftp winsftp wincons WINSSH BE_SSH SFTP WINMISC scp.res LIBS
pageant : [G] pageant sshrsa sshpubk sshdes sshbn sshmd5 version tree234
+ misc sshaes sshsha pageantc sshdss sshsh512 winutils winmisc
pageant : [G] winpgnt sshrsa sshpubk sshdes sshbn sshmd5 version tree234
+ misc sshaes sshsha winpgntc sshdss sshsh512 winutils winmisc
+ pageant.res LIBS
puttygen : [G] puttygen sshrsag sshdssg sshprime sshdes sshbn sshmd5 version
+ sshrand noise sshsha winstore misc winctrls sshrsa sshdss winmisc
puttygen : [G] winpgen sshrsag sshdssg sshprime sshdes sshbn sshmd5 version
+ sshrand winnoise sshsha winstore misc winctrls sshrsa sshdss winmisc
+ sshpubk sshaes sshsh512 import winutils puttygen.res tree234 LIBS
pterm : [X] UXTERM uxmisc misc ldisc settings pty uxsel BE_NONE uxstore

Просмотреть файл

@ -51,6 +51,7 @@ while (<IN>) {
if ($_[0] eq "!name") { $project_name = $_[1]; next; }
if ($_[0] eq "!srcdir") { push @srcdirs, $_[1]; next; }
if ($_[0] eq "!makefile" and &mfval($_[1])) { $makefiles{$_[1]}=$_[2]; next;}
if ($_[0] eq "!specialobj" and &mfval($_[1])) { $specialobj{$_[1]}->{$_[2]} = 1; next;}
if ($_[0] eq "!begin") {
if (&mfval($_[1])) {
$divert = \$makefile_extra{$_[1]};
@ -221,8 +222,14 @@ sub dirpfx {
my ($path) = shift @_;
my ($sep) = shift @_;
my $ret = "", $i;
while (($i = index $path, $sep) >= 0) {
$path = substr $path, ($i + length $sep);
while (($i = index $path, $sep) >= 0 ||
($j = index $path, "/") >= 0) {
if ($i >= 0 and ($j < 0 or $i < $j)) {
$path = substr $path, ($i + length $sep);
} else {
$path = substr $path, ($j + 1);
}
$ret .= "..$sep";
}
return $ret;
@ -278,12 +285,13 @@ sub splitline {
}
sub deps {
my ($otmpl, $rtmpl, $prefix, $dirsep, $depchar, $splitchar) = @_;
my ($otmpl, $rtmpl, $prefix, $dirsep, $mftyp, $depchar, $splitchar) = @_;
my ($i, $x, $y);
my @deps, @ret;
@ret = ();
$depchar ||= ':';
foreach $i (sort keys %depends) {
next if $specialobj{$mftyp}->{$i};
if ($i =~ /^(.*)\.(res|rsrc)/) {
next if !defined $rtmpl;
$y = $1;
@ -372,12 +380,6 @@ if (defined $makefiles{'cygwin'}) {
" --define WINVER=0x0400 --define MINGW32_FIX=1")."\n".
"\n".
".SUFFIXES:\n".
"\n".
"%.o: %.c\n".
"\t\$(CC) \$(COMPAT) \$(FWHACK) \$(XFLAGS) \$(CFLAGS) -c \$<\n".
"\n".
"%.res.o: %.rc\n".
"\t\$(RC) \$(FWHACK) \$(RCFL) \$(RCFLAGS) \$< \$\@\n".
"\n";
print &splitline("all:" . join "", map { " $_.exe" } &progrealnames("GC"));
print "\n\n";
@ -391,9 +393,14 @@ if (defined $makefiles{'cygwin'}) {
"-Wl,-Map,$prog.map " .
$objstr . " $libstr", 69), "\n\n";
}
foreach $d (&deps("X.o", "X.res.o", $dirpfx, "/")) {
foreach $d (&deps("X.o", "X.res.o", $dirpfx, "/", "cygwin")) {
print &splitline(sprintf("%s: %s", $d->{obj}, join " ", @{$d->{deps}})),
"\n";
if ($d->{obj} =~ /\.res\.o$/) {
print "\t\$(RC) \$(FWHACK) \$(RCFL) \$(RCFLAGS) ".$d->{deps}->[0]." ".$d->{obj}."\n\n";
} else {
print "\t\$(CC) \$(COMPAT) \$(FWHACK) \$(XFLAGS) \$(CFLAGS) -c ".$d->{deps}->[0]."\n\n";
}
}
print "\n";
print $makefile_extra{'cygwin'};
@ -488,7 +495,7 @@ if (defined $makefiles{'borland'}) {
print "\techo " . &objects($p, undef, "X.res", undef) . " >> $prog.rsp\n";
print "\n";
}
foreach $d (&deps("X.obj", "X.res", $dirpfx, "\\")) {
foreach $d (&deps("X.obj", "X.res", $dirpfx, "\\", "borland")) {
print &splitline(sprintf("%s: %s", $d->{obj}, join " ", @{$d->{deps}})),
"\n";
}
@ -525,13 +532,11 @@ if (defined $makefiles{'vc'}) {
"MAKEFILE = Makefile.vc\n".
"\n".
"# C compilation flags\n".
"CFLAGS = /nologo /W3 /O1 /D_WINDOWS /D_WIN32_WINDOWS=0x401 /DWINVER=0x401\n".
"CFLAGS = /nologo /W3 /O1 " .
(join " ", map {"-I$dirpfx$_"} @srcdirs) .
" /D_WINDOWS /D_WIN32_WINDOWS=0x401 /DWINVER=0x401\n".
"LFLAGS = /incremental:no /fixed\n".
"\n".
".c.obj:\n".
"\tcl \$(COMPAT) \$(FWHACK) \$(XFLAGS) \$(CFLAGS) /c \$*.c\n".
".rc.res:\n".
"\trc \$(FWHACK) \$(RCFL) -r -DWIN32 -D_WIN32 -DWINVER=0x0400 \$*.rc\n".
"\n";
print &splitline("all:" . join "", map { " $_.exe" } &progrealnames("GC"));
print "\n\n";
@ -560,9 +565,14 @@ if (defined $makefiles{'vc'}) {
}
print "\n";
}
foreach $d (&deps("X.obj", "X.res", $dirpfx, "\\")) {
foreach $d (&deps("X.obj", "X.res", $dirpfx, "\\", "vc")) {
print &splitline(sprintf("%s: %s", $d->{obj}, join " ", @{$d->{deps}})),
"\n";
if ($d->{obj} =~ /.obj$/) {
print "\tcl \$(COMPAT) \$(FWHACK) \$(XFLAGS) \$(CFLAGS) /c ".$d->{deps}->[0],"\n\n";
} else {
print "\trc \$(FWHACK) \$(RCFL) -r -DWIN32 -D_WIN32 -DWINVER=0x0400 ".$d->{deps}->[0],"\n\n";
}
}
print "\n";
print $makefile_extra{'vc'};
@ -588,6 +598,7 @@ if (defined $makefiles{'vc'}) {
}
if (defined $makefiles{'vcproj'}) {
$dirpfx = &dirpfx($makefiles{'vcproj'}, "\\");
$orig_dir = cwd;
@ -604,7 +615,7 @@ if (defined $makefiles{'vcproj'}) {
mkdir $makefiles{'vcproj'}
if(! -d $makefiles{'vcproj'});
chdir $makefiles{'vcproj'};
@deps = &deps("X.obj", "X.res", "", "\\");
@deps = &deps("X.obj", "X.res", $dirpfx, "\\", "vcproj");
%all_object_deps = map {$_->{obj} => $_->{deps}} @deps;
# Create the project files
# Get names of all Windows projects (GUI and console)
@ -739,8 +750,12 @@ if (defined $makefiles{'vcproj'}) {
"# PROP Intermediate_Dir \"Release\"\r\n".
"# PROP Ignore_Export_Lib 0\r\n".
"# PROP Target_Dir \"\"\r\n".
"# ADD BASE CPP /nologo /W3 /GX /O2 /D \"WIN32\" /D \"NDEBUG\" /D \"_WINDOWS\" /D \"_MBCS\" /YX /FD /c\r\n".
"# ADD CPP /nologo /W3 /GX /O2 /D \"WIN32\" /D \"NDEBUG\" /D \"_WINDOWS\" /D \"_MBCS\" /YX /FD /c\r\n".
"# ADD BASE CPP /nologo /W3 /GX /O2 ".
(join " ", map {"/I \"..\\..\\$dirpfx$_\""} @srcdirs) .
" /D \"WIN32\" /D \"NDEBUG\" /D \"_WINDOWS\" /D \"_MBCS\" /YX /FD /c\r\n".
"# ADD CPP /nologo /W3 /GX /O2 ".
(join " ", map {"/I \"..\\..\\$dirpfx$_\""} @srcdirs) .
" /D \"WIN32\" /D \"NDEBUG\" /D \"_WINDOWS\" /D \"_MBCS\" /YX /FD /c\r\n".
"# ADD BASE MTL /nologo /D \"NDEBUG\" /mktyplib203 /win32\r\n".
"# ADD MTL /nologo /D \"NDEBUG\" /mktyplib203 /win32\r\n".
"# ADD BASE RSC /l 0x809 /d \"NDEBUG\"\r\n".
@ -766,8 +781,12 @@ if (defined $makefiles{'vcproj'}) {
"# PROP Intermediate_Dir \"Debug\"\r\n".
"# PROP Ignore_Export_Lib 0\r\n".
"# PROP Target_Dir \"\"\r\n".
"# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D \"WIN32\" /D \"_DEBUG\" /D \"_WINDOWS\" /D \"_MBCS\" /YX /FD /GZ /c\r\n".
"# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D \"WIN32\" /D \"_DEBUG\" /D \"_WINDOWS\" /D \"_MBCS\" /YX /FD /GZ /c\r\n".
"# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od ".
(join " ", map {"/I \"..\\..\\$dirpfx$_\""} @srcdirs) .
" /D \"WIN32\" /D \"_DEBUG\" /D \"_WINDOWS\" /D \"_MBCS\" /YX /FD /GZ /c\r\n".
"# ADD CPP /nologo /W3 /Gm /GX /ZI /Od ".
(join " ", map {"/I \"..\\..\\$dirpfx$_\""} @srcdirs) .
" /D \"WIN32\" /D \"_DEBUG\" /D \"_WINDOWS\" /D \"_MBCS\" /YX /FD /GZ /c\r\n".
"# ADD BASE MTL /nologo /D \"_DEBUG\" /mktyplib203 /win32\r\n".
"# ADD MTL /nologo /D \"_DEBUG\" /mktyplib203 /win32\r\n".
"# ADD BASE RSC /l 0x809 /d \"_DEBUG\"\r\n".
@ -889,7 +908,7 @@ if (defined $makefiles{'gtk'}) {
print &splitline("\t\$(CC)" . $mw . " \$(${type}LDFLAGS) -o \$@ " .
$objstr . " $libstr", 69), "\n\n";
}
foreach $d (&deps("X.o", undef, $dirpfx, "/")) {
foreach $d (&deps("X.o", undef, $dirpfx, "/", "gtk")) {
print &splitline(sprintf("%s: %s", $d->{obj}, join " ", @{$d->{deps}})),
"\n";
}
@ -1008,14 +1027,14 @@ if (defined $makefiles{'mpw'}) {
}
}
foreach $d (&deps("", "X.rsrc", "::", ":")) {
foreach $d (&deps("", "X.rsrc", "::", ":", "mpw")) {
next unless $d->{obj};
print &splitline(sprintf("%s \xc4 %s", $d->{obj}, join " ", @{$d->{deps}}),
undef, "\xb6"), "\n";
print "\tRez ", $d->{deps}->[0], " -o {Targ} {ROptions}\n\n";
}
foreach $arch (qw(68K CFM68K)) {
foreach $d (&deps("X.\L$arch\E.o", "", "::", ":")) {
foreach $d (&deps("X.\L$arch\E.o", "", "::", ":", "mpw")) {
next unless $d->{obj};
print &splitline(sprintf("%s \xc4 %s", $d->{obj},
join " ", @{$d->{deps}}),
@ -1025,7 +1044,7 @@ if (defined $makefiles{'mpw'}) {
}
}
foreach $arch (qw(PPC Carbon)) {
foreach $d (&deps("X.\L$arch\E.o", "", "::", ":")) {
foreach $d (&deps("X.\L$arch\E.o", "", "::", ":", "mpw")) {
next unless $d->{obj};
print &splitline(sprintf("%s \xc4 %s", $d->{obj},
join " ", @{$d->{deps}}),
@ -1064,12 +1083,6 @@ if (defined $makefiles{'lcc'}) {
"\n".
"\n".
"# Get include directory for resource compiler\n".
"\n".
".c.obj:\n".
&splitline("\tlcc -O -p6 \$(COMPAT) \$(FWHACK)".
" \$(XFLAGS) \$(CFLAGS) \$*.c",69)."\n".
".rc.res:\n".
&splitline("\tlrc \$(FWHACK) \$(RCFL) -r \$*.rc",69)."\n".
"\n";
print &splitline("all:" . join "", map { " $_.exe" } &progrealnames("GC"));
print "\n\n";
@ -1084,9 +1097,15 @@ if (defined $makefiles{'lcc'}) {
print "\n\n";
}
foreach $d (&deps("X.obj", "X.res", $dirpfx, "\\")) {
foreach $d (&deps("X.obj", "X.res", $dirpfx, "\\", "lcc")) {
print &splitline(sprintf("%s: %s", $d->{obj}, join " ", @{$d->{deps}})),
"\n";
if ($d->{obj} =~ /\.obj$/) {
print &splitline("\tlcc -O -p6 \$(COMPAT) \$(FWHACK)".
" \$(XFLAGS) \$(CFLAGS) ".$d->{deps}->[0],69)."\n";
} else {
print &splitline("\tlrc \$(FWHACK) \$(RCFL) -r ".$d->{deps}->[0],69)."\n";
}
}
print "\n";
print $makefile_extra{'lcc'};

Двоичные данные
website.url

Двоичный файл не отображается.

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.1 KiB

После

Ширина:  |  Высота:  |  Размер: 1.1 KiB

Просмотреть файл

Просмотреть файл

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 318 B

После

Ширина:  |  Высота:  |  Размер: 318 B

Просмотреть файл

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 3.2 KiB

После

Ширина:  |  Высота:  |  Размер: 3.2 KiB

Просмотреть файл

@ -1,62 +1,62 @@
; -*- no -*-
; putty.iss
;
; -- Inno Setup installer script for PuTTY and its related tools.
;
; TODO for future releases:
;
; - It would be neighbourly to set up an [UninstallRun] entry that ran
; some close cousin of `putty -cleanup', only it should prompt first
; in case the user wants to keep stuff. And make the `leave it alone'
; button the DEFAULT. And perhaps warn that on NT-style systems not
; everything will be caught by this.
;
; - The Quick Launch bar is an interesting thought. Certainly a fair
; number of people actually _believe_ my silly joke about how PuTTY
; is the only thing that makes Windows usable, so perhaps they'd like
; that. Unchecked by default, though, I think.
; * does this need to be conditional on the Windows version?
[Setup]
AppName=PuTTY
AppVerName=PuTTY version 0.56
DefaultDirName={pf}\PuTTY
DefaultGroupName=PuTTY
UninstallDisplayIcon={app}\putty.exe
ChangesAssociations=yes
Compression=zip/9
[Files]
Source: "putty.exe"; DestDir: "{app}"
Source: "pageant.exe"; DestDir: "{app}"
Source: "puttygen.exe"; DestDir: "{app}"
Source: "pscp.exe"; DestDir: "{app}"
Source: "psftp.exe"; DestDir: "{app}"
Source: "plink.exe"; DestDir: "{app}"
Source: "website.url"; DestDir: "{app}"
Source: "doc\putty.hlp"; DestDir: "{app}"
Source: "doc\putty.cnt"; DestDir: "{app}"
Source: "LICENCE"; DestDir: "{app}"
Source: "README.txt"; DestDir: "{app}"; Flags: isreadme
[Icons]
Name: "{group}\PuTTY"; Filename: "{app}\putty.exe"; Tasks: startmenu
Name: "{group}\PuTTY Manual"; Filename: "{app}\putty.hlp"; Tasks: startmenu
Name: "{group}\PuTTY Web Site"; Filename: "{app}\website.url"; Tasks: startmenu
Name: "{group}\PSFTP"; Filename: "{app}\psftp.exe"; Tasks: startmenu
Name: "{group}\PuTTYgen"; Filename: "{app}\puttygen.exe"; Tasks: startmenu
Name: "{group}\Pageant"; Filename: "{app}\pageant.exe"; Tasks: startmenu
Name: "{userdesktop}\PuTTY"; Filename: "{app}\putty.exe"; Tasks: desktopicon
[Tasks]
Name: startmenu; Description: "Create a &Start Menu group"
Name: desktopicon; Description: "Create a &desktop icon for PuTTY"
Name: associate; Description: "&Associate .PPK files (PuTTY Private Key) with Pageant"
[Registry]
Root: HKCR; Subkey: ".ppk"; ValueType: string; ValueName: ""; ValueData: "PuTTYPrivateKey"; Flags: uninsdeletevalue; Tasks: associate
Root: HKCR; Subkey: "PuTTYPrivateKey"; ValueType: string; ValueName: ""; ValueData: "PuTTY Private Key File"; Flags: uninsdeletekey; Tasks: associate
Root: HKCR; Subkey: "PuTTYPrivateKey\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\pageant.exe,0"; Tasks: associate
Root: HKCR; Subkey: "PuTTYPrivateKey\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\pageant.exe"" ""%1"""; Tasks: associate
Root: HKCR; Subkey: "PuTTYPrivateKey\shell\edit"; ValueType: string; ValueName: ""; ValueData: "&Edit"; Tasks: associate
Root: HKCR; Subkey: "PuTTYPrivateKey\shell\edit\command"; ValueType: string; ValueName: ""; ValueData: """{app}\puttygen.exe"" ""%1"""; Tasks: associate
; -*- no -*-
; putty.iss
;
; -- Inno Setup installer script for PuTTY and its related tools.
;
; TODO for future releases:
;
; - It would be neighbourly to set up an [UninstallRun] entry that ran
; some close cousin of `putty -cleanup', only it should prompt first
; in case the user wants to keep stuff. And make the `leave it alone'
; button the DEFAULT. And perhaps warn that on NT-style systems not
; everything will be caught by this.
;
; - The Quick Launch bar is an interesting thought. Certainly a fair
; number of people actually _believe_ my silly joke about how PuTTY
; is the only thing that makes Windows usable, so perhaps they'd like
; that. Unchecked by default, though, I think.
; * does this need to be conditional on the Windows version?
[Setup]
AppName=PuTTY
AppVerName=PuTTY version 0.56
DefaultDirName={pf}\PuTTY
DefaultGroupName=PuTTY
UninstallDisplayIcon={app}\putty.exe
ChangesAssociations=yes
Compression=zip/9
[Files]
Source: "putty.exe"; DestDir: "{app}"
Source: "pageant.exe"; DestDir: "{app}"
Source: "puttygen.exe"; DestDir: "{app}"
Source: "pscp.exe"; DestDir: "{app}"
Source: "psftp.exe"; DestDir: "{app}"
Source: "plink.exe"; DestDir: "{app}"
Source: "website.url"; DestDir: "{app}"
Source: "doc\putty.hlp"; DestDir: "{app}"
Source: "doc\putty.cnt"; DestDir: "{app}"
Source: "LICENCE"; DestDir: "{app}"
Source: "README.txt"; DestDir: "{app}"; Flags: isreadme
[Icons]
Name: "{group}\PuTTY"; Filename: "{app}\putty.exe"; Tasks: startmenu
Name: "{group}\PuTTY Manual"; Filename: "{app}\putty.hlp"; Tasks: startmenu
Name: "{group}\PuTTY Web Site"; Filename: "{app}\website.url"; Tasks: startmenu
Name: "{group}\PSFTP"; Filename: "{app}\psftp.exe"; Tasks: startmenu
Name: "{group}\PuTTYgen"; Filename: "{app}\puttygen.exe"; Tasks: startmenu
Name: "{group}\Pageant"; Filename: "{app}\pageant.exe"; Tasks: startmenu
Name: "{userdesktop}\PuTTY"; Filename: "{app}\putty.exe"; Tasks: desktopicon
[Tasks]
Name: startmenu; Description: "Create a &Start Menu group"
Name: desktopicon; Description: "Create a &desktop icon for PuTTY"
Name: associate; Description: "&Associate .PPK files (PuTTY Private Key) with Pageant"
[Registry]
Root: HKCR; Subkey: ".ppk"; ValueType: string; ValueName: ""; ValueData: "PuTTYPrivateKey"; Flags: uninsdeletevalue; Tasks: associate
Root: HKCR; Subkey: "PuTTYPrivateKey"; ValueType: string; ValueName: ""; ValueData: "PuTTY Private Key File"; Flags: uninsdeletekey; Tasks: associate
Root: HKCR; Subkey: "PuTTYPrivateKey\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\pageant.exe,0"; Tasks: associate
Root: HKCR; Subkey: "PuTTYPrivateKey\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\pageant.exe"" ""%1"""; Tasks: associate
Root: HKCR; Subkey: "PuTTYPrivateKey\shell\edit"; ValueType: string; ValueName: ""; ValueData: "&Edit"; Tasks: associate
Root: HKCR; Subkey: "PuTTYPrivateKey\shell\edit\command"; ValueType: string; ValueName: ""; ValueData: """{app}\puttygen.exe"" ""%1"""; Tasks: associate

Просмотреть файл

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 3.2 KiB

После

Ширина:  |  Высота:  |  Размер: 3.2 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 766 B

После

Ширина:  |  Высота:  |  Размер: 766 B

Просмотреть файл

Просмотреть файл

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.1 KiB

После

Ширина:  |  Высота:  |  Размер: 1.1 KiB

Просмотреть файл

Просмотреть файл

Двоичные данные
windows/website.url Normal file

Двоичный файл не отображается.

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл