* mshcmds.c -- command handlers in msh
*
* $Id$
+ *
+ * This code is Copyright (c) 2002, by the authors of nmh. See the
+ * COPYRIGHT file in the root directory of the nmh distribution for
+ * complete copyright information.
*/
#include <h/mh.h>
#include <h/dropsbr.h>
#include <h/fmt_scan.h>
#include <h/scansbr.h>
-#include <zotnet/tws/tws.h>
-#include <zotnet/mts/mts.h>
+#include <h/tws.h>
+#include <h/mts.h>
#include <errno.h>
#include <setjmp.h>
#include <signal.h>
#include <h/msh.h>
#include <h/picksbr.h>
+#include <h/utils.h>
-extern int errno;
static char delim3[] = "-------"; /* from burst.c */
if (cwd == NULL)
cwd = getcpy (pwd ());
chdir (m_maildir (""));
- cp = path (cp + 1, *cp == '+' ? TFOLDER : TSUBCWF);
+ cp = pluspath (cp);
if (access (m_maildir (cp), F_OK) == NOTOK)
result = OK;
free (cp);
return;
}
else
- folder = fmsh ? path (cp + 1, *cp == '+' ? TFOLDER : TSUBCWF)
+ folder = fmsh ? pluspath (cp)
: cp + 1;
}
else
if (*dp == '\\' || *dp == '"' || *dp == '\n')
i++;
i++;
- if ((ep = malloc ((unsigned) i)) == NULL)
- adios (NULL, "out of memory");
+ ep = mh_xmalloc ((unsigned) i);
for (dp = nfs, fp = ep; *dp; dp++) {
if (*dp == '\n') {
*fp++ = '\\', *fp++ = 'n';
char *cp, *proc = showproc, buf[BUFSIZ];
char *msgs[MAXARGS], *vec[MAXARGS];
- if (!strcasecmp (cmd_name, "next"))
+ if (!mh_strcasecmp (cmd_name, "next"))
mode = 1;
else
- if (!strcasecmp (cmd_name, "prev"))
+ if (!mh_strcasecmp (cmd_name, "prev"))
mode = -1;
while ((cp = *args++)) {
if (*cp == '-')
is_nontext (int msgnum)
{
int result, state;
- char *bp, *cp, *dp;
+ unsigned char *bp, *dp;
+ char *cp;
char buf[BUFSIZ], name[NAMESZ];
FILE *fp;
/*
* Check Content-Type field
*/
- if (!strcasecmp (name, TYPE_FIELD)) {
+ if (!mh_strcasecmp (name, TYPE_FIELD)) {
int passno;
char c;
if (!*bp)
goto invalid;
if (passno > 1) {
- if ((result = (strcasecmp (bp, "plain") != 0)))
+ if ((result = (mh_strcasecmp (bp, "plain") != 0)))
goto out;
*dp = c;
for (dp++; isspace (*dp); dp++)
/* Check the character set */
result = !check_charset (dp, strlen (dp));
} else {
- if (!(result = (strcasecmp (bp, "text") != 0))) {
+ if (!(result = (mh_strcasecmp (bp, "text") != 0))) {
*dp = c;
bp = dp;
passno = 2;
/*
* Check Content-Transfer-Encoding field
*/
- if (!strcasecmp (name, ENCODING_FIELD)) {
+ if (!mh_strcasecmp (name, ENCODING_FIELD)) {
cp = add (buf, NULL);
while (state == FLDPLUS) {
state = m_getfld (state, name, buf, sizeof buf, fp);
for (dp = bp; istoken (*dp); dp++)
continue;
*dp = '\0';
- result = (strcasecmp (bp, "7bit")
- && strcasecmp (bp, "8bit")
- && strcasecmp (bp, "binary"));
+ result = (mh_strcasecmp (bp, "7bit")
+ && mh_strcasecmp (bp, "8bit")
+ && mh_strcasecmp (bp, "binary"));
free (cp);
if (result) {
case FLD:
case FLDEOF:
case FLDPLUS:
- if (!strcasecmp (name, datesw)) {
+ if (!mh_strcasecmp (name, datesw)) {
bp = getcpy (buf);
while (state == FLDPLUS) {
state = m_getfld (state, name, buf, sizeof buf, zp);
break; /* all done! */
gotdate++;
}
- else if (subjsw && !strcasecmp(name, subjsw)) {
+ else if (subjsw && !mh_strcasecmp(name, subjsw)) {
bp = getcpy (buf);
while (state == FLDPLUS) {
state = m_getfld (state, name, buf, sizeof buf, zp);
static char *
sosmash (char *subj, char *s)
{
- register char *cp, *dp, c;
+ register char *cp, *dp;
+ register unsigned char c;
if (s) {
cp = s;
dp = s; /* dst pointer */
- if (!strcasecmp (subj, "subject"))
+ if (!mh_strcasecmp (subj, "subject"))
while ((c = *cp)) {
if (! isspace(c)) {
if(uprf(cp, "re:"))
strncpy (tmpfil, m_scratch ("", invo_name), sizeof(tmpfil));
if ((out = fopen (tmpfil, "w")) == NULL) {
int olderr;
- extern int errno;
char newfil[80];
olderr = errno;