mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-03-22 06:38:37 -05: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 shownegot (HWND);
|
||||||
void showabout (HWND);
|
void showabout (HWND);
|
||||||
void verify_ssh_host_key(char *host, struct RSAKey *key);
|
void verify_ssh_host_key(char *host, struct RSAKey *key);
|
||||||
|
void get_sesslist(int allocate);
|
||||||
|
|
||||||
|
int nsessions;
|
||||||
|
char **sessions;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Exports from terminal.c.
|
* Exports from terminal.c.
|
||||||
|
7
windlg.c
7
windlg.c
@ -15,8 +15,6 @@
|
|||||||
|
|
||||||
static const char *const puttystr = PUTTY_REG_POS "\\Sessions";
|
static const char *const puttystr = PUTTY_REG_POS "\\Sessions";
|
||||||
|
|
||||||
static void get_sesslist(int allocate);
|
|
||||||
|
|
||||||
static char **negots = NULL;
|
static char **negots = NULL;
|
||||||
static int nnegots = 0, negsize = 0;
|
static int nnegots = 0, negsize = 0;
|
||||||
static HWND logbox = NULL, abtbox = NULL;
|
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 HINSTANCE hinst;
|
||||||
|
|
||||||
static char **sessions;
|
|
||||||
static int nsessions;
|
|
||||||
|
|
||||||
static int readytogo;
|
static int readytogo;
|
||||||
|
|
||||||
static void save_settings (char *section, int do_host) {
|
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);
|
RECONF_NPANELS, reconfp, &page);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void get_sesslist(int allocate) {
|
void get_sesslist(int allocate) {
|
||||||
static char *buffer;
|
static char *buffer;
|
||||||
int buflen, bufsize, i, ret;
|
int buflen, bufsize, i, ret;
|
||||||
char otherbuf[2048];
|
char otherbuf[2048];
|
||||||
|
24
window.c
24
window.c
@ -28,6 +28,10 @@
|
|||||||
#define IDM_TEL_EOR 518
|
#define IDM_TEL_EOR 518
|
||||||
#define IDM_TEL_EOF 519
|
#define IDM_TEL_EOF 519
|
||||||
#define IDM_ABOUT 520
|
#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_SIZE (WM_USER + 2)
|
||||||
#define WM_IGNORE_CLIP (WM_USER + 3)
|
#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 m = GetSystemMenu (hwnd, FALSE);
|
||||||
HMENU p;
|
HMENU p,s;
|
||||||
|
int i;
|
||||||
|
|
||||||
AppendMenu (m, MF_SEPARATOR, 0, 0);
|
AppendMenu (m, MF_SEPARATOR, 0, 0);
|
||||||
if (cfg.protocol == PROT_TELNET) {
|
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_NEWSESS, "New Session");
|
||||||
AppendMenu (m, MF_ENABLED, IDM_DUPSESS, "Duplicate 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_ENABLED, IDM_RECONF, "Change Settings");
|
||||||
AppendMenu (m, MF_SEPARATOR, 0, 0);
|
AppendMenu (m, MF_SEPARATOR, 0, 0);
|
||||||
AppendMenu (m, MF_ENABLED, IDM_CLRSB, "Clear Scrollback");
|
AppendMenu (m, MF_ENABLED, IDM_CLRSB, "Clear Scrollback");
|
||||||
@ -605,13 +615,14 @@ static int WINAPI WndProc (HWND hwnd, UINT message,
|
|||||||
case WM_DESTROY:
|
case WM_DESTROY:
|
||||||
PostQuitMessage (0);
|
PostQuitMessage (0);
|
||||||
return 0;
|
return 0;
|
||||||
case WM_SYSCOMMAND:
|
case WM_SYSCOMMAND:
|
||||||
switch (wParam) {
|
switch (wParam) {
|
||||||
case IDM_SHOWLOG:
|
case IDM_SHOWLOG:
|
||||||
shownegot(hwnd);
|
shownegot(hwnd);
|
||||||
break;
|
break;
|
||||||
case IDM_NEWSESS:
|
case IDM_NEWSESS:
|
||||||
case IDM_DUPSESS:
|
case IDM_DUPSESS:
|
||||||
|
case IDM_SAVEDSESS:
|
||||||
{
|
{
|
||||||
char b[2048];
|
char b[2048];
|
||||||
char c[30], *cl;
|
char c[30], *cl;
|
||||||
@ -647,8 +658,11 @@ static int WINAPI WndProc (HWND hwnd, UINT message,
|
|||||||
}
|
}
|
||||||
sprintf(c, "putty &%08x", filemap);
|
sprintf(c, "putty &%08x", filemap);
|
||||||
cl = c;
|
cl = c;
|
||||||
|
} else if (wParam == IDM_SAVEDSESS) {
|
||||||
|
sprintf(c, "putty @%s", sessions[(lParam - IDM_SAVED_MIN) / 16]);
|
||||||
|
cl = c;
|
||||||
} else
|
} else
|
||||||
cl = NULL;
|
cl = NULL;
|
||||||
|
|
||||||
GetModuleFileName (NULL, b, sizeof(b)-1);
|
GetModuleFileName (NULL, b, sizeof(b)-1);
|
||||||
si.cb = sizeof(si);
|
si.cb = sizeof(si);
|
||||||
@ -719,6 +733,10 @@ static int WINAPI WndProc (HWND hwnd, UINT message,
|
|||||||
case IDM_ABOUT:
|
case IDM_ABOUT:
|
||||||
showabout (hwnd);
|
showabout (hwnd);
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
if (wParam >= IDM_SAVED_MIN && wParam <= IDM_SAVED_MAX) {
|
||||||
|
SendMessage(hwnd, WM_SYSCOMMAND, IDM_SAVEDSESS, wParam);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user