X("pwd", 0, PWDCMDSW) \
X("ls", 2, LSCMDSW) \
X("attach", 0, ATTACHCMDSW) \
- X("detach [-n]", 2, DETACHCMDSW) \
+ X("detach [-n]", 0, DETACHCMDSW) \
X("alist [-ln] ", 2, ALISTCMDSW) \
#define X(sw, minchars, id) id,
static void writesomecmd(char *buf, int bufsz, char *cmd, char *trailcmd, char **argp);
static FILE* popen_in_dir(const char *dir, const char *cmd, const char *type);
static int system_in_dir(const char *dir, const char *cmd);
-
-
-#ifdef HAVE_LSTAT
static int copyf (char *, char *);
-#endif
int
* Build a command line that causes the user's shell to list the file name
* arguments. This handles and wildcard expansion, tilde expansion, etc.
*/
- writelscmd(buf, sizeof(buf), "-d", argp);
+ writelscmd(buf, sizeof(buf), "-d --", argp);
/*
* Read back the response from the shell, which contains a number of lines
* We feed all the file names to the shell at once, otherwise you can't
* provide a file name with a space in it.
*/
- writelscmd(buf, sizeof(buf), "-d", argp);
+ writelscmd(buf, sizeof(buf), "-d --", argp);
if ((f = popen_in_dir(cwd, buf, "r")) != (FILE *)0) {
while (fgets(shell, sizeof (shell), f) != (char *)0) {
*(strchr(shell, '\n')) = '\0';
static void
writelscmd(char *buf, int bufsz, char *lsoptions, char **argp)
{
- char *lscmd = concat ("ls ", lsoptions, " --", NULL);
+ char *lscmd = concat ("ls ", lsoptions, NULL);
writesomecmd(buf, bufsz, lscmd, "", argp);
free (lscmd);
}
char *cp, *prog, **vec;
struct stat st;
-#ifdef HAVE_LSTAT
int slinked = 0;
-#endif /* HAVE_LSTAT */
/* Was there a previous edit session? */
if (reedit) {
if (atfile) {
unlink (linkpath);
-#ifdef HAVE_LSTAT
if (link (altpath, linkpath) == NOTOK) {
symlink (altpath, linkpath);
slinked = 1;
} else {
slinked = 0;
}
-#else /* not HAVE_LSTAT */
- link (altpath, linkpath);
-#endif /* not HAVE_LSTAT */
}
}
}
reedit++;
-#ifdef HAVE_LSTAT
if (altmsg
&& mp
&& !is_readonly(mp)
&& (unlink (altpath) == NOTOK
|| link (linkpath, altpath) == NOTOK)))
advise (linkpath, "unable to update %s from", altmsg);
-#else /* HAVE_LSTAT */
- if (altmsg
- && mp
- && !is_readonly(mp)
- && stat (linkpath, &st) != NOTOK
- && st.st_nlink == 1
- && (unlink (altpath) == NOTOK
- || link (linkpath, altpath) == NOTOK))
- advise (linkpath, "unable to update %s from", altmsg);
-#endif /* HAVE_LSTAT */
}
/* normally, we remember which editor we used */
}
-#ifdef HAVE_LSTAT
static int
copyf (char *ifile, char *ofile)
{
close (out);
return i;
}
-#endif /* HAVE_LSTAT */
/*
X("saslmaxssf", SASLminc(-10), SASLMXSSFSW) \
X("saslmech", SASLminc(-5), SASLMECHSW) \
X("user", SASLminc(-4), USERSW) \
- X("attach file", 6, SNDATTACHSW) \
+ X("attach fieldname", 6, SNDATTACHSW) \
X("noattach", 0, SNDNOATTACHSW) \
X("attachformat", 7, SNDATTACHFORMAT) \
X("port server-port-name/number", 4, PORTSW) \
vec[vecp++] = getcpy (m_maildir (""));
if ((cp = context_find ("fileproc"))) {
- vec[vecp++] = "-fileproc";
- vec[vecp++] = cp;
+ vec[vecp++] = "-fileproc";
+ vec[vecp++] = cp;
}
if ((cp = context_find ("mhlproc"))) {
- vec[vecp++] = "-mhlproc";
- vec[vecp++] = cp;
+ vec[vecp++] = "-mhlproc";
+ vec[vecp++] = cp;
+ }
+
+ if ((cp = context_find ("credentials"))) {
+ /* post doesn't read context so need to pass credentials. */
+ vec[vecp++] = "-credentials";
+ vec[vecp++] = cp;
}
while ((cp = *argp++)) {