diff -rc alpine-2.10/alpine/reply.c alpine-2.10.unverified/alpine/reply.c *** alpine-2.10/alpine/reply.c 2013-01-11 11:19:33.000000000 -0700 --- alpine-2.10.unverified/alpine/reply.c 2013-01-11 16:20:11.000000000 -0700 *************** *** 1165,1173 **** } else if(!outgoing->newsgroups) outgoing->newsgroups = cpystr(env->newsgroups); - if(!IS_NEWS(ps_global->mail_stream)) - q_status_message(SM_ORDER, 2, 3, - _("Replying to message that MAY or MAY NOT have been posted to newsgroup")); } return(ret); --- 1165,1170 ---- diff -rc alpine-2.10/imap/src/c-client/imap4r1.c alpine-2.10.unverified/imap/src/c-client/imap4r1.c *** alpine-2.10/imap/src/c-client/imap4r1.c 2011-01-09 21:00:20.000000000 -0700 --- alpine-2.10.unverified/imap/src/c-client/imap4r1.c 2013-01-11 16:20:11.000000000 -0700 *************** *** 4527,4532 **** --- 4527,4533 ---- if (*env) { /* need to merge this header into envelope? */ if (!(*env)->newsgroups) { /* need Newsgroups? */ (*env)->newsgroups = nenv->newsgroups; + (*env)->ngpathexists = nenv->ngpathexists; nenv->newsgroups = NIL; } if (!(*env)->followup_to) { /* need Followup-To? */ *************** *** 4581,4586 **** --- 4582,4588 ---- if (oenv) { /* need to merge old envelope? */ (*env)->newsgroups = oenv->newsgroups; oenv->newsgroups = NIL; + (*env)->ngpathexists = oenv->ngpathexists; (*env)->followup_to = oenv->followup_to; oenv->followup_to = NIL; (*env)->references = oenv->references; diff -rc alpine-2.10/imap/src/c-client/mail.h alpine-2.10.unverified/imap/src/c-client/mail.h *** alpine-2.10/imap/src/c-client/mail.h 2013-01-11 15:21:34.000000000 -0700 --- alpine-2.10.unverified/imap/src/c-client/mail.h 2013-01-11 16:20:11.000000000 -0700 *************** *** 685,690 **** --- 685,691 ---- /* Message envelope */ typedef struct mail_envelope { + unsigned int ngpathexists : 1; /* newsgroups may be bogus */ unsigned int incomplete : 1; /* envelope may be incomplete */ unsigned int imapenvonly : 1; /* envelope only has IMAP envelope */ char *remail; /* remail header if any */ diff -rc alpine-2.10/imap/src/c-client/rfc822.c alpine-2.10.unverified/imap/src/c-client/rfc822.c *** alpine-2.10/imap/src/c-client/rfc822.c 2011-01-09 21:00:20.000000000 -0700 --- alpine-2.10.unverified/imap/src/c-client/rfc822.c 2013-01-11 16:20:11.000000000 -0700 *************** *** 128,133 **** --- 128,134 ---- ENVELOPE *env = (*en = mail_newenvelope ()); BODY *body = bdy ? (*bdy = mail_newbody ()) : NIL; long MIMEp = -1; /* flag that MIME semantics are in effect */ + long PathP = NIL; /* flag that a Path: was seen */ parseline_t pl = (parseline_t) mail_parameters (NIL,GET_PARSELINE,NIL); if (!host) host = BADHOST; /* make sure that host is non-null */ while (i && *s != '\n') { /* until end of header */ *************** *** 230,235 **** --- 231,239 ---- *t++ = '\0'; } break; + case 'P': /* possible Path: */ + if (!strcmp (tmp+1,"ATH")) env->ngpathexists = T; + break; case 'R': /* possible Reply-To: */ if (!strcmp (tmp+1,"EPLY-TO")) rfc822_parse_adrlist (&env->reply_to,d,host); diff -rc alpine-2.10/pith/mailview.c alpine-2.10.unverified/pith/mailview.c *** alpine-2.10/pith/mailview.c 2013-01-11 11:26:43.000000000 -0700 --- alpine-2.10.unverified/pith/mailview.c 2013-01-11 16:20:11.000000000 -0700 *************** *** 2379,2386 **** format_addr_string(s, n, sect, "Return-Path: ", e->return_path, flags, oacs, pc); ! if((which & FE_NEWSGROUPS) && e->newsgroups) format_newsgroup_string("Newsgroups: ", e->newsgroups, flags, pc); if((which & FE_FOLLOWUPTO) && e->followup_to) format_newsgroup_string("Followup-To: ", e->followup_to, flags, pc); --- 2379,2399 ---- format_addr_string(s, n, sect, "Return-Path: ", e->return_path, flags, oacs, pc); ! if((which & FE_NEWSGROUPS) && e->newsgroups){ ! int bogus = NIL; format_newsgroup_string("Newsgroups: ", e->newsgroups, flags, pc); + if (!e->ngpathexists && e->message_id && + strncmp (e->message_id,"message_id,"message_id,"message_id,"message_id,"message_id,"followup_to) format_newsgroup_string("Followup-To: ", e->followup_to, flags, pc);