1
0
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:
Owen Dunn 1999-10-28 16:07:25 +00:00
parent a019c66786
commit 9fc2b746b0
3 changed files with 26 additions and 9 deletions

View File

@ -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.

View File

@ -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];

View File

@ -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;