- while (!done)
- {
- switch (mutt_menuLoop (menu))
- {
- case -1: /* abort */
- case OP_MAX + 1: /* reject */
- case OP_EXIT:
- done = 1;
- break;
- case OP_MAX + 3: /* accept always */
- done = 0;
- if ((fp = fopen (SslCertFile, "a")))
- {
- /* save hostname if necessary */
- if (certerr_hostname)
- {
- fprintf(fp, "#H %s %s\n", conn->account.host, fpbuf);
- done = 1;
- }
- if (certerr_nottrusted)
- {
- done = 0;
- ret = gnutls_pem_base64_encode_alloc ("CERTIFICATE", &cert_list[0],
- &pemdata);
- if (ret == 0)
- {
- if (fwrite(pemdata.data, pemdata.size, 1, fp) == 1)
- {
- done = 1;
- }
- gnutls_free(pemdata.data);
- }
- }
- fclose (fp);
- }
- if (!done)
- {
- mutt_error (_("Warning: Couldn't save certificate"));
- mutt_sleep (2);
- }
- else
- {
- mutt_message (_("Certificate saved"));
- mutt_sleep (0);
- }
- /* fall through */
- case OP_MAX + 2: /* accept once */
- done = 2;
- break;
+ set_option (OPTUNBUFFEREDINPUT);
+ while (!done) {
+ switch (mutt_menuLoop (menu)) {
+ case -1: /* abort */
+ case OP_MAX + 1: /* reject */
+ case OP_EXIT:
+ done = 1;
+ break;
+ case OP_MAX + 3: /* accept always */
+ done = 0;
+ if ((fp = fopen (SslCertFile, "a"))) {
+ /* save hostname if necessary */
+ if (certerr_hostname) {
+ fprintf (fp, "#H %s %s\n", conn->account.host, fpbuf);
+ done = 1;
+ }
+ if (certerr_nottrusted) {
+ done = 0;
+ ret = gnutls_pem_base64_encode_alloc ("CERTIFICATE", &cert_list[0],
+ &pemdata);
+ if (ret == 0) {
+ if (fwrite (pemdata.data, pemdata.size, 1, fp) == 1) {
+ done = 1;
+ }
+ gnutls_free (pemdata.data);
+ }
+ }
+ fclose (fp);
+ }
+ if (!done) {
+ mutt_error (_("Warning: Couldn't save certificate"));
+ mutt_sleep (2);
+ }
+ else {
+ mutt_message (_("Certificate saved"));
+ mutt_sleep (0);
+ }
+ /* fall through */
+ case OP_MAX + 2: /* accept once */
+ done = 2;
+ break;