Config *cfg = (Config *)data;
struct colour_data *cd =
(struct colour_data *)ctrl->generic.context.p;
- int update = FALSE, r, g, b;
+ int update = FALSE, clear = FALSE, r, g, b;
if (event == EVENT_REFRESH) {
if (ctrl == cd->listbox) {
for (i = 0; i < lenof(colours); i++)
dlg_listbox_add(ctrl, dlg, colours[i]);
dlg_update_done(ctrl, dlg);
- dlg_editbox_set(cd->redit, dlg, "");
- dlg_editbox_set(cd->gedit, dlg, "");
- dlg_editbox_set(cd->bedit, dlg, "");
+ clear = TRUE;
+ update = TRUE;
}
} else if (event == EVENT_SELCHANGE) {
if (ctrl == cd->listbox) {
/* The user has selected a colour. Update the RGB text. */
int i = dlg_listbox_index(ctrl, dlg);
if (i < 0) {
- dlg_beep(dlg);
- return;
+ clear = TRUE;
+ } else {
+ clear = FALSE;
+ r = cfg->colours[i][0];
+ g = cfg->colours[i][1];
+ b = cfg->colours[i][2];
}
- r = cfg->colours[i][0];
- g = cfg->colours[i][1];
- b = cfg->colours[i][2];
update = TRUE;
}
} else if (event == EVENT_VALCHANGE) {
cfg->colours[i][0] = r;
cfg->colours[i][1] = g;
cfg->colours[i][2] = b;
+ clear = FALSE;
update = TRUE;
}
}
}
if (update) {
- char buf[40];
- sprintf(buf, "%d", r); dlg_editbox_set(cd->redit, dlg, buf);
- sprintf(buf, "%d", g); dlg_editbox_set(cd->gedit, dlg, buf);
- sprintf(buf, "%d", b); dlg_editbox_set(cd->bedit, dlg, buf);
+ if (clear) {
+ dlg_editbox_set(cd->redit, dlg, "");
+ dlg_editbox_set(cd->gedit, dlg, "");
+ dlg_editbox_set(cd->bedit, dlg, "");
+ } else {
+ char buf[40];
+ sprintf(buf, "%d", r); dlg_editbox_set(cd->redit, dlg, buf);
+ sprintf(buf, "%d", g); dlg_editbox_set(cd->gedit, dlg, buf);
+ sprintf(buf, "%d", b); dlg_editbox_set(cd->bedit, dlg, buf);
+ }
}
}
{
static const char *const afs = "A46";
char *afp = strchr(afs, *p);
+#ifndef NO_IPV6
int idx = afp ? afp-afs : 0;
+#endif
if (afp)
p++;
#ifndef NO_IPV6
ctrl_checkbox(s, "Implicit CR in every LF", 'r',
HELPCTX(terminal_lfhascr),
dlg_stdcheckbox_handler, I(offsetof(Config,lfhascr)));
+ ctrl_checkbox(s, "Implicit LF in every CR", 'f',
+ HELPCTX(terminal_crhaslf),
+ dlg_stdcheckbox_handler, I(offsetof(Config,crhaslf)));
ctrl_checkbox(s, "Use background colour to erase screen", 'e',
HELPCTX(terminal_bce),
dlg_stdcheckbox_handler, I(offsetof(Config,bce)));
"Options controlling character set translation");
s = ctrl_getset(b, "Window/Translation", "trans",
- "Character set translation on received data");
- ctrl_combobox(s, "Received data assumed to be in which character set:",
+ "Character set translation");
+ ctrl_combobox(s, "Remote character set:",
'r', 100, HELPCTX(translation_codepage),
codepage_handler, P(NULL), P(NULL));
"IPv6", '6', I(ADDRTYPE_IPV6),
NULL);
#endif
+
+ s = ctrl_getset(b, "Connection", "identity",
+ "Logical name of remote host");
+ ctrl_editbox(s, "Logical name of remote host (e.g. for SSH key lookup):",
+ 'm', 100,
+ HELPCTX(connection_loghost),
+ dlg_stdeditbox_handler, I(offsetof(Config,loghost)),
+ I(sizeof(((Config *)0)->loghost)));
}
/*
dlg_stdcheckbox_handler,
I(offsetof(Config,try_ki_auth)));
+#ifndef NO_GSSAPI
+ ctrl_checkbox(s, "Attempt GSSAPI auth (SSH-2)",
+ NO_SHORTCUT, HELPCTX(no_help),
+ dlg_stdcheckbox_handler,
+ I(offsetof(Config,try_gssapi_auth)));
+#endif
+
s = ctrl_getset(b, "Connection/SSH/Auth", "params",
"Authentication parameters");
ctrl_checkbox(s, "Allow agent forwarding", 'f',
HELPCTX(ssh_auth_changeuser),
dlg_stdcheckbox_handler,
I(offsetof(Config,change_username)));
+#ifndef NO_GSSAPI
+ ctrl_checkbox(s, "Allow GSSAPI credential delegation in SSH-2", NO_SHORTCUT,
+ HELPCTX(no_help),
+ dlg_stdcheckbox_handler,
+ I(offsetof(Config,gssapifwd)));
+#endif
ctrl_filesel(s, "Private key file for authentication:", 'k',
FILTER_KEY_FILES, FALSE, "Select private key file",
HELPCTX(ssh_auth_privkey),
ctrl_droplist(s, "Handles SSH-2 key re-exchange badly", 'k', 20,
HELPCTX(ssh_bugs_rekey2),
sshbug_handler, I(offsetof(Config,sshbug_rekey2)));
+ ctrl_droplist(s, "Ignores SSH-2 maximum packet size", 'x', 20,
+ HELPCTX(ssh_bugs_maxpkt2),
+ sshbug_handler, I(offsetof(Config,sshbug_maxpkt2)));
}
}
}