*** Elm113/f1.c Sat Apr 18 15:43:36 1992 --- new/f1.c Mon May 04 23:57:08 1992 *************** *** 1,6 **** --- 1,12 ---- #include "prefs.h" + #ifdef LATTICE #include #include + #endif + #ifdef DICE + #include + #include + #endif Prototype void sendmail(char *, char *); *************** *** 94,100 **** sprintf(String,"sendmail <%s -f %s -R \"%s\"",MailTmp,"MAILER-DAEMON","Mail Delivery Subsystem"); else if (SendmailVersion==SM_OTHER) sprintf(String,"sendmail <%s -f %s",MailTmp,"MAILER-DAEMON"); ! Execute(String,NULL,NULL); } } --- 100,106 ---- sprintf(String,"sendmail <%s -f %s -R \"%s\"",MailTmp,"MAILER-DAEMON","Mail Delivery Subsystem"); else if (SendmailVersion==SM_OTHER) sprintf(String,"sendmail <%s -f %s",MailTmp,"MAILER-DAEMON"); ! Execute(String,(BPTR)NULL,(BPTR)NULL); } } *************** *** 123,129 **** sprintf(String,"sendmail <%s -f %s -R \"%s\"",MailTmp,"MAILER-DAEMON","Mail Delivery Subsystem"); else if (SendmailVersion==SM_OTHER) sprintf(String,"sendmail <%s -f %s",MailTmp,"MAILER-DAEMON"); ! Execute(String,NULL,NULL); } } } --- 129,135 ---- sprintf(String,"sendmail <%s -f %s -R \"%s\"",MailTmp,"MAILER-DAEMON","Mail Delivery Subsystem"); else if (SendmailVersion==SM_OTHER) sprintf(String,"sendmail <%s -f %s",MailTmp,"MAILER-DAEMON"); ! Execute(String,(BPTR)NULL,(BPTR)NULL); } } } *************** *** 145,150 **** --- 151,161 ---- I=*i_th(Number); + #ifndef NOMETAMAIL + if (!getenv("NOMETAMAIL") && I.NotPlain) { + sprintf(TBuffer,"\fExternal pager: %s, message: %d.\n","metamail",Number); + } else + #endif sprintf(TBuffer,"\fExternal pager: %s, message: %d.\n",Pager,Number); outline(); *************** *** 159,164 **** --- 170,199 ---- return; } + #ifndef NOMETAMAIL + if (!getenv("NOMETAMAIL") && I.NotPlain) { + j=I.ArtikelStart; + l=I.ArtikelEnd; + + fseek(in,j,0); + + while(getline(in,Text,&r) && (r<=l)) { + fprintf(out,"%s\n",Text); + } + + CloseHomeBox(in); + fclose(out); + + sprintf(Text,"metamail <* -m Elm %s",MailTmp); + WorkbenchToFront(); + Execute(Text,(BPTR)NULL,(BPTR)NULL); + ElmToFront(); + + HandleReturns(I); + i_th(Number)->Status |= READ; + return; + } + #endif sprintf(Text,"Message %d/%d From %.50s",Number,MaxArticle,I.FromName?I.FromName:I.From); while ((6+strlen(Text))MaxArticle) + return; + + if (!(out=fopen(MailTmp,"w"))) { + status_msg("error: cannot open temporary file - mail not sent",100L); + return; + } + + I=*i_th(Number); + + if((in=OpenHomeBox())==NULL) { + status_msg("error: cannot open folder - mail not sent",100L); + fclose(out); + return; + } + + do_introduction(out,ReplyIntro,&I); + + fseek(in,I.ArtikelStart,0); + while(getline(in,String,&r) && (r<=I.ArtikelEnd)) { + fprintf(out,"%s\n",String); + } + CloseHomeBox(in); + fclose(out); + + putst(" "); + putst(MailTmp); + + strcpy(String, "mailto <* \""); + + if (I.ReplyTo) + quoteQuotedString(I.ReplyTo, String + strlen(String)); + else + quoteQuotedString(I.From, String + strlen(String)); + strcat(String, "\""); + + if (group_reply) { + struct AliasItem *cc_list,*to_list,*l; + BOOL firstTime = TRUE; + + to_list = list_wo_own(I.To); + cc_list = list_wo_own(I.Cc); + + for (l = cc_list; l; l = l->next) { + if (l->alias) { + if (firstTime) { + firstTime = FALSE; + strcat(String, " -c \""); + } + strcat(String, " "); + quoteQuotedString(l->alias, String + strlen(String)); + } + } + + for (l = to_list; l; l = l->next) { + if (l->alias) { + if (firstTime) { + firstTime = FALSE; + strcat(String, " -c \""); + } + strcat(String, " "); + quoteQuotedString(l->alias, String + strlen(String)); + } + } + + if (!firstTime) + strcat(String, "\""); + + FreeAliasList(&cc_list); + FreeAliasList(&to_list); + } + + strcat(String, " -s "); + if (I.Subject==NULL || strlen(I.Subject)<1) { + strcat(String, "\"Re: your mail\""); + } else if (strnicmp(I.Subject,"Re:",3)==0) { + strcat(String, "\""); + quoteQuotedString(I.Subject, String + strlen(String)); + strcat(String, "\""); + } else { + strcat(String, "\"Re: "); + quoteQuotedString(I.Subject, String + strlen(String)); + strcat(String, "\""); + } + + if (I.MessageID != NULL && strlen(I.MessageID) > 0) { + strcat(String, " -r \""); + quoteQuotedString(I.MessageID, String + strlen(String)); + strcat(String, "\""); + } + + WorkbenchToFront(); + Execute(String,(BPTR)NULL,(BPTR)NULL); + ElmToFront(); + + i_th(Number)->Status |= ANSWERED; + } + #endif + + + + void + forwardmail(int Number,int full_header) + { + FILE *in,*out; + char String[MAX_LINELENGTH]; char *subj; struct MailItem I; *************** *** 869,875 **** fclose(out); sprintf(exec,PipeDefault,MailTmp); ! Execute(exec,NULL,NULL); /* Delay(100L); Close(fh); --- 1040,1046 ---- fclose(out); sprintf(exec,PipeDefault,MailTmp); ! Execute(exec,(BPTR)NULL,(BPTR)NULL); /* Delay(100L); Close(fh); *************** *** 902,908 **** str=malloc(strlen(MailEditor)+strlen(name)+2); sprintf(str,"%s %s",MailEditor,name); WorkbenchToFront(); ! Execute(str,NULL,NULL); ElmToFront(); free(str); } --- 1073,1079 ---- str=malloc(strlen(MailEditor)+strlen(name)+2); sprintf(str,"%s %s",MailEditor,name); WorkbenchToFront(); ! Execute(str,(BPTR)NULL,(BPTR)NULL); ElmToFront(); free(str); }