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 */
/*
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++)) {