1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
|
#include <windows.h>
#include <commctrl.h>
#include <winsock.h>
#include <stdio.h>
#include <stdlib.h>
#define PUTTY_DO_GLOBALS /* actually _define_ globals */
#include "putty.h"
#include "win_res.h"
#define IDM_SHOWLOG 501
#define IDM_NEWSESS 502
#define IDM_DUPSESS 503
#define IDM_RECONF 504
#define IDM_CLRSB 505
#define IDM_RESET 506
#define IDM_TEL_AYT 507
#define IDM_TEL_BRK 508
#define IDM_TEL_SYNCH 509
#define IDM_TEL_EC 510
#define IDM_TEL_EL 511
#define IDM_TEL_GA 512
#define IDM_TEL_NOP 513
#define IDM_TEL_ABORT 514
#define IDM_TEL_AO 515
#define IDM_TEL_IP 516
#define IDM_TEL_SUSP 517
#define IDM_TEL_EOR 518
#define IDM_TEL_EOF 519
#define IDM_ABOUT 520
#define IDM_SAVEDSESS 521
#define IDM_SHOWLOG 0x0010
#define IDM_NEWSESS 0x0020
#define IDM_DUPSESS 0x0030
#define IDM_RECONF 0x0040
#define IDM_CLRSB 0x0050
#define IDM_RESET 0x0060
#define IDM_TEL_AYT 0x0070
#define IDM_TEL_BRK 0x0080
#define IDM_TEL_SYNCH 0x0090
#define IDM_TEL_EC 0x00a0
#define IDM_TEL_EL 0x00b0
#define IDM_TEL_GA 0x00c0
#define IDM_TEL_NOP 0x00d0
#define IDM_TEL_ABORT 0x00e0
#define IDM_TEL_AO 0x00f0
#define IDM_TEL_IP 0x0100
#define IDM_TEL_SUSP 0x0110
#define IDM_TEL_EOR 0x0120
#define IDM_TEL_EOF 0x0130
#define IDM_ABOUT 0x0140
#define IDM_SAVEDSESS 0x0150
#define IDM_SAVED_MIN 4096
#define IDM_SAVED_MAX 8192
#define IDM_SAVED_MIN 0x1000
#define IDM_SAVED_MAX 0x2000
#define WM_IGNORE_SIZE (WM_USER + 2)
#define WM_IGNORE_CLIP (WM_USER + 3)
static int WINAPI WndProc (HWND, UINT, WPARAM, LPARAM);
static int TranslateKey(WPARAM wParam, LPARAM lParam, unsigned char *output);
static void cfgtopalette(void);
|
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
|
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
|
-
-
+
+
-
+
|
switch (message) {
case WM_CREATE:
break;
case WM_DESTROY:
PostQuitMessage (0);
return 0;
case WM_SYSCOMMAND:
switch (wParam) {
case WM_SYSCOMMAND:
switch (wParam & ~0xF) { /* low 4 bits reserved to Windows */
case IDM_SHOWLOG:
shownegot(hwnd);
break;
case IDM_NEWSESS:
case IDM_DUPSESS:
case IDM_SAVEDSESS:
case IDM_SAVEDSESS:
{
char b[2048];
char c[30], *cl;
STARTUPINFO si;
PROCESS_INFORMATION pi;
HANDLE filemap = NULL;
|
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
|
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
|
-
-
+
+
+
-
+
|
*p = cfg; /* structure copy */
UnmapViewOfFile(p);
}
}
sprintf(c, "putty &%08x", filemap);
cl = c;
} else if (wParam == IDM_SAVEDSESS) {
sprintf(c, "putty @%s", sessions[(lParam - IDM_SAVED_MIN) / 16]);
cl = c;
sprintf(c, "putty @%s",
sessions[(lParam - IDM_SAVED_MIN) / 16]);
cl = c;
} else
cl = NULL;
cl = NULL;
GetModuleFileName (NULL, b, sizeof(b)-1);
si.cb = sizeof(si);
si.lpReserved = NULL;
si.lpDesktop = NULL;
si.lpTitle = NULL;
si.dwFlags = 0;
|