File chappa-fromheader.patch of Package alpine

diff -rc alpine-2.21/alpine/send.c alpine-2.21.fromheader/alpine/send.c
*** alpine-2.21/alpine/send.c	Sun Feb  5 16:02:36 2017
--- alpine-2.21.fromheader/alpine/send.c	Sun Feb  5 16:15:24 2017
***************
*** 913,919 ****
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, KS_NONE},
    {"From    : ",  "From",        h_composer_from,       10, 0, NULL,
     build_address, NULL, NULL, addr_book_compose,    "To AddrBk", NULL, abook_nickname_complete,
!    0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, KS_TOADDRBOOK},
    {"Reply-To: ",  "Reply To",    h_composer_reply_to,   10, 0, NULL,
     build_address, NULL, NULL, addr_book_compose,    "To AddrBk", NULL, abook_nickname_complete,
     0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, KS_TOADDRBOOK},
--- 913,919 ----
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, KS_NONE},
    {"From    : ",  "From",        h_composer_from,       10, 0, NULL,
     build_address, NULL, NULL, addr_book_compose,    "To AddrBk", NULL, abook_nickname_complete,
!    0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, KS_TOADDRBOOK},
    {"Reply-To: ",  "Reply To",    h_composer_reply_to,   10, 0, NULL,
     build_address, NULL, NULL, addr_book_compose,    "To AddrBk", NULL, abook_nickname_complete,
     0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, KS_TOADDRBOOK},
***************
*** 2367,2372 ****
--- 2367,2377 ----
  			he->rich_header = 0;
  		    }
  		}
+ 		if (F_ON(F_ALLOW_CHANGING_FROM, ps_global) &&
+ 		   !ps_global->never_allow_changing_from){
+ 		  he->display_it  = 1;  /* show it */
+ 		  he->rich_header = 0;
+ 		}
  
  		he_from			= he;
  		break;
***************
*** 3104,3110 ****
  	if(outgoing->return_path)
  	  mail_free_address(&outgoing->return_path);
  
! 	outgoing->return_path = rfc822_cpy_adr(outgoing->from);
  
  	/*
  	 * Don't ever believe the sender that is there.
--- 3109,3117 ----
  	if(outgoing->return_path)
  	  mail_free_address(&outgoing->return_path);
  
!         outgoing->return_path = F_ON(F_USE_DOMAIN_NAME,ps_global) 
! 				? rfc822_cpy_adr(generate_from())
! 				: rfc822_cpy_adr(outgoing->from);
  
  	/*
  	 * Don't ever believe the sender that is there.
diff -rc alpine-2.21/pith/conf.c alpine-2.21.fromheader/pith/conf.c
*** alpine-2.21/pith/conf.c	Sun Feb  5 16:02:36 2017
--- alpine-2.21.fromheader/pith/conf.c	Sun Feb  5 16:15:24 2017
***************
*** 2884,2889 ****
--- 2884,2891 ----
  	 F_NO_FCC_ATTACH, h_config_no_fcc_attach, PREF_SEND, 0},
  	{"fcc-on-bounce", "Include Fcc When Bouncing Messages",
  	 F_FCC_ON_BOUNCE, h_config_fcc_on_bounce, PREF_SEND, 0},
+ 	{"return-path-uses-domain-name", NULL,
+ 	 F_USE_DOMAIN_NAME, h_config_use_domain, PREF_SEND, 0},
  	{"mark-fcc-seen", NULL,
  	 F_MARK_FCC_SEEN, h_config_mark_fcc_seen, PREF_SEND, 0},
  	{"fcc-only-without-confirm", "Send to Fcc Only Without Confirming",
diff -rc alpine-2.21/pith/conftype.h alpine-2.21.fromheader/pith/conftype.h
*** alpine-2.21/pith/conftype.h	Sun Feb  5 16:02:36 2017
--- alpine-2.21.fromheader/pith/conftype.h	Sun Feb  5 16:15:24 2017
***************
*** 399,404 ****
--- 399,405 ----
  	F_AUTO_REPLY_TO,
  	F_VERBOSE_POST,
  	F_FCC_ON_BOUNCE,
+ 	F_USE_DOMAIN_NAME,
  	F_SEND_WO_CONFIRM,
  	F_USE_SENDER_NOT_X,
  	F_BLANK_KEYMENU,
diff -rc alpine-2.21/pith/pine.hlp alpine-2.21.fromheader/pith/pine.hlp
*** alpine-2.21/pith/pine.hlp	Sun Feb  5 16:02:36 2017
--- alpine-2.21.fromheader/pith/pine.hlp	Sun Feb  5 16:15:24 2017
***************
*** 28940,28945 ****
--- 28940,28961 ----
  <End of help on this topic>
  </BODY>
  </HTML>
+ ====== h_config_use_domain =====
+ <HTML>
+ <HEAD>
+ <TITLE>FEATURE: <!--#echo var="FEAT_return-path-uses-domain-name"--> </TITLE>
+ </HEAD>
+ <BODY>
+ <H1>FEATURE: <!--#echo var="FEAT_return-path-uses-domain-name"--></H1>
+ 
+ If you enable this configuration option Pine will use your domain name and your
+ username in that domain name to construct your Return-Path header, if not Pine
+ will use the address that you have set in the From: field to construct it.
+ 
+ <P>
+ &lt;End of help on this topic&gt;
+ </BODY>
+ </HTML>
  ====== h_config_use_sender_not_x =====
  <HTML>
  <HEAD>
diff -rc alpine-2.21/pith/send.c alpine-2.21.fromheader/pith/send.c
*** alpine-2.21/pith/send.c	Sun Feb  5 16:02:36 2017
--- alpine-2.21.fromheader/pith/send.c	Sun Feb  5 16:15:24 2017
***************
*** 53,59 ****
  /* name::type::canedit::writehdr::localcopy::rcptto */
  PINEFIELD pf_template[] = {
    {"X-Auth-Received",    FreeText,	0, 1, 1, 0},	/* N_AUTHRCVD */
!   {"From",        Address,	0, 1, 1, 0},
    {"Reply-To",    Address,	0, 1, 1, 0},
    {TONAME,        Address,	1, 1, 1, 1},
    {CCNAME,        Address,	1, 1, 1, 1},
--- 53,59 ----
  /* name::type::canedit::writehdr::localcopy::rcptto */
  PINEFIELD pf_template[] = {
    {"X-Auth-Received",    FreeText,	0, 1, 1, 0},	/* N_AUTHRCVD */
!   {"From",        Address,	1, 1, 1, 0},
    {"Reply-To",    Address,	0, 1, 1, 0},
    {TONAME,        Address,	1, 1, 1, 1},
    {CCNAME,        Address,	1, 1, 1, 1},
***************
*** 1232,1238 ****
  	    *p = *(p+4);
  
          pf->type        = pf_template[i].type;
! 	pf->canedit     = pf_template[i].canedit;
  	pf->rcptto      = pf_template[i].rcptto;
  	pf->writehdr    = pf_template[i].writehdr;
  	pf->localcopy   = pf_template[i].localcopy;
--- 1232,1238 ----
  	    *p = *(p+4);
  
          pf->type        = pf_template[i].type;
! 	pf->canedit     = (i == N_FROM) ? CAN_EDIT(ps_global) : pf_template[i].canedit;
  	pf->rcptto      = pf_template[i].rcptto;
  	pf->writehdr    = pf_template[i].writehdr;
  	pf->localcopy   = pf_template[i].localcopy;
diff -rc alpine-2.21/pith/send.h alpine-2.21.fromheader/pith/send.h
*** alpine-2.21/pith/send.h	Sun Feb  5 16:02:36 2017
--- alpine-2.21.fromheader/pith/send.h	Sun Feb  5 16:15:24 2017
***************
*** 159,164 ****
--- 159,166 ----
      unsigned  text_written:1;
  };
  
+ #define CAN_EDIT(x)	(!((x)->never_allow_changing_from) && \
+ 			F_ON(F_ALLOW_CHANGING_FROM, (x)))
  
  #define TONAME "To"
  #define CCNAME "cc"