char *annotext = NULL;
char *distfile = NULL;
-static int armed = 0;
static jmp_buf env;
static char body_file_name[MAXPATHLEN + 1]; /* name of temporary file for body content */
* external prototypes
*/
int sendsbr (char **, int, char *, struct stat *, int, char *, int);
-int done (int);
char *getusername (void);
/*
* static prototypes
*/
+static void armed_done (int) NORETURN;
static void alert (char *, int);
static int tmp_fd (void);
static void anno (int, struct stat *);
}
}
- armed++;
+ done=armed_done;
switch (setjmp (env)) {
case OK:
/*
break;
}
- armed = 0;
+ done=exit;
if (distfile)
unlink (distfile);
} else {
/* Suppress Content-Id, insert simple Content-Disposition. */
(void) fprintf (composition_file,
- "#%s <>{attachment}",
- content_type);
+ "#%s; name=\"%s\" <>{attachment}",
+ content_type,
+ ((p = strrchr(file_name, '/')) == (char *)0) ? file_name : p + 1);
}
break;
/* Suppress Content-Id, insert Content-Disposition with
modification date. */
(void) fprintf (composition_file,
- "#%s <>{attachment; modification-date=\"%s\"}",
+ "#%s; name=\"%s\" <>{attachment; modification-date=\"%s\"}",
content_type,
+ ((p = strrchr(file_name, '/')) == (char *)0) ? file_name : p + 1,
dtime (&st.st_mtime, 0));
}
}
if (!(mp = folder_read (folder))) {
if (debugsw)
- admonish (NULL, "unable to read folder %s");
+ admonish (NULL, "unable to read folder %s", folder);
return;
}
}
-int
-done (int status)
+static void
+armed_done (int status)
{
- if (armed)
- longjmp (env, status ? status : NOTOK);
+ longjmp (env, status ? status : NOTOK);
exit (status);
- return 1; /* dead code to satisfy the compiler */
}