#include <time.h>
int debugsw = 0; /* global */
-int verbsw = 0;
char *altmsg = NULL;
char *annotext = NULL;
char *distfile = NULL;
/*
** static prototypes
*/
-static int sendsbr(char **, int, char *, struct stat *, int);
+static int sendsbr(char **, int, char *, struct stat *);
static void armed_done(int) NORETURN;
static void anno(struct stat *);
static int sendaux(char **, int, char *, struct stat *);
static struct swit switches[] = {
-#define ALIASW 0
- { "alias aliasfile", 0 },
-#define DEBUGSW 1
+#define DEBUGSW 0
{ "debug", -5 },
-#define VERBSW 2
+#define VERBSW 1
{ "verbose", 0 },
-#define NVERBSW 3
- { "noverbose", 0 },
-#define WATCSW 4
- { "watch", 0 },
-#define NWATCSW 5
- { "nowatch", 0 },
-#define VERSIONSW 6
- { "version", 0 },
-#define HELPSW 7
+#define NVERBSW 2
+ { "noverbose", 2 },
+#define VERSIONSW 3
+ { "Version", 0 },
+#define HELPSW 4
{ "help", 0 },
{ NULL, 0 }
};
int in, out;
int n;
char *cp, *maildir = NULL;
- char buf[BUFSIZ], **ap, **argp, **arguments;
+ char buf[BUFSIZ], **argp, **arguments;
char *msgs[MAXARGS], *vec[MAXARGS];
char *files[MAXARGS];
struct msgs *mp;
struct stat st;
struct stat st2;
-
-#ifdef LOCALE
setlocale(LC_ALL, "");
-#endif
invo_name = mhbasename(argv[0]);
/* read user profile/context */
arguments = getarguments(invo_name, argc, argv, 1);
argp = arguments;
- vec[vecp++] = "-library";
- vec[vecp++] = getcpy(toabsdir("+"));
-
while ((cp = *argp++)) {
if (*cp == '-') {
switch (smatch(++cp, switches)) {
print_version(invo_name);
done(1);
+ case DEBUGSW:
+ debugsw++;
+ /* fall */
case VERBSW:
- verbsw++;
- vec[vecp++] = --cp;
- continue;
case NVERBSW:
- verbsw = 0;
vec[vecp++] = --cp;
continue;
-
- case DEBUGSW:
- debugsw++; /* fall */
- case WATCSW:
- case NWATCSW:
- vec[vecp++] = --cp;
- continue;
-
- case ALIASW:
- vec[vecp++] = --cp;
- if (!(cp = *argp++) || *cp == '-') {
- adios(NULL, "missing argument to %s",
- argp[-2]);
- }
- vec[vecp++] = cp;
- continue;
-
}
} else {
if (*cp == '/') {
}
}
- /* check for "Aliasfile:" profile entry */
- if ((cp = context_find("Aliasfile"))) {
- char *dp = NULL;
-
- for (ap=brkstring(dp=getcpy(cp), " ", "\n"); ap && *ap; ap++) {
- vec[vecp++] = "-alias";
- vec[vecp++] = getcpy(etcpath(*ap));
- }
- }
-
if (!msgp && !nfiles) {
msgs[msgp++] = seq_cur;
}
}
for (msgnum = 0; msgnum < nfiles; msgnum++) {
- switch (sendsbr(vec, vecp, files[msgnum], &st, 1)) {
+ switch (sendsbr(vec, vecp, files[msgnum], &st)) {
case DONE:
done(++status);
case NOTOK:
** message sending back-end
*/
static int
-sendsbr(char **vec, int vecp, char *drft, struct stat *st, int rename_drft)
+sendsbr(char **vec, int vecp, char *drft, struct stat *st)
{
int status;
char buffer[BUFSIZ];
char *original_draft;
- char *p; /* string pointer for building file name */
/*
** Save the original name of the draft file. The name of the
switch (setjmp(env)) {
case OK:
status = sendaux(vec, vecp, drft, st) ? NOTOK : OK;
- /* rename the original draft */
- if (rename_drft && status == OK &&
- rename(original_draft, strncpy(buffer,
- m_backup(original_draft), sizeof(buffer)))
- == NOTOK) {
- advise(buffer, "unable to rename %s to", drft);
+ if (status == OK) {
+ /* move original draft to +trash folder */
+ snprintf(buffer, sizeof buffer,
+ "</dev/null refile -file %s +trash",
+ original_draft);
+ if (system(buffer) != 0) {
+ advise(NULL, "unable to trash the draft");
+ }
}
break;
unlink(distfile);
}
- /*
- ** Get rid of any temporary files that we created for attachments.
- ** Also get rid of the renamed composition file that mhbuild
- ** leaves as a turd. It looks confusing, but we use the body
- ** file name to help build the renamed composition file name.
- */
+ /* Get rid of temporary files that we created for attachments. */
if (drft == composition_file_name) {
clean_up_temporary_files();
-
- if (strlen(composition_file_name) >=
- sizeof (composition_file_name) - 6) {
- advise(NULL, "unable to remove original composition file.");
- } else {
- if (!(p = strrchr(composition_file_name, '/'))) {
- p = composition_file_name;
- } else {
- p++;
- }
- strcpy(body_file_name, p);
- *p++ = ',';
- strcpy(p, body_file_name);
- strcat(p, ".orig");
-
- unlink(composition_file_name);
- }
}
return status;
clean_up_temporary_files();
return (NOTOK);
}
+ /* Remove the automatically created backup of mhbuild. */
+ snprintf(buf, sizeof buf, "%s.orig", composition_file_name);
+ if (unlink(buf) == -1) {
+ advise(NULL, "unable to remove original composition file.");
+ }
return (OK);
}