12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #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;
- CmdlineArgList *arglist = cmdline_arg_list_from_GetCommandLineW();
- size_t arglistpos = 0;
- while (arglist->args[arglistpos]) {
- CmdlineArg *arg = arglist->args[arglistpos++];
- CmdlineArg *nextarg = arglist->args[arglistpos];
- const char *argstr = cmdline_arg_to_str(arg);
- int retd = cmdline_process_param(arg, nextarg, 1, conf);
- if (retd == -2) {
- cmdline_error("option \"%s\" requires an argument", argstr);
- } else if (retd == 2) {
- arglistpos++; /* skip next argument */
- } else if (retd == 1) {
- continue; /* nothing further needs doing */
- } else if (!strcmp(argstr, "-e")) {
- if (nextarg) {
- /* The command to execute is taken to be the unparsed
- * version of the whole remainder of the command line. */
- char *cmd = cmdline_arg_remainder_utf8(nextarg);
- conf_set_utf8(conf, CONF_remote_cmd, cmd);
- sfree(cmd);
- return;
- } else {
- cmdline_error("option \"%s\" requires an argument", argstr);
- }
- } else if (argstr[0] == '-') {
- cmdline_error("unrecognised option \"%s\"", argstr);
- } else {
- cmdline_error("unexpected non-option argument \"%s\"", argstr);
- }
- }
- 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)
- {
- }
|