Introduce a new checkbox and command-line option to inhibit use of
[u/mdw/putty] / config.c
index 0a47080..c844e05 100644 (file)
--- a/config.c
+++ b/config.c
@@ -350,9 +350,25 @@ static void sessionsaver_handler(union control *ctrl, void *dlg,
            dlg_update_done(ctrl, dlg);
        }
     } else if (event == EVENT_VALCHANGE) {
+        int top, bottom, halfway, i;
        if (ctrl == ssd->editbox) {
            dlg_editbox_get(ctrl, dlg, savedsession,
                            SAVEDSESSION_LEN);
+           top = ssd->sesslist.nsessions;
+           bottom = -1;
+           while (top-bottom > 1) {
+               halfway = (top+bottom)/2;
+               i = strcmp(savedsession, ssd->sesslist.sessions[halfway]);
+               if (i <= 0 ) {
+                   top = halfway;
+               } else {
+                   bottom = halfway;
+               }
+           }
+           if (top == ssd->sesslist.nsessions) {
+               top -= 1;
+           }
+           dlg_listbox_select(ssd->listbox, dlg, top);
        }
     } else if (event == EVENT_ACTION) {
        if (!ssd->midsession &&
@@ -1825,6 +1841,10 @@ void setup_config_box(struct controlbox *b, int midsession,
 
            s = ctrl_getset(b, "Connection/SSH/Auth", "methods",
                            "Authentication methods");
+           ctrl_checkbox(s, "Attempt authentication using Pageant", 'p',
+                         HELPCTX(ssh_auth_pageant),
+                         dlg_stdcheckbox_handler,
+                         I(offsetof(Config,tryagent)));
            ctrl_checkbox(s, "Attempt TIS or CryptoCard auth (SSH-1)", 'm',
                          HELPCTX(ssh_auth_tis),
                          dlg_stdcheckbox_handler,