1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
#include "putty.h"
#include "storage.h"
const unsigned cmdline_tooltype =
TOOLTYPE_NONNETWORK |
TOOLTYPE_NO_VERBOSE_OPTION;
void gui_term_process_cmdline(Conf *conf, char *cmdline)
{
do_defaults(NULL, conf);
conf_set_str(conf, CONF_remote_cmd, "");
cmdline = handle_restrict_acl_cmdline_prefix(cmdline);
if (handle_special_sessionname_cmdline(cmdline, conf) ||
handle_special_filemapping_cmdline(cmdline, conf))
return;
int argc;
char **argv, **argstart;
split_into_argv(cmdline, &argc, &argv, &argstart);
for (int i = 0; i < argc; i++) {
char *arg = argv[i];
int retd = cmdline_process_param(
arg, i+1<argc?argv[i+1]:NULL, 1, conf);
if (retd == -2) {
cmdline_error("option \"%s\" requires an argument", arg);
} else if (retd == 2) {
i++; /* skip next argument */
} else if (retd == 1) {
continue; /* nothing further needs doing */
} else if (!strcmp(arg, "-e")) {
if (i+1 < argc) {
/* The command to execute is taken to be the unparsed
* version of the whole remainder of the command line. */
conf_set_str(conf, CONF_remote_cmd, argstart[i+1]);
return;
} else {
cmdline_error("option \"%s\" requires an argument", arg);
}
} else if (arg[0] == '-') {
cmdline_error("unrecognised option \"%s\"", arg);
} else {
cmdline_error("unexpected non-option argument \"%s\"", arg);
}
}
cmdline_run_saved(conf);
conf_set_int(conf, CONF_sharrow_type, SHARROW_BITMAP);
}
const struct BackendVtable *backend_vt_from_conf(Conf *conf)
{
return &conpty_backend;
}
const wchar_t *get_app_user_model_id(void)
{
return L"SimonTatham.Pterm";
}
void gui_terminal_ready(HWND hwnd, Seat *seat, Backend *backend)
{
}
|