-
-/*
- * whatnowproc.c -- exec the "whatnowproc"
+/* whatnowproc.c -- exec the "whatnowproc"
*
* This code is Copyright (c) 2002, by the authors of nmh. See the
* COPYRIGHT file in the root directory of the nmh distribution for
int
what_now (char *ed, int nedit, int use, char *file, char *altmsg, int dist,
- struct msgs *mp, char *text, int inplace, char *cwd)
+ struct msgs *mp, char *text, int inplace, char *cwd, int atfile)
{
int found, k, msgnum, vecp;
int len, buflen;
- register char *bp;
+ char *bp;
char buffer[BUFSIZ], *vec[MAXARGS];
vecp = 0;
vec[vecp++] = r1bindex (whatnowproc, '/');
vec[vecp] = NULL;
- m_putenv ("mhdraft", file);
+ setenv("mhdraft", file, 1);
if (mp)
- m_putenv ("mhfolder", mp->foldpath);
+ setenv("mhfolder", mp->foldpath, 1);
else
- unputenv ("mhfolder");
+ unsetenv("mhfolder");
if (altmsg) {
if (mp == NULL || *altmsg == '/' || cwd == NULL)
- m_putenv ("mhaltmsg", altmsg);
+ setenv("mhaltmsg", altmsg, 1);
else {
snprintf (buffer, sizeof(buffer), "%s/%s", mp->foldpath, altmsg);
- m_putenv ("mhaltmsg", buffer);
+ setenv("mhaltmsg", buffer, 1);
}
} else {
- unputenv ("mhaltmsg");
+ unsetenv("mhaltmsg");
}
if ((bp = getenv ("mhaltmsg")))/* XXX */
- m_putenv ("editalt", bp);
+ setenv("editalt", bp, 1);
snprintf (buffer, sizeof(buffer), "%d", dist);
- m_putenv ("mhdist", buffer);
+ setenv("mhdist", buffer, 1);
if (nedit) {
- unputenv ("mheditor");
+ unsetenv("mheditor");
} else {
- m_putenv ("mheditor", ed ? ed : (ed = context_find ("editor"))
- ? ed : defaulteditor);
+ if (!ed)
+ ed = get_default_editor();
+ setenv("mheditor", ed, 1);
}
snprintf (buffer, sizeof(buffer), "%d", use);
- m_putenv ("mhuse", buffer);
+ setenv("mhuse", buffer, 1);
+ snprintf (buffer, sizeof(buffer), "%d", atfile);
+ setenv("mhatfile", buffer, 1);
- unputenv ("mhmessages");
- unputenv ("mhannotate");
- unputenv ("mhinplace");
+ unsetenv("mhmessages");
+ unsetenv("mhannotate");
+ unsetenv("mhinplace");
if (text && mp && !is_readonly(mp)) {
found = 0;
}
}
if (found) {
- m_putenv ("mhmessages", buffer);
- m_putenv ("mhannotate", text);
+ setenv("mhmessages", buffer, 1);
+ setenv("mhannotate", text, 1);
snprintf (buffer, sizeof(buffer), "%d", inplace);
- m_putenv ("mhinplace", buffer);
+ setenv("mhinplace", buffer, 1);
}
}
context_save (); /* save the context file */
fflush (stdout);
- if (cwd)
- chdir (cwd);
+ if (cwd) {
+ if (chdir (cwd) < 0) {
+ advise (cwd, "chdir");
+ }
+ }
/*
* If the "whatnowproc" is the nmh command "whatnow",