diff options
Diffstat (limited to 'alpine/alpine.c')
-rw-r--r-- | alpine/alpine.c | 45 |
1 files changed, 27 insertions, 18 deletions
diff --git a/alpine/alpine.c b/alpine/alpine.c index c2b7b372..6daed0ff 100644 --- a/alpine/alpine.c +++ b/alpine/alpine.c @@ -1,10 +1,6 @@ -#if !defined(lint) && !defined(DOS) -static char rcsid[] = "$Id: alpine.c 1266 2009-07-14 18:39:12Z hubert@u.washington.edu $"; -#endif - /* * ======================================================================== - * Copyright 2013-2021 Eduardo Chappa + * Copyright 2013-2022 Eduardo Chappa * Copyright 2006-2008 University of Washington * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -64,7 +60,6 @@ static char rcsid[] = "$Id: alpine.c 1266 2009-07-14 18:39:12Z hubert@u.washingt #include "after.h" #include "smime.h" #include "newmail.h" -#include "xoauth2conf.h" #ifndef _WINDOWS #include "../pico/osdep/raw.h" /* for STD*_FD */ #endif @@ -334,6 +329,7 @@ main(int argc, char **argv) mail_parameters(NULL, SET_FREESTREAMSPAREP, (void *) sp_free_callback); mail_parameters(NULL, SET_FREEELTSPAREP, (void *) free_pine_elt); mail_parameters(NULL, SET_FREEBODYSPAREP, (void *) free_body_sparep); + mail_parameters(NULL, SET_ERASEPASSWORD, (void *) pine_delete_pwd); mail_parameters(NULL, SET_OA2CLIENTGETACCESSCODE, (void *) oauth2_get_access_code); mail_parameters(NULL, SET_OA2CLIENTINFO, (void *) oauth2_get_client_info); mail_parameters(NULL, SET_OA2DEVICEINFO, (void *) oauth2_set_device_info); @@ -662,6 +658,7 @@ main(int argc, char **argv) } } +#ifdef DF_ENCRYPTION_RANGE if(ps_global->VAR_ENCRYPTION_RANGE && ps_global->VAR_ENCRYPTION_RANGE[0]){ char *min_s, *max_s, *s; @@ -693,6 +690,9 @@ main(int argc, char **argv) min_v = pith_ssl_encryption_version(min_s); max_v = pith_ssl_encryption_version(max_s); + if(min_s != NULL) fs_give((void **) &min_s); + if(max_s != NULL) fs_give((void **) &max_s); + if(min_v < 0 || max_v < 0){ snprintf(tmp_20k_buf, SIZEOF_20KBUF, _("Bad encryption range: \"%s\": resetting to default"), @@ -724,7 +724,7 @@ main(int argc, char **argv) mail_parameters(NULL, SET_ENCRYPTION_RANGE_MAX, (void *) &max_v); } } - +#endif /* DF_ENCRYPTION_RANGE */ /* * setup alternative authentication driver preference for IMAP opens @@ -1098,7 +1098,7 @@ main(int argc, char **argv) args.data.mail.attachlist) && pine_state->next_screen)) free_attachment_list(&args.data.mail.attachlist); - goodnight_gracey(pine_state, 0); + goodnight_gracey(pine_state, 0); } else { q_status_message(SM_ORDER | SM_DING, 3, 4, @@ -3234,12 +3234,24 @@ quit_screen(struct pine *pine_state) if(F_ON(F_CHECK_MAIL_ONQUIT,ps_global) && pine_state->mail_stream != NULL - && new_mail(1, VeryBadTime, NM_STATUS_MSG | NM_DEFER_SORT) > 0 - && (quit = want_to(_("Quit even though new mail just arrived"), 'y', 0, - NO_HELP, WT_NORM | WT_DING)) != 'y'){ - refresh_sort(pine_state->mail_stream, pine_state->msgmap, SRT_VRB); - pine_state->next_screen = pine_state->prev_screen; - return; + && new_mail(1, VeryBadTime, NM_STATUS_MSG | NM_DEFER_SORT) > 0){ + char *prompt = NULL; + if(sp_mail_since_cmd(pine_state->mail_stream) == 1) + prompt = cpystr(_("Quit even though 1 new mail just arrived")); + else if(sp_mail_since_cmd(pine_state->mail_stream) > 1){ + snprintf(tmp_20k_buf, SIZEOF_20KBUF, _("Quit even though %lu new messages just arrived"), sp_mail_since_cmd(pine_state->mail_stream)); + tmp_20k_buf[SIZEOF_20KBUF-1] = '\0'; + prompt = cpystr(tmp_20k_buf); + } + else prompt = cpystr(_("Quit even though new mail just arrived")); + quit = want_to(prompt, 'y', 0, NO_HELP, WT_NORM | WT_DING); + if(prompt) + fs_give((void **) &prompt); + if(quit != 'y'){ + refresh_sort(pine_state->mail_stream, pine_state->msgmap, SRT_VRB); + pine_state->next_screen = pine_state->prev_screen; + return; + } } if(quit != 'y' @@ -3653,10 +3665,7 @@ prune_folders_ok(void) void free_alpine_module_globals(void) -{ -#ifdef LOCAL_PASSWD_CACHE - free_passfile_cache(); -#endif +{ free_message_queue(); free_titlebar_globals(); } |