#include <winsock.h>
#include <stdio.h>
#include <stdlib.h>
+#include <ctype.h>
#define PUTTY_DO_GLOBALS /* actually _define_ globals */
#include "putty.h"
tolower(p[2]) == 'h') {
default_protocol = cfg.protocol = PROT_SSH;
default_port = cfg.port = 22;
+ } else if (q == p + 3 &&
+ tolower(p[0]) == 'l' &&
+ tolower(p[1]) == 'o' &&
+ tolower(p[2]) == 'g') {
+ logfile = "putty.log";
}
p = q + strspn(q, " \t");
}
*/
HANDLE filemap;
Config *cp;
- if (sscanf(p+1, "%x", &filemap) == 1 &&
+ if (sscanf(p+1, "%p", &filemap) == 1 &&
(cp = MapViewOfFile(filemap, FILE_MAP_READ,
0, 0, sizeof(Config))) != NULL) {
cfg = *cp;
inbuf_reap = inbuf_head = 0;
outbuf_reap = outbuf_head = 0;
+ /*
+ * Choose unscroll method
+ */
+ unscroll_event = US_DISP;
+
/*
* Prepare the mouse handler.
*/
AppendMenu (m, MF_POPUP | MF_ENABLED, (UINT) p, "Telnet Command");
AppendMenu (m, MF_SEPARATOR, 0, 0);
}
- AppendMenu (m, MF_ENABLED, IDM_SHOWLOG, "Event Log");
+ AppendMenu (m, MF_ENABLED, IDM_SHOWLOG, "&Event Log");
AppendMenu (m, MF_SEPARATOR, 0, 0);
- AppendMenu (m, MF_ENABLED, IDM_NEWSESS, "New Session");
- AppendMenu (m, MF_ENABLED, IDM_DUPSESS, "Duplicate Session");
+ AppendMenu (m, MF_ENABLED, IDM_NEWSESS, "Ne&w 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_POPUP | MF_ENABLED, (UINT) s, "Sa&ved Sessions");
+ AppendMenu (m, MF_ENABLED, IDM_RECONF, "Chan&ge Settings");
AppendMenu (m, MF_SEPARATOR, 0, 0);
- AppendMenu (m, MF_ENABLED, IDM_CLRSB, "Clear Scrollback");
- AppendMenu (m, MF_ENABLED, IDM_RESET, "Reset Terminal");
+ AppendMenu (m, MF_ENABLED, IDM_CLRSB, "C&lear Scrollback");
+ AppendMenu (m, MF_ENABLED, IDM_RESET, "Rese&t Terminal");
AppendMenu (m, MF_SEPARATOR, 0, 0);
- AppendMenu (m, MF_ENABLED, IDM_ABOUT, "About PuTTY");
+ AppendMenu (m, MF_ENABLED, IDM_ABOUT, "&About PuTTY");
}
/*
UnmapViewOfFile(p);
}
}
- sprintf(c, "putty &%08x", filemap);
+ sprintf(c, "putty &%p", filemap);
cl = c;
} else if (wParam == IDM_SAVEDSESS) {
char *session = sessions[(lParam - IDM_SAVED_MIN) / 16];
cl = malloc(16 + strlen(session)); /* 8, but play safe */
if (!cl)
cl = NULL; /* not a very important failure mode */
- sprintf(cl, "putty @%s", session);
- freecl = TRUE;
+ else {
+ sprintf(cl, "putty @%s", session);
+ freecl = TRUE;
+ }
} else
cl = NULL;
*/
ret = GetKeyboardState(keystate);
+ /*
+ * Record that we pressed key so the scroll window can be reset, but
+ * be careful to avoid Shift-UP/Down
+ */
+ if( wParam != VK_SHIFT && wParam != VK_PRIOR && wParam != VK_NEXT ) {
+ seen_key_event = 1;
+ }
+
/*
* Windows does not always want to distinguish left and right
* Alt or Control keys. Thus we keep track of them ourselves.