mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-25 01:02:24 +00:00
Added saved sessions submenu from system menu.
[originally from svn r263]
This commit is contained in:
parent
a019c66786
commit
9fc2b746b0
4
putty.h
4
putty.h
@ -182,6 +182,10 @@ void lognegot (char *);
|
||||
void shownegot (HWND);
|
||||
void showabout (HWND);
|
||||
void verify_ssh_host_key(char *host, struct RSAKey *key);
|
||||
void get_sesslist(int allocate);
|
||||
|
||||
int nsessions;
|
||||
char **sessions;
|
||||
|
||||
/*
|
||||
* Exports from terminal.c.
|
||||
|
7
windlg.c
7
windlg.c
@ -15,8 +15,6 @@
|
||||
|
||||
static const char *const puttystr = PUTTY_REG_POS "\\Sessions";
|
||||
|
||||
static void get_sesslist(int allocate);
|
||||
|
||||
static char **negots = NULL;
|
||||
static int nnegots = 0, negsize = 0;
|
||||
static HWND logbox = NULL, abtbox = NULL;
|
||||
@ -95,9 +93,6 @@ static void gppi(HKEY key, LPCTSTR name, int def, int *i) {
|
||||
|
||||
static HINSTANCE hinst;
|
||||
|
||||
static char **sessions;
|
||||
static int nsessions;
|
||||
|
||||
static int readytogo;
|
||||
|
||||
static void save_settings (char *section, int do_host) {
|
||||
@ -1225,7 +1220,7 @@ static int CALLBACK ReconfDlgProc (HWND hwnd, UINT msg,
|
||||
RECONF_NPANELS, reconfp, &page);
|
||||
}
|
||||
|
||||
static void get_sesslist(int allocate) {
|
||||
void get_sesslist(int allocate) {
|
||||
static char *buffer;
|
||||
int buflen, bufsize, i, ret;
|
||||
char otherbuf[2048];
|
||||
|
24
window.c
24
window.c
@ -28,6 +28,10 @@
|
||||
#define IDM_TEL_EOR 518
|
||||
#define IDM_TEL_EOF 519
|
||||
#define IDM_ABOUT 520
|
||||
#define IDM_SAVEDSESS 521
|
||||
|
||||
#define IDM_SAVED_MIN 4096
|
||||
#define IDM_SAVED_MAX 8192
|
||||
|
||||
#define WM_IGNORE_SIZE (WM_USER + 2)
|
||||
#define WM_IGNORE_CLIP (WM_USER + 3)
|
||||
@ -311,7 +315,8 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show) {
|
||||
*/
|
||||
{
|
||||
HMENU m = GetSystemMenu (hwnd, FALSE);
|
||||
HMENU p;
|
||||
HMENU p,s;
|
||||
int i;
|
||||
|
||||
AppendMenu (m, MF_SEPARATOR, 0, 0);
|
||||
if (cfg.protocol == PROT_TELNET) {
|
||||
@ -338,6 +343,11 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show) {
|
||||
}
|
||||
AppendMenu (m, MF_ENABLED, IDM_NEWSESS, "New Session");
|
||||
AppendMenu (m, MF_ENABLED, IDM_DUPSESS, "Duplicate Session");
|
||||
s = CreateMenu();
|
||||
get_sesslist(TRUE);
|
||||
for (i = 1 ; i < ((nsessions < 256) ? nsessions : 256) ; i++)
|
||||
AppendMenu (s, MF_ENABLED, IDM_SAVED_MIN + (16 * i) , sessions[i]);
|
||||
AppendMenu (m, MF_POPUP | MF_ENABLED, (UINT) s, "Saved Sessions");
|
||||
AppendMenu (m, MF_ENABLED, IDM_RECONF, "Change Settings");
|
||||
AppendMenu (m, MF_SEPARATOR, 0, 0);
|
||||
AppendMenu (m, MF_ENABLED, IDM_CLRSB, "Clear Scrollback");
|
||||
@ -605,13 +615,14 @@ static int WINAPI WndProc (HWND hwnd, UINT message,
|
||||
case WM_DESTROY:
|
||||
PostQuitMessage (0);
|
||||
return 0;
|
||||
case WM_SYSCOMMAND:
|
||||
case WM_SYSCOMMAND:
|
||||
switch (wParam) {
|
||||
case IDM_SHOWLOG:
|
||||
shownegot(hwnd);
|
||||
break;
|
||||
case IDM_NEWSESS:
|
||||
case IDM_DUPSESS:
|
||||
case IDM_SAVEDSESS:
|
||||
{
|
||||
char b[2048];
|
||||
char c[30], *cl;
|
||||
@ -647,8 +658,11 @@ static int WINAPI WndProc (HWND hwnd, UINT message,
|
||||
}
|
||||
sprintf(c, "putty &%08x", filemap);
|
||||
cl = c;
|
||||
} else if (wParam == IDM_SAVEDSESS) {
|
||||
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);
|
||||
@ -719,6 +733,10 @@ static int WINAPI WndProc (HWND hwnd, UINT message,
|
||||
case IDM_ABOUT:
|
||||
showabout (hwnd);
|
||||
break;
|
||||
default:
|
||||
if (wParam >= IDM_SAVED_MIN && wParam <= IDM_SAVED_MAX) {
|
||||
SendMessage(hwnd, WM_SYSCOMMAND, IDM_SAVEDSESS, wParam);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user