| ︙ | | | ︙ | |
313
314
315
316
317
318
319
320
321
322
323
324
325
326
|
}
}
int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show)
{
WNDCLASS wndclass;
MSG msg;
int guess_width, guess_height;
hinst = inst;
hwnd = NULL;
flags = FLAG_VERBOSE | FLAG_INTERACTIVE;
sk_init();
|
>
|
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
|
}
}
int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show)
{
WNDCLASS wndclass;
MSG msg;
HRESULT hr;
int guess_width, guess_height;
hinst = inst;
hwnd = NULL;
flags = FLAG_VERBOSE | FLAG_INTERACTIVE;
sk_init();
|
| ︙ | | | ︙ | |
349
350
351
352
353
354
355
356
357
358
359
360
361
362
|
(osVersion.dwMajorVersion == 4 &&
osVersion.dwPlatformId != VER_PLATFORM_WIN32_NT))
wm_mousewheel = RegisterWindowMessage("MSWHEEL_ROLLMSG");
init_help();
init_flashwindow();
/*
* Process the command line.
*/
{
char *p;
int got_host = 0;
|
>
>
>
>
>
>
>
>
>
>
>
>
|
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
|
(osVersion.dwMajorVersion == 4 &&
osVersion.dwPlatformId != VER_PLATFORM_WIN32_NT))
wm_mousewheel = RegisterWindowMessage("MSWHEEL_ROLLMSG");
init_help();
init_flashwindow();
/*
* Initialize COM.
*/
hr = CoInitialize(NULL);
if (hr != S_OK && hr != S_FALSE) {
char *str = dupprintf("%s Fatal Error", appname);
MessageBox(NULL, "Failed to initialize COM subsystem",
str, MB_OK | MB_ICONEXCLAMATION);
sfree(str);
return 1;
}
/*
* Process the command line.
*/
{
char *p;
int got_host = 0;
|
| ︙ | | | ︙ | |
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
|
do_defaults(NULL, &cfg);
p = cmdline;
/*
* Process a couple of command-line options which are more
* easily dealt with before the line is broken up into
* words. These are the soon-to-be-defunct @sessionname and
* the internal-use-only &sharedmemoryhandle, neither of
* which are combined with anything else.
*/
while (*p && isspace(*p))
p++;
if (*p == '@') {
int i = strlen(p);
while (i > 1 && isspace(p[i - 1]))
i--;
p[i] = '\0';
do_defaults(p + 1, &cfg);
if (!cfg_launchable(&cfg) && !do_config()) {
cleanup_exit(0);
|
|
|
|
|
>
>
>
>
>
>
>
|
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
|
do_defaults(NULL, &cfg);
p = cmdline;
/*
* Process a couple of command-line options which are more
* easily dealt with before the line is broken up into words.
* These are the old-fashioned but convenient @sessionname and
* the internal-use-only &sharedmemoryhandle, neither of which
* are combined with anything else.
*/
while (*p && isspace(*p))
p++;
if (*p == '@') {
/*
* An initial @ means that the whole of the rest of the
* command line should be treated as the name of a saved
* session, with _no quoting or escaping_. This makes it a
* very convenient means of automated saved-session
* launching, via IDM_SAVEDSESS or Windows 7 jump lists.
*/
int i = strlen(p);
while (i > 1 && isspace(p[i - 1]))
i--;
p[i] = '\0';
do_defaults(p + 1, &cfg);
if (!cfg_launchable(&cfg) && !do_config()) {
cleanup_exit(0);
|
| ︙ | | | ︙ | |
862
863
864
865
866
867
868
869
870
871
872
873
874
875
|
if (cfg.protocol == PROT_SSH) {
random_save_seed();
#ifdef MSCRYPTOAPI
crypto_wrapup();
#endif
}
shutdown_help();
exit(code);
}
/*
* Set up, or shut down, an AsyncSelect. Called from winnet.c.
*/
|
>
>
>
|
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
|
if (cfg.protocol == PROT_SSH) {
random_save_seed();
#ifdef MSCRYPTOAPI
crypto_wrapup();
#endif
}
shutdown_help();
/* Clean up COM. */
CoUninitialize();
exit(code);
}
/*
* Set up, or shut down, an AsyncSelect. Called from winnet.c.
*/
|
| ︙ | | | ︙ | |
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
|
sprintf(c, "putty &%p", filemap);
cl = c;
} else if (wParam == IDM_SAVEDSESS) {
unsigned int sessno = ((lParam - IDM_SAVED_MIN)
/ MENU_SAVED_STEP) + 1;
if (sessno < (unsigned)sesslist.nsessions) {
char *session = sesslist.sessions[sessno];
/* XXX spaces? quotes? "-load"? */
cl = dupprintf("putty @%s", session);
inherit_handles = FALSE;
freecl = TRUE;
} else
break;
} else /* IDM_NEWSESS */ {
cl = NULL;
|
<
|
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
|
sprintf(c, "putty &%p", filemap);
cl = c;
} else if (wParam == IDM_SAVEDSESS) {
unsigned int sessno = ((lParam - IDM_SAVED_MIN)
/ MENU_SAVED_STEP) + 1;
if (sessno < (unsigned)sesslist.nsessions) {
char *session = sesslist.sessions[sessno];
cl = dupprintf("putty @%s", session);
inherit_handles = FALSE;
freecl = TRUE;
} else
break;
} else /* IDM_NEWSESS */ {
cl = NULL;
|
| ︙ | | | ︙ | |