From 500324a9dc9cf7d87b57db5a27c0694e2de2441b Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Fri, 17 May 2024 21:37:09 +0200 Subject: alpine: 2.26.r29.267cba3-2 -> 2.26.r29.267cba3-3 --- alpine/rules.patch | 311 +++++++++++++++++++++++++++-------------------------- 1 file changed, 156 insertions(+), 155 deletions(-) (limited to 'alpine/rules.patch') diff --git a/alpine/rules.patch b/alpine/rules.patch index 336d03599..e8805ef5d 100644 --- a/alpine/rules.patch +++ b/alpine/rules.patch @@ -1,8 +1,8 @@ diff --git a/alpine/adrbkcmd.c b/alpine/adrbkcmd.c -index 94d9077..5c8a02a 100644 +index f36b695..5bd6f33 100644 --- a/alpine/adrbkcmd.c +++ b/alpine/adrbkcmd.c -@@ -4129,6 +4129,8 @@ ab_compose_internal(BuildTo bldto, int allow_role) +@@ -4126,6 +4126,8 @@ ab_compose_internal(BuildTo bldto, int allow_role) * won't do anything, but will cause compose_mail to think there's * already a role so that it won't try to confirm the default. */ @@ -11,7 +11,7 @@ index 94d9077..5c8a02a 100644 if(role) role = copy_action(role); else{ -@@ -4136,6 +4138,7 @@ ab_compose_internal(BuildTo bldto, int allow_role) +@@ -4133,6 +4135,7 @@ ab_compose_internal(BuildTo bldto, int allow_role) memset((void *)role, 0, sizeof(*role)); role->nick = cpystr("Default Role"); } @@ -20,10 +20,10 @@ index 94d9077..5c8a02a 100644 compose_mail(addr, fcc, role, NULL, NULL); diff --git a/alpine/alpine.c b/alpine/alpine.c -index cb75260..b707692 100644 +index 1b96d7b..35381c5 100644 --- a/alpine/alpine.c +++ b/alpine/alpine.c -@@ -506,6 +506,7 @@ main(int argc, char **argv) +@@ -502,6 +502,7 @@ main(int argc, char **argv) /* Set up optional for user-defined display filtering */ pine_state->tools.display_filter = dfilter; pine_state->tools.display_filter_trigger = dfilter_trigger; @@ -31,7 +31,7 @@ index cb75260..b707692 100644 #ifdef _WINDOWS if(ps_global->install_flag){ -@@ -3273,6 +3274,9 @@ goodnight_gracey(struct pine *pine_state, int exit_val) +@@ -3285,6 +3286,9 @@ goodnight_gracey(struct pine *pine_state, int exit_val) extern KBESC_T *kbesc; dprint((2, "goodnight_gracey:\n")); @@ -42,10 +42,10 @@ index cb75260..b707692 100644 /* We want to do this here before we close up the streams */ trim_remote_adrbks(); diff --git a/alpine/confscroll.c b/alpine/confscroll.c -index 50f578f..4c0e47e 100644 +index 1b5fb76..5307a8e 100644 --- a/alpine/confscroll.c +++ b/alpine/confscroll.c -@@ -52,6 +52,7 @@ static char rcsid[] = "$Id: confscroll.c 1169 2008-08-27 06:42:06Z hubert@u.wash +@@ -48,6 +48,7 @@ #include "../pith/tempfile.h" #include "../pith/pattern.h" #include "../pith/charconv/utf8.h" @@ -53,7 +53,7 @@ index 50f578f..4c0e47e 100644 #define CONFIG_SCREEN_HELP_TITLE _("HELP FOR SETUP CONFIGURATION") -@@ -2462,6 +2463,9 @@ delete: +@@ -2460,6 +2461,9 @@ delete: * Now go and set the current_val based on user_val changes * above. Turn off command line settings... */ @@ -63,7 +63,7 @@ index 50f578f..4c0e47e 100644 set_current_val((*cl)->var, TRUE, FALSE); fix_side_effects(ps, (*cl)->var, 0); -@@ -5226,6 +5230,30 @@ fix_side_effects(struct pine *ps, struct variable *var, int revert) +@@ -5224,6 +5228,30 @@ fix_side_effects(struct pine *ps, struct variable *var, int revert) var == &ps->vars[V_ABOOK_FORMATS]){ addrbook_reset(); } @@ -95,16 +95,16 @@ index 50f578f..4c0e47e 100644 reset_index_format(); clear_index_cache(ps->mail_stream, 0); diff --git a/alpine/dispfilt.c b/alpine/dispfilt.c -index ec20825..acf5fbe 100644 +index 58dc03d..4c41575 100644 --- a/alpine/dispfilt.c +++ b/alpine/dispfilt.c -@@ -461,3 +461,63 @@ df_valid_test(struct mail_bodystruct *body, char *test) +@@ -458,3 +458,64 @@ df_valid_test(struct mail_bodystruct *body, char *test) return(passed); } + +char * -+exec_function_rule(char *rawcmd, gf_io_t input_gc, gf_io_t output_pc) ++exec_function_rule(char *rawcmd, gf_i_t input_gc, gf_o_t output_pc) +{ + char *status = NULL, *cmd, *tmpfile = NULL; + @@ -114,7 +114,8 @@ index ec20825..acf5fbe 100644 + if(tmpfile){ + PIPE_S *filter_pipe; + FILE *fp; -+ gf_io_t gc, pc; ++ gf_i_t gc; ++ gf_o_t pc; + STORE_S *tmpf_so; + + /* write the tmp file */ @@ -163,7 +164,7 @@ index ec20825..acf5fbe 100644 + return(status); +} diff --git a/alpine/dispfilt.h b/alpine/dispfilt.h -index b8f37b8..9d7908b 100644 +index 3960751..465b8e9 100644 --- a/alpine/dispfilt.h +++ b/alpine/dispfilt.h @@ -25,7 +25,7 @@ char *dfilter_trigger(BODY *, char *, size_t); @@ -171,15 +172,15 @@ index b8f37b8..9d7908b 100644 char *filter_session_key(void); char *filter_data_file(int); - -+char *exec_function_rule(char *, gf_io_t, gf_io_t); ++char *exec_function_rule(char *, gf_i_t, gf_o_t); #endif /* PINE_DISPFILT_INCLUDED */ diff --git a/alpine/folder.c b/alpine/folder.c -index c39b80a..c82d0ee 100644 +index 48b6e81..43e0b83 100644 --- a/alpine/folder.c +++ b/alpine/folder.c -@@ -248,7 +248,7 @@ folder_screen(struct pine *ps) +@@ -244,7 +244,7 @@ folder_screen(struct pine *ps) dprint((1, "=== folder_screen called ====\n")); mailcap_free(); /* free resources we won't be using for a while */ ps->next_screen = SCREEN_FUN_NULL; @@ -188,7 +189,7 @@ index c39b80a..c82d0ee 100644 /* Initialize folder state and dispatches */ memset(&fs, 0, sizeof(FSTATE_S)); fs.context = cntxt; -@@ -345,6 +345,7 @@ folder_screen(struct pine *ps) +@@ -341,6 +341,7 @@ folder_screen(struct pine *ps) pine_mail_close(*fs.cache_streamp); ps->prev_screen = folder_screen; @@ -197,10 +198,10 @@ index c39b80a..c82d0ee 100644 diff --git a/alpine/mailcmd.c b/alpine/mailcmd.c -index 6285e6e..6fe9019 100644 +index a144b2d..2a827f3 100644 --- a/alpine/mailcmd.c +++ b/alpine/mailcmd.c -@@ -73,6 +73,7 @@ static char rcsid[] = "$Id: mailcmd.c 1266 2009-07-14 18:39:12Z hubert@u.washing +@@ -69,6 +69,7 @@ #include "../pith/tempfile.h" #include "../pith/search.h" #include "../pith/margin.h" @@ -208,7 +209,7 @@ index 6285e6e..6fe9019 100644 #ifdef _WINDOWS #include "../pico/osdep/mswin.h" #endif -@@ -2710,6 +2711,9 @@ role_compose(struct pine *state) +@@ -2719,6 +2720,9 @@ role_compose(struct pine *state) role->nick = cpystr("Default Role"); } @@ -218,7 +219,7 @@ index 6285e6e..6fe9019 100644 state->redrawer = NULL; switch(action){ case 'c': -@@ -2760,12 +2764,12 @@ save_prompt(struct pine *state, CONTEXT_S **cntxt, char *nfldr, size_t len_nfldr +@@ -2769,12 +2773,12 @@ save_prompt(struct pine *state, CONTEXT_S **cntxt, char *nfldr, size_t len_nfldr char *nmsgs, ENVELOPE *env, long int rawmsgno, char *section, SaveDel *dela, SavePreserveOrder *prea) { @@ -233,7 +234,7 @@ index 6285e6e..6fe9019 100644 HelpType help; SaveDel del = DontAsk; SavePreserveOrder pre = DontAskPreserve; -@@ -2773,6 +2777,7 @@ save_prompt(struct pine *state, CONTEXT_S **cntxt, char *nfldr, size_t len_nfldr +@@ -2782,6 +2786,7 @@ save_prompt(struct pine *state, CONTEXT_S **cntxt, char *nfldr, size_t len_nfldr static HISTORY_S *history = NULL; CONTEXT_S *tc; ESCKEY_S ekey[10]; @@ -241,7 +242,7 @@ index 6285e6e..6fe9019 100644 if(!cntxt) alpine_panic("no context ptr in save_prompt"); -@@ -2782,6 +2787,15 @@ save_prompt(struct pine *state, CONTEXT_S **cntxt, char *nfldr, size_t len_nfldr +@@ -2791,6 +2796,15 @@ save_prompt(struct pine *state, CONTEXT_S **cntxt, char *nfldr, size_t len_nfldr if(!(folder = save_get_default(state, env, rawmsgno, section, cntxt))) return(0); /* message expunged! */ @@ -258,10 +259,10 @@ index 6285e6e..6fe9019 100644 for(tc = state->context_list; tc; tc = tc->next) if(!NEWS_TEST(tc)) diff --git a/alpine/mailindx.c b/alpine/mailindx.c -index 1dbb1b4..e9bdd5f 100644 +index 61f6418..d7a5c1a 100644 --- a/alpine/mailindx.c +++ b/alpine/mailindx.c -@@ -229,6 +229,8 @@ mail_index_screen(struct pine *state) +@@ -225,6 +225,8 @@ mail_index_screen(struct pine *state) state->prev_screen = mail_index_screen; state->next_screen = SCREEN_FUN_NULL; @@ -270,7 +271,7 @@ index 1dbb1b4..e9bdd5f 100644 if(THRD_AUTO_VIEW() && sp_viewing_a_thread(state->mail_stream) && state->view_skipped_index -@@ -240,10 +242,14 @@ mail_index_screen(struct pine *state) +@@ -236,10 +238,14 @@ mail_index_screen(struct pine *state) adjust_cur_to_visible(state->mail_stream, state->msgmap); @@ -286,10 +287,10 @@ index 1dbb1b4..e9bdd5f 100644 diff --git a/alpine/mailview.c b/alpine/mailview.c -index 11ca4af..0e19490 100644 +index b4a6c0d..2a7fd46 100644 --- a/alpine/mailview.c +++ b/alpine/mailview.c -@@ -244,6 +244,8 @@ mail_view_screen(struct pine *ps) +@@ -242,6 +242,8 @@ mail_view_screen(struct pine *ps) ps->prev_screen = mail_view_screen; ps->force_prefer_plain = ps->force_no_prefer_plain = 0; @@ -298,7 +299,7 @@ index 11ca4af..0e19490 100644 if(ps->ttyo->screen_rows - HEADER_ROWS(ps) - FOOTER_ROWS(ps) < 1){ q_status_message(SM_ORDER | SM_DING, 0, 3, _("Screen too small to view message")); -@@ -480,6 +482,8 @@ mail_view_screen(struct pine *ps) +@@ -478,6 +480,8 @@ mail_view_screen(struct pine *ps) } while(ps->next_screen == SCREEN_FUN_NULL); @@ -308,10 +309,10 @@ index 11ca4af..0e19490 100644 cancel_busy_cue(-1); diff --git a/alpine/osdep/termin.gen.c b/alpine/osdep/termin.gen.c -index b8d01b1..033ce9a 100644 +index c120758..ec8c6ba 100644 --- a/alpine/osdep/termin.gen.c +++ b/alpine/osdep/termin.gen.c -@@ -33,6 +33,8 @@ static char rcsid[] = "$Id: termin.gen.c 1025 2008-04-08 22:59:38Z hubert@u.wash +@@ -29,6 +29,8 @@ #include "../../pith/newmail.h" #include "../../pith/conf.h" #include "../../pith/busy.h" @@ -320,7 +321,7 @@ index b8d01b1..033ce9a 100644 #include "../../pico/estruct.h" #include "../../pico/pico.h" -@@ -72,7 +74,8 @@ int pcpine_oe_cursor(int, long); +@@ -68,7 +70,8 @@ int pcpine_oe_cursor(int, long); * Generic tty input routines */ @@ -330,7 +331,7 @@ index b8d01b1..033ce9a 100644 /*---------------------------------------------------------------------- Read a character from keyboard with timeout Input: none -@@ -114,6 +117,41 @@ read_command(char **utf8str) +@@ -110,6 +113,41 @@ read_command(char **utf8str) *utf8str = NULL; ucs = read_char(tm); @@ -372,7 +373,7 @@ index b8d01b1..033ce9a 100644 if(ucs != NO_OP_COMMAND && ucs != NO_OP_IDLE && ucs != KEY_RESIZE) zero_new_mail_count(); -@@ -1160,6 +1198,7 @@ process_config_input(UCS *ch) +@@ -1155,6 +1193,7 @@ process_config_input(UCS *ch) if(ps_global->initial_cmds && !*ps_global->initial_cmds && ps_global->free_initial_cmds){ fs_give((void **) &ps_global->free_initial_cmds); ps_global->initial_cmds = NULL; @@ -381,10 +382,10 @@ index b8d01b1..033ce9a 100644 return(ret); diff --git a/alpine/reply.c b/alpine/reply.c -index 42f5131..42aab88 100644 +index bb3a72c..569f802 100644 --- a/alpine/reply.c +++ b/alpine/reply.c -@@ -62,7 +62,8 @@ The evolution continues... +@@ -58,7 +58,8 @@ The evolution continues... #include "../pith/tempfile.h" #include "../pith/busy.h" #include "../pith/ablookup.h" @@ -394,13 +395,13 @@ index 42f5131..42aab88 100644 /* * Internal Prototypes -@@ -109,11 +110,12 @@ reply(struct pine *pine_state, ACTION_S *role_arg) +@@ -105,11 +106,12 @@ reply(struct pine *pine_state, ACTION_S *role_arg) long msgno, j, totalm, rflags, *seq = NULL; int i, include_text = 0, times = -1, warned = 0, rv = 0, flags = RSF_QUERY_REPLY_ALL, reply_raw_body = 0; - int rolemsg = 0, copytomsg = 0; + int rolemsg = 0, copytomsg = 0, do_role_early = 0; - gf_io_t pc; + gf_o_t pc; PAT_STATE dummy; REDRAFT_POS_S *redraft_pos = NULL; ACTION_S *role = NULL, *nrole; @@ -408,7 +409,7 @@ index 42f5131..42aab88 100644 #if defined(DOS) && !defined(_WINDOWS) char *reserve; #endif -@@ -139,6 +141,69 @@ reply(struct pine *pine_state, ACTION_S *role_arg) +@@ -135,6 +137,69 @@ reply(struct pine *pine_state, ACTION_S *role_arg) && F_ON(F_ENABLE_FULL_HDR_AND_TEXT, ps_global)) reply_raw_body = 1; @@ -478,7 +479,7 @@ index 42f5131..42aab88 100644 /* * We may have to loop through first to figure out what default * reply-indent-string to offer... -@@ -287,8 +352,18 @@ reply(struct pine *pine_state, ACTION_S *role_arg) +@@ -283,8 +348,18 @@ reply(struct pine *pine_state, ACTION_S *role_arg) outgoing->subject = cpystr("Re: several messages"); } } @@ -499,7 +500,7 @@ index 42f5131..42aab88 100644 } /* fill reply header */ -@@ -307,13 +382,7 @@ reply(struct pine *pine_state, ACTION_S *role_arg) +@@ -303,13 +378,7 @@ reply(struct pine *pine_state, ACTION_S *role_arg) if(sp_expunge_count(pine_state->mail_stream)) /* cur msg expunged */ goto done_early; @@ -514,7 +515,7 @@ index 42f5131..42aab88 100644 rflags = ROLE_REPLY; if(!ps_global->reply.role_chosen && nonempty_patterns(rflags, &dummy)){ /* setup default role */ -@@ -724,6 +793,9 @@ reply(struct pine *pine_state, ACTION_S *role_arg) +@@ -720,6 +789,9 @@ reply(struct pine *pine_state, ACTION_S *role_arg) if(prefix) fs_give((void **)&prefix); @@ -524,7 +525,7 @@ index 42f5131..42aab88 100644 if(fcc) fs_give((void **) &fcc); -@@ -1594,9 +1666,14 @@ forward(struct pine *ps, ACTION_S *role_arg) +@@ -1591,9 +1663,14 @@ forward(struct pine *ps, ACTION_S *role_arg) } } @@ -540,7 +541,7 @@ index 42f5131..42aab88 100644 outgoing->message_id = generate_message_id(role); -@@ -1830,6 +1907,7 @@ forward(struct pine *ps, ACTION_S *role_arg) +@@ -1827,6 +1904,7 @@ forward(struct pine *ps, ACTION_S *role_arg) #if defined(DOS) && !defined(_WINDOWS) free((void *)reserve); #endif @@ -549,10 +550,10 @@ index 42f5131..42aab88 100644 role, NULL, &reply, redraft_pos, NULL, NULL, 0); diff --git a/alpine/roleconf.c b/alpine/roleconf.c -index 0ee3ec8..378baa8 100644 +index d3cc207..7e1cc77 100644 --- a/alpine/roleconf.c +++ b/alpine/roleconf.c -@@ -7707,6 +7707,11 @@ role_text_tool_inick(struct pine *ps, int cmd, CONF_S **cl, unsigned int flags) +@@ -7702,6 +7702,11 @@ role_text_tool_inick(struct pine *ps, int cmd, CONF_S **cl, unsigned int flags) if(apval) *apval = (role && role->nick) ? cpystr(role->nick) : NULL; @@ -565,10 +566,10 @@ index 0ee3ec8..378baa8 100644 fs_give((void **)&((*cl)->value)); diff --git a/alpine/send.c b/alpine/send.c -index 6209d64..eadc963 100644 +index ad74e38..9f7c515 100644 --- a/alpine/send.c +++ b/alpine/send.c -@@ -63,7 +63,7 @@ static char rcsid[] = "$Id: send.c 1142 2008-08-13 17:22:21Z hubert@u.washington +@@ -59,7 +59,7 @@ #include "../pith/mimetype.h" #include "../pith/send.h" #include "../pith/smime.h" @@ -577,7 +578,7 @@ index 6209d64..eadc963 100644 typedef struct body_particulars { unsigned short type, encoding, had_csp; -@@ -236,6 +236,11 @@ alt_compose_screen(struct pine *pine_state) +@@ -232,6 +232,11 @@ alt_compose_screen(struct pine *pine_state) role->nick = cpystr("Default Role"); } @@ -589,7 +590,7 @@ index 6209d64..eadc963 100644 pine_state->redrawer = NULL; compose_mail(NULL, NULL, role, NULL, NULL); free_action(&role); -@@ -445,8 +450,12 @@ compose_mail(char *given_to, char *fcc_arg, ACTION_S *role_arg, +@@ -441,8 +446,12 @@ compose_mail(char *given_to, char *fcc_arg, ACTION_S *role_arg, ps_global->next_screen = prev_screen; ps_global->redrawer = redraw; @@ -603,7 +604,7 @@ index 6209d64..eadc963 100644 } break; -@@ -639,9 +648,14 @@ compose_mail(char *given_to, char *fcc_arg, ACTION_S *role_arg, +@@ -638,9 +647,14 @@ compose_mail(char *given_to, char *fcc_arg, ACTION_S *role_arg, } } @@ -619,7 +620,7 @@ index 6209d64..eadc963 100644 outgoing->message_id = generate_message_id(role); /* -@@ -2481,6 +2495,26 @@ pine_send(ENVELOPE *outgoing, struct mail_bodystruct **body, +@@ -2480,6 +2494,26 @@ pine_send(ENVELOPE *outgoing, struct mail_bodystruct **body, removing_trailing_white_space(pf->textbuf); (void)removing_double_quotes(pf->textbuf); build_address(pf->textbuf, &addr, NULL, NULL, NULL); @@ -660,10 +661,10 @@ index 748b9ec..ccbc3ed 100644 thread.c adjtime.c url.c util.c helptext.c smkeys.c smime.c diff --git a/pith/Makefile.in b/pith/Makefile.in -index ee87d63..8952f4d 100644 +index e97b5fa..982c363 100644 --- a/pith/Makefile.in +++ b/pith/Makefile.in -@@ -142,7 +142,7 @@ am_libpith_a_OBJECTS = ablookup.$(OBJEXT) abdlc.$(OBJEXT) \ +@@ -143,7 +143,7 @@ am_libpith_a_OBJECTS = ablookup.$(OBJEXT) abdlc.$(OBJEXT) \ mimedesc.$(OBJEXT) mimetype.$(OBJEXT) msgno.$(OBJEXT) \ newmail.$(OBJEXT) news.$(OBJEXT) pattern.$(OBJEXT) \ pipe.$(OBJEXT) readfile.$(OBJEXT) remote.$(OBJEXT) \ @@ -672,7 +673,7 @@ index ee87d63..8952f4d 100644 search.$(OBJEXT) sequence.$(OBJEXT) send.$(OBJEXT) \ sort.$(OBJEXT) state.$(OBJEXT) status.$(OBJEXT) \ store.$(OBJEXT) stream.$(OBJEXT) string.$(OBJEXT) \ -@@ -441,7 +441,7 @@ libpith_a_SOURCES = ablookup.c abdlc.c addrbook.c addrstring.c adrbklib.c bldadd +@@ -450,7 +450,7 @@ libpith_a_SOURCES = ablookup.c abdlc.c addrbook.c addrstring.c adrbklib.c bldadd filter.c flag.c folder.c handle.c help.c helpindx.c hist.c icache.c ical.c imap.c init.c \ keyword.c ldap.c list.c mailcap.c mailcmd.c mailindx.c maillist.c mailview.c \ margin.c mimedesc.c mimetype.c msgno.c newmail.c news.c pattern.c pipe.c \ @@ -681,7 +682,7 @@ index ee87d63..8952f4d 100644 state.c status.c store.c stream.c string.c strlst.c takeaddr.c tempfile.c text.c \ thread.c adjtime.c url.c util.c helptext.c smkeys.c smime.c -@@ -575,6 +575,7 @@ distclean-compile: +@@ -584,6 +584,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/thread.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/url.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Po@am__quote@ @@ -690,10 +691,10 @@ index ee87d63..8952f4d 100644 .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< diff --git a/pith/adrbklib.c b/pith/adrbklib.c -index c743ae8..8c39247 100644 +index 578cb0d..abb2b3e 100644 --- a/pith/adrbklib.c +++ b/pith/adrbklib.c -@@ -5138,8 +5138,14 @@ init_addrbooks(OpenStatus want_status, int reset_to_top, int open_if_only_one, i +@@ -5134,8 +5134,14 @@ init_addrbooks(OpenStatus want_status, int reset_to_top, int open_if_only_one, i if(as.cur >= as.how_many_personals) pab->type |= GLOBAL; @@ -711,10 +712,10 @@ index c743ae8..8c39247 100644 if(pab->type & GLOBAL && pab->access != NoAccess) pab->access = ReadOnly; diff --git a/pith/conf.c b/pith/conf.c -index 8de5427..69708ac 100644 +index d25bf14..5b7266e 100644 --- a/pith/conf.c +++ b/pith/conf.c -@@ -29,6 +29,7 @@ static char rcsid[] = "$Id: conf.c 1266 2009-07-14 18:39:12Z hubert@u.washington +@@ -25,6 +25,7 @@ #include "../pith/remote.h" #include "../pith/keyword.h" #include "../pith/mailview.h" @@ -722,7 +723,7 @@ index 8de5427..69708ac 100644 #include "../pith/list.h" #include "../pith/status.h" #include "../pith/ldap.h" -@@ -223,6 +224,36 @@ CONF_TXT_T cf_text_unk_character_set[] = "Defaults to nothing, which is equivale +@@ -219,6 +220,36 @@ CONF_TXT_T cf_text_unk_character_set[] = "Defaults to nothing, which is equivale CONF_TXT_T cf_text_editor[] = "Specifies the program invoked by ^_ in the Composer,\n# or the \"enable-alternate-editor-implicitly\" feature."; @@ -759,7 +760,7 @@ index 8de5427..69708ac 100644 CONF_TXT_T cf_text_speller[] = "Specifies the program invoked by ^T in the Composer."; #ifdef _WINDOWS -@@ -567,6 +598,34 @@ static struct variable variables[] = { +@@ -563,6 +594,34 @@ static struct variable variables[] = { NULL, cf_text_thread_exp_char}, {"threading-lastreply-character", 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, "Threading Last Reply Character", cf_text_thread_lastreply_char}, @@ -794,7 +795,7 @@ index 8de5427..69708ac 100644 #ifndef _WINDOWS {"display-character-set", 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, NULL, cf_text_disp_char_set}, -@@ -2740,6 +2799,7 @@ init_vars(struct pine *ps, void (*cmds_f) (struct pine *, char **)) +@@ -2742,6 +2801,7 @@ init_vars(struct pine *ps, void (*cmds_f) (struct pine *, char **)) if(cmds_f) (*cmds_f)(ps, VAR_INIT_CMD_LIST); @@ -802,7 +803,7 @@ index 8de5427..69708ac 100644 #ifdef _WINDOWS mswin_set_quit_confirm (F_OFF(F_QUIT_WO_CONFIRM, ps_global)); #endif /* _WINDOWS */ -@@ -3188,6 +3248,8 @@ feature_list(int index) +@@ -3190,6 +3250,8 @@ feature_list(int index) F_FORCE_LOW_SPEED, h_config_force_low_speed, PREF_OS_LWSD, 0}, {"auto-move-read-msgs", "Auto Move Read Messages", F_AUTO_READ_MSGS, h_config_auto_read_msgs, PREF_MISC, 0}, @@ -811,7 +812,7 @@ index 8de5427..69708ac 100644 {"auto-unselect-after-apply", NULL, F_AUTO_UNSELECT, h_config_auto_unselect, PREF_MISC, 0}, {"auto-unzoom-after-apply", NULL, -@@ -7879,6 +7941,34 @@ config_help(int var, int feature) +@@ -7880,6 +7942,34 @@ config_help(int var, int feature) return(h_config_ab_sort_rule); case V_FLD_SORT_RULE : return(h_config_fld_sort_rule); @@ -847,7 +848,7 @@ index 8de5427..69708ac 100644 return(h_config_post_char_set); case V_UNK_CHAR_SET : diff --git a/pith/conf.h b/pith/conf.h -index 739b015..a4a7fd7 100644 +index c8225fe..f15c0ea 100644 --- a/pith/conf.h +++ b/pith/conf.h @@ -159,6 +159,46 @@ @@ -898,7 +899,7 @@ index 739b015..a4a7fd7 100644 #define VAR_CHAR_SET vars[V_CHAR_SET].current_val.p #define GLO_CHAR_SET vars[V_CHAR_SET].global_val.p diff --git a/pith/conftype.h b/pith/conftype.h -index 5f2dd50..96b54e3 100644 +index 0bfa892..6dcec63 100644 --- a/pith/conftype.h +++ b/pith/conftype.h @@ -70,6 +70,20 @@ typedef enum { V_PERSONAL_NAME = 0 @@ -922,7 +923,7 @@ index 5f2dd50..96b54e3 100644 #ifndef _WINDOWS , V_CHAR_SET , V_OLD_CHAR_SET -@@ -342,6 +356,7 @@ typedef enum { +@@ -344,6 +358,7 @@ typedef enum { F_FULL_AUTO_EXPUNGE, F_EXPUNGE_MANUALLY, F_AUTO_READ_MSGS, @@ -931,10 +932,10 @@ index 5f2dd50..96b54e3 100644 F_READ_IN_NEWSRC_ORDER, F_SELECT_WO_CONFIRM, diff --git a/pith/detoken.c b/pith/detoken.c -index cb4fc5f..bc902e3 100644 +index 6f4c4cc..d494b1f 100644 --- a/pith/detoken.c +++ b/pith/detoken.c -@@ -25,7 +25,7 @@ static char rcsid[] = "$Id: detoken.c 769 2007-10-24 00:15:40Z hubert@u.washingt +@@ -21,7 +21,7 @@ #include "../pith/reply.h" #include "../pith/mailindx.h" #include "../pith/options.h" @@ -943,7 +944,7 @@ index cb4fc5f..bc902e3 100644 /* * Hook to read signature from local file -@@ -91,6 +91,8 @@ detoken(ACTION_S *role, ENVELOPE *env, int prenewlines, int postnewlines, +@@ -87,6 +87,8 @@ detoken(ACTION_S *role, ENVELOPE *env, int prenewlines, int postnewlines, if(is_sig){ /* @@ -952,7 +953,7 @@ index cb4fc5f..bc902e3 100644 * If role->litsig is set, we use it; * Else, if VAR_LITERAL_SIG is set, we use that; * Else, if role->sig is set, we use that; -@@ -104,14 +106,25 @@ detoken(ACTION_S *role, ENVELOPE *env, int prenewlines, int postnewlines, +@@ -100,14 +102,25 @@ detoken(ACTION_S *role, ENVELOPE *env, int prenewlines, int postnewlines, * there is no reason to mix them, so we don't provide support to * do so. */ @@ -986,7 +987,7 @@ index cb4fc5f..bc902e3 100644 } else if(role && role->template) sigfile = role->template; -@@ -302,7 +315,7 @@ top: +@@ -298,7 +311,7 @@ top: } } } @@ -996,7 +997,7 @@ index cb4fc5f..bc902e3 100644 subbuf, sizeof(subbuf)-1); diff --git a/pith/indxtype.h b/pith/indxtype.h -index cf435b8..3ba65c5 100644 +index bb6ac75..73c504a 100644 --- a/pith/indxtype.h +++ b/pith/indxtype.h @@ -84,6 +84,11 @@ typedef enum {iNothing, iStatus, iFStatus, iIStatus, iSIStatus, @@ -1048,10 +1049,10 @@ index cf435b8..3ba65c5 100644 #define DEFAULT_REPLY_INTRO "default" diff --git a/pith/mailcmd.c b/pith/mailcmd.c -index 2c2b07d..185633a 100644 +index f1f3418..62948e8 100644 --- a/pith/mailcmd.c +++ b/pith/mailcmd.c -@@ -39,6 +39,7 @@ static char rcsid[] = "$Id: mailcmd.c 1142 2008-08-13 17:22:21Z hubert@u.washing +@@ -35,6 +35,7 @@ #include "../pith/ablookup.h" #include "../pith/search.h" #include "../pith/charconv/utf8.h" @@ -1059,7 +1060,7 @@ index 2c2b07d..185633a 100644 #ifdef _WINDOWS #include "../pico/osdep/mswin.h" -@@ -665,6 +666,7 @@ do_broach_folder(char *newfolder, CONTEXT_S *new_context, MAILSTREAM **streamp, +@@ -661,6 +662,7 @@ do_broach_folder(char *newfolder, CONTEXT_S *new_context, MAILSTREAM **streamp, strncpy(ps_global->cur_folder, p, sizeof(ps_global->cur_folder)-1); ps_global->cur_folder[sizeof(ps_global->cur_folder)-1] = '\0'; ps_global->context_current = ps_global->context_list; @@ -1067,7 +1068,7 @@ index 2c2b07d..185633a 100644 reset_index_format(); clear_index_cache(ps_global->mail_stream, 0); /* MUST sort before restoring msgno! */ -@@ -991,6 +993,7 @@ do_broach_folder(char *newfolder, CONTEXT_S *new_context, MAILSTREAM **streamp, +@@ -1001,6 +1003,7 @@ do_broach_folder(char *newfolder, CONTEXT_S *new_context, MAILSTREAM **streamp, clear_index_cache(ps_global->mail_stream, 0); reset_index_format(); @@ -1075,7 +1076,7 @@ index 2c2b07d..185633a 100644 /* * Start news reading with messages the user's marked deleted -@@ -1114,7 +1117,10 @@ do_broach_folder(char *newfolder, CONTEXT_S *new_context, MAILSTREAM **streamp, +@@ -1124,7 +1127,10 @@ do_broach_folder(char *newfolder, CONTEXT_S *new_context, MAILSTREAM **streamp, if(!cur_already_set && mn_get_total(ps_global->msgmap) > 0L){ @@ -1087,7 +1088,7 @@ index 2c2b07d..185633a 100644 if(ps_global->start_entry > 0){ mn_set_cur(ps_global->msgmap, mn_get_revsort(ps_global->msgmap) -@@ -1136,124 +1142,7 @@ do_broach_folder(char *newfolder, CONTEXT_S *new_context, MAILSTREAM **streamp, +@@ -1146,124 +1152,7 @@ do_broach_folder(char *newfolder, CONTEXT_S *new_context, MAILSTREAM **streamp, else use_this_startup_rule = ps_global->inc_startup_rule; @@ -1213,7 +1214,7 @@ index 2c2b07d..185633a 100644 } else if(IS_NEWS(ps_global->mail_stream)){ /* -@@ -1431,9 +1320,11 @@ expunge_and_close(MAILSTREAM *stream, char **final_msg, long unsigned int flags) +@@ -1441,9 +1330,11 @@ expunge_and_close(MAILSTREAM *stream, char **final_msg, long unsigned int flags) /* Save read messages? */ if(VAR_READ_MESSAGE_FOLDER && VAR_READ_MESSAGE_FOLDER[0] && sp_flagged(stream, SP_INBOX) @@ -1226,7 +1227,7 @@ index 2c2b07d..185633a 100644 || (pith_opt_read_msg_prompt && (*pith_opt_read_msg_prompt)(seen_not_del, VAR_READ_MESSAGE_FOLDER))) /* move inbox's read messages */ -@@ -1716,6 +1607,9 @@ move_read_msgs(MAILSTREAM *stream, char *dstfldr, char *buf, size_t buflen, long +@@ -1726,6 +1617,9 @@ move_read_msgs(MAILSTREAM *stream, char *dstfldr, char *buf, size_t buflen, long char *bufp = NULL; MESSAGECACHE *mc; @@ -1236,7 +1237,7 @@ index 2c2b07d..185633a 100644 if(!is_absolute_path(dstfldr) && !(save_context = default_save_context(ps_global->context_list))) save_context = ps_global->context_list; -@@ -1755,8 +1649,9 @@ move_read_msgs(MAILSTREAM *stream, char *dstfldr, char *buf, size_t buflen, long +@@ -1765,8 +1659,9 @@ move_read_msgs(MAILSTREAM *stream, char *dstfldr, char *buf, size_t buflen, long snprintf(buf, buflen, "Moving %s read message%s to \"%s\"", comatose(searched), plural(searched), dstfldr); we_cancel = busy_cue(buf, NULL, 0); @@ -1248,7 +1249,7 @@ index 2c2b07d..185633a 100644 strncpy(bufp = buf + 1, "Moved", MIN(5,buflen)); /* change Moving to Moved */ buf[buflen-1] = '\0'; -@@ -1794,7 +1689,9 @@ move_read_incoming(MAILSTREAM *stream, CONTEXT_S *context, char *folder, +@@ -1804,7 +1699,9 @@ move_read_incoming(MAILSTREAM *stream, CONTEXT_S *context, char *folder, && ((context_isambig(folder) && folder_is_nick(folder, FOLDERS(context), 0)) || folder_index(folder, context, FI_FOLDER) > 0) @@ -1259,7 +1260,7 @@ index 2c2b07d..185633a 100644 for(; f && *archive; archive++){ char *p; -@@ -2760,3 +2657,295 @@ get_uname(char *mailbox, char *target, int len) +@@ -2770,3 +2667,295 @@ get_uname(char *mailbox, char *target, int len) return(*target ? target : NULL); } @@ -1556,7 +1557,7 @@ index 2c2b07d..185633a 100644 + } +} diff --git a/pith/mailcmd.h b/pith/mailcmd.h -index 7e0d344..4cc744b 100644 +index b816c8d..70d2963 100644 --- a/pith/mailcmd.h +++ b/pith/mailcmd.h @@ -42,6 +42,8 @@ @@ -1583,10 +1584,10 @@ index 7e0d344..4cc744b 100644 long zoom_index(struct pine *, MAILSTREAM *, MSGNO_S *, int); int unzoom_index(struct pine *, MAILSTREAM *, MSGNO_S *); diff --git a/pith/mailindx.c b/pith/mailindx.c -index 87cab26..48ac2ea 100644 +index 2e19a60..01bccf3 100644 --- a/pith/mailindx.c +++ b/pith/mailindx.c -@@ -41,6 +41,7 @@ static char rcsid[] = "$Id: mailindx.c 1266 2009-07-14 18:39:12Z hubert@u.washin +@@ -37,6 +37,7 @@ #include "../pith/send.h" #include "../pith/options.h" #include "../pith/ablookup.h" @@ -1594,7 +1595,7 @@ index 87cab26..48ac2ea 100644 #ifdef _WINDOWS #include "../pico/osdep/mswin.h" #endif -@@ -378,6 +379,13 @@ reset_index_format(void) +@@ -374,6 +375,13 @@ reset_index_format(void) PAT_STATE pstate; PAT_S *pat; int we_set_it = 0; @@ -1608,7 +1609,7 @@ index 87cab26..48ac2ea 100644 if(ps_global->mail_stream && nonempty_patterns(rflags, &pstate)){ for(pat = first_pattern(&pstate); pat; pat = next_pattern(&pstate)){ -@@ -451,14 +459,14 @@ free_hdrtok(HEADER_TOK_S **hdrtok) +@@ -447,14 +455,14 @@ free_hdrtok(HEADER_TOK_S **hdrtok) static INDEX_PARSE_T itokens[] = { {"STATUS", iStatus, FOR_INDEX}, {"MSGNO", iMessNo, FOR_INDEX}, @@ -1625,7 +1626,7 @@ index 87cab26..48ac2ea 100644 {"SHORTSUBJECT", iShortSubject, FOR_INDEX|FOR_REPLY_INTRO|FOR_TEMPLATE}, {"FULLSTATUS", iFStatus, FOR_INDEX}, {"IMAPSTATUS", iIStatus, FOR_INDEX}, -@@ -470,56 +478,60 @@ static INDEX_PARSE_T itokens[] = { +@@ -466,56 +474,60 @@ static INDEX_PARSE_T itokens[] = { {"SUBJECTTEXT", iSubjectText, FOR_INDEX}, {"SUBJKEYTEXT", iSubjKeyText, FOR_INDEX}, {"SUBJKEYINITTEXT", iSubjKeyInitText, FOR_INDEX}, @@ -1730,7 +1731,7 @@ index 87cab26..48ac2ea 100644 {"RECIPS", iRecips, FOR_INDEX|FOR_REPLY_INTRO|FOR_TEMPLATE}, {"NEWS", iNews, FOR_INDEX|FOR_REPLY_INTRO|FOR_TEMPLATE}, {"TOANDNEWS", iToAndNews, FOR_INDEX|FOR_REPLY_INTRO|FOR_TEMPLATE}, -@@ -528,56 +540,71 @@ static INDEX_PARSE_T itokens[] = { +@@ -524,56 +536,71 @@ static INDEX_PARSE_T itokens[] = { {"NEWSANDRECIPS", iNewsAndRecips, FOR_INDEX|FOR_REPLY_INTRO|FOR_TEMPLATE}, {"MSGID", iMsgID, FOR_REPLY_INTRO|FOR_TEMPLATE}, {"CURNEWS", iCurNews, FOR_REPLY_INTRO|FOR_TEMPLATE}, @@ -1841,7 +1842,7 @@ index 87cab26..48ac2ea 100644 {NULL, iNothing, FOR_NOTHING} }; -@@ -2484,6 +2511,24 @@ format_index_index_line(INDEXDATA_S *idata) +@@ -2480,6 +2507,24 @@ format_index_index_line(INDEXDATA_S *idata) from_str(cdesc->ctype, idata, str, sizeof(str), ice); break; @@ -1866,7 +1867,7 @@ index 87cab26..48ac2ea 100644 case iTo: if(((field = ((addr = fetch_to(idata)) ? "To" -@@ -3855,7 +3900,17 @@ try_again: +@@ -3851,7 +3896,17 @@ try_again: if(p > buf){ size_t l; @@ -1885,7 +1886,7 @@ index 87cab26..48ac2ea 100644 l = strlen(buf); l += 100; firsttext = fs_get((l+1) * sizeof(char)); -@@ -5434,10 +5489,10 @@ subj_str(INDEXDATA_S *idata, char *str, size_t strsize, SubjKW kwtype, int openi +@@ -5430,10 +5485,10 @@ subj_str(INDEXDATA_S *idata, char *str, size_t strsize, SubjKW kwtype, int openi { char *subject, *origsubj, *origstr, *rawsubj, *sptr = NULL; char *p, *border, *q = NULL, *free_subj = NULL; @@ -1898,7 +1899,7 @@ index 87cab26..48ac2ea 100644 int save; int do_subj = 0, truncated_tree = 0; PINETHRD_S *thd, *thdorig; -@@ -5493,6 +5548,14 @@ subj_str(INDEXDATA_S *idata, char *str, size_t strsize, SubjKW kwtype, int openi +@@ -5489,6 +5544,14 @@ subj_str(INDEXDATA_S *idata, char *str, size_t strsize, SubjKW kwtype, int openi * to free it at the end of this routine. */ @@ -1913,7 +1914,7 @@ index 87cab26..48ac2ea 100644 if(shorten) shorten_subject(origsubj); -@@ -5933,6 +5996,9 @@ subj_str(INDEXDATA_S *idata, char *str, size_t strsize, SubjKW kwtype, int openi +@@ -5929,6 +5992,9 @@ subj_str(INDEXDATA_S *idata, char *str, size_t strsize, SubjKW kwtype, int openi if(free_subj) fs_give((void **) &free_subj); @@ -1923,7 +1924,7 @@ index 87cab26..48ac2ea 100644 } -@@ -6301,16 +6367,33 @@ from_str(IndexColType ctype, INDEXDATA_S *idata, char *str, size_t strsize, ICE_ +@@ -6297,16 +6363,33 @@ from_str(IndexColType ctype, INDEXDATA_S *idata, char *str, size_t strsize, ICE_ ? "To" : (addr = fetch_cc(idata)) ? "Cc" @@ -1963,7 +1964,7 @@ index 87cab26..48ac2ea 100644 break; } -@@ -6323,7 +6406,15 @@ from_str(IndexColType ctype, INDEXDATA_S *idata, char *str, size_t strsize, ICE_ +@@ -6319,7 +6402,15 @@ from_str(IndexColType ctype, INDEXDATA_S *idata, char *str, size_t strsize, ICE_ break; case iFrom: @@ -1980,7 +1981,7 @@ index 87cab26..48ac2ea 100644 break; case iAddress: -@@ -6621,3 +6712,64 @@ set_print_format(IELEM_S *ielem, int width, int leftadj) +@@ -6617,3 +6708,64 @@ set_print_format(IELEM_S *ielem, int width, int leftadj) } } } @@ -2046,7 +2047,7 @@ index 87cab26..48ac2ea 100644 + return rule_result; +} diff --git a/pith/mailindx.h b/pith/mailindx.h -index a9b25e6..6cb267d 100644 +index d73f0ba..36fcb6a 100644 --- a/pith/mailindx.h +++ b/pith/mailindx.h @@ -30,6 +30,9 @@ extern void (*setup_header_widths)(MAILSTREAM *); @@ -2086,10 +2087,10 @@ index 6c1973f..ffbfeb6 100644 all: libpith.lib diff --git a/pith/pine.hlp b/pith/pine.hlp -index d973a0e..dbe36ca 100644 +index ec91b50..2e22b49 100644 --- a/pith/pine.hlp +++ b/pith/pine.hlp -@@ -4672,6 +4672,7 @@ There are also additional details on +@@ -4950,6 +4950,7 @@ There are also additional details on
  • FEATURE:
  • FEATURE:
  • FEATURE: @@ -2097,7 +2098,7 @@ index d973a0e..dbe36ca 100644
  • FEATURE:
  • FEATURE:
  • FEATURE: -@@ -20004,6 +20005,7 @@ This set of special tokens may be used in the +@@ -20280,6 +20281,7 @@ This set of special tokens may be used in the "" option, in the "" option, in signature files, @@ -2105,7 +2106,7 @@ index d973a0e..dbe36ca 100644 in template files used in "roles", and in the folder name that is the target of a Filter Rule. -@@ -20016,7 +20018,7 @@ and in the target of Filter Rules. +@@ -20292,7 +20294,7 @@ and in the target of Filter Rules.

    @@ -2114,7 +2115,7 @@ index d973a0e..dbe36ca 100644

    SUBJECT
    -@@ -20050,6 +20052,22 @@ email address, never the personal name. +@@ -20326,6 +20328,22 @@ email address, never the personal name. For example, "mailbox@domain". @@ -2137,7 +2138,7 @@ index d973a0e..dbe36ca 100644
    MAILBOX
    This is the same as the "ADDRESS" except that the -@@ -20097,6 +20115,15 @@ are unavailable) of the persons specified in the +@@ -20373,6 +20391,15 @@ are unavailable) of the persons specified in the message's "Cc:" header field.
    @@ -2153,7 +2154,7 @@ index d973a0e..dbe36ca 100644
    RECIPS
    This token represents the personal names (or email addresses if the names -@@ -20105,6 +20132,14 @@ message's "To:" header field and +@@ -20381,6 +20408,14 @@ message's "To:" header field and the message's "Cc:" header field.
    @@ -2168,7 +2169,7 @@ index d973a0e..dbe36ca 100644
    NEWSANDRECIPS
    This token represents the newsgroups from the -@@ -21228,6 +21263,110 @@ This is an end of line marker. +@@ -21504,6 +21539,110 @@ This is an end of line marker.
    @@ -2279,7 +2280,7 @@ index d973a0e..dbe36ca 100644

    Token Available Only for Templates and Signatures

    -@@ -24584,6 +24723,897 @@ character sets Alpine knows about by using the "T" ToCharsets command. +@@ -24860,6 +24999,897 @@ character sets Alpine knows about by using the "T" ToCharsets command. <End of help on this topic> @@ -3177,7 +3178,7 @@ index d973a0e..dbe36ca 100644 ====== h_config_char_set ===== -@@ -28199,6 +29229,76 @@ MESSAGE TEXT screen. +@@ -28475,6 +29505,76 @@ MESSAGE TEXT screen. @@ -3254,7 +3255,7 @@ index d973a0e..dbe36ca 100644