|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T r
Length: 3046 (0xbe6)
Types: TextFile
Names: »remail.c«
└─⟦9ae75bfbd⟧ Bits:30007242 EUUGD3: Starter Kit
└─⟦4fd8323b9⟧ »EurOpenD3/mail/elm2.3.tar.Z«
└─⟦698c4f91f⟧
└─⟦this⟧ »src/remail.c«
static char rcsid[] = "@(#)$Id: remail.c,v 4.1 90/04/28 22:43:50 syd Exp $";
/*******************************************************************************
* The Elm Mail System - $Revision: 4.1 $ $State: Exp $
*
* Copyright (c) 1986, 1987 Dave Taylor
* Copyright (c) 1988, 1989, 1990 USENET Community Trust
*******************************************************************************
* Bug reports, patches, comments, suggestions should be sent to:
*
* Syd Weinstein, Elm Coordinator
* elm@DSI.COM dsinc!elm
*
*******************************************************************************
* $Log: remail.c,v $
* Revision 4.1 90/04/28 22:43:50 syd
* checkin of Elm 2.3 as of Release PL0
*
*
******************************************************************************/
/** For those cases when you want to have a message continue along
to another person in such a way as they end up receiving it with
the return address the person YOU received the mail from (does
this comment make any sense yet??)...
**/
#include "headers.h"
#include <errno.h>
extern int errno;
char *error_name(), *error_description();
int
remail()
{
/** remail a message... returns TRUE if new foot needed ... **/
FILE *mailfd;
char entered[VERY_LONG_STRING], expanded[VERY_LONG_STRING];
char *filename, buffer[VERY_LONG_STRING], ch;
extern char *tempnam();
entered[0] = '\0';
get_to(entered, expanded);
if (strlen(entered) == 0)
return(0);
display_to(expanded);
if((filename=tempnam(temp_dir, "snd.")) == NULL) {
dprint(1, (debugfile, "couldn't make temp file nam! (remail)\n"));
sprintf(buffer, "Sorry - couldn't make file temp file name.");
set_error(buffer);
return(1);
}
if ((mailfd = fopen(filename, "w")) == NULL) {
dprint(1, (debugfile, "couldn't open temp file %s! (remail)\n",
filename));
dprint(1, (debugfile, "** %s - %s **\n", error_name(errno),
error_description(errno)));
sprintf(buffer, "Sorry - couldn't open file %s for writing (%s).",
error_name(errno));
set_error(buffer);
return(1);
}
/** now let's copy the message into the newly opened
buffer... **/
chown (filename, userid, groupid);
copy_message("", mailfd, FALSE, TRUE, FALSE, TRUE);
fclose(mailfd);
/** Got the messsage, now let's ensure the person really wants to
remail it... **/
ClearLine(LINES-1);
ClearLine(LINES);
PutLine1(LINES-1,0,
"Are you sure you want to remail this message (y/n)? y%c",
BACKSPACE);
fflush(stdin);
fflush(stdout);
ch = ReadCh();
if (tolower(ch) == 'n') { /* another day, another No... */
Write_to_screen("No.", 0);
set_error("Bounce of message cancelled.");
(void) unlink(filename);
return(1);
}
Write_to_screen("Yes.", 0);
sprintf(buffer,"( (%s %s ; %s %s) & ) < %s",
mailer, strip_parens(strip_commas(expanded)),
remove_cmd, filename, filename);
PutLine0(LINES,0,"Resending mail...");
system_call(buffer, SH, FALSE, FALSE);
set_error("Mail resent.");
return(1);
}