Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mRemoteNG/PuTTYNG.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'windows/pterm.c')
-rw-r--r--windows/pterm.c65
1 files changed, 65 insertions, 0 deletions
diff --git a/windows/pterm.c b/windows/pterm.c
new file mode 100644
index 00000000..bb68245d
--- /dev/null
+++ b/windows/pterm.c
@@ -0,0 +1,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)
+{
+}