projects
/
mmh
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
9b4431b
)
Improved the patch for send(1) to handle absolute path name arguments.
author
markus schnalke
<meillo@marmaro.de>
Wed, 8 Feb 2012 14:31:41 +0000
(15:31 +0100)
committer
markus schnalke
<meillo@marmaro.de>
Wed, 8 Feb 2012 14:31:41 +0000
(15:31 +0100)
See changeset
3df5ab3c116e6d4a2fb4bb5cc9dfc5f781825815
uip/send.c
patch
|
blob
|
history
diff --git
a/uip/send.c
b/uip/send.c
index
bdcd83b
..
7a8b8e6
100644
(file)
--- a/
uip/send.c
+++ b/
uip/send.c
@@
-62,12
+62,12
@@
extern char *distfile;
int
main(int argc, char **argv)
{
int
main(int argc, char **argv)
{
- int msgp = 0, msgp2 = 0, distsw = 0, vecp = 1;
+ int msgp = 0, nfiles = 0, distsw = 0, vecp = 1;
int msgnum, status;
char *cp, *maildir = NULL;
char buf[BUFSIZ], **ap, **argp, **arguments;
char *msgs[MAXARGS], *vec[MAXARGS];
int msgnum, status;
char *cp, *maildir = NULL;
char buf[BUFSIZ], **ap, **argp, **arguments;
char *msgs[MAXARGS], *vec[MAXARGS];
- char *msgs2[MAXARGS];
+ char *files[MAXARGS];
struct msgs *mp;
struct stat st;
struct msgs *mp;
struct stat st;
@@
-148,7
+148,11
@@
main(int argc, char **argv)
}
} else {
}
} else {
- msgs[msgp++] = cp;
+ if (*cp == '/') {
+ files[nfiles++] = cp;
+ } else {
+ msgs[msgp++] = cp;
+ }
}
}
}
}
@@
-165,7
+169,7
@@
main(int argc, char **argv)
}
}
}
}
- if (!msgp)
+ if (!msgp && !nfiles)
msgs[msgp++] = seq_cur;
maildir = toabsdir(draftfolder);
msgs[msgp++] = seq_cur;
maildir = toabsdir(draftfolder);
@@
-181,13
+185,7
@@
main(int argc, char **argv)
adios(NULL, "no messages in draft folder %s", draftfolder);
/* parse all the message ranges/sequences and set SELECTED */
adios(NULL, "no messages in draft folder %s", draftfolder);
/* parse all the message ranges/sequences and set SELECTED */
- msgp2 = 0;
for (msgnum = 0; msgnum < msgp; msgnum++) {
for (msgnum = 0; msgnum < msgp; msgnum++) {
- if (*msgs[msgnum] == '/') {
- /* absolute path */
- msgs2[msgp2++] = msgs[msgnum];
- continue;
- }
if (!m_convert(mp, msgs[msgnum])) {
done(1);
}
if (!m_convert(mp, msgs[msgnum])) {
done(1);
}
@@
-196,7
+194,7
@@
main(int argc, char **argv)
for (msgp = 0, msgnum = mp->lowsel; msgnum <= mp->hghsel; msgnum++) {
if (is_selected(mp, msgnum)) {
for (msgp = 0, msgnum = mp->lowsel; msgnum <= mp->hghsel; msgnum++) {
if (is_selected(mp, msgnum)) {
- msgs2[msgp2++] = getcpy(m_name(msgnum));
+ files[nfiles++] = getcpy(m_name(msgnum));
unset_exists(mp, msgnum);
}
}
unset_exists(mp, msgnum);
}
}
@@
-208,9
+206,9
@@
main(int argc, char **argv)
if ((cp = context_find("signature")) && *cp)
m_putenv("SIGNATURE", cp);
if ((cp = context_find("signature")) && *cp)
m_putenv("SIGNATURE", cp);
- for (msgnum = 0; msgnum < msgp2; msgnum++)
- if (stat(msgs2[msgnum], &st) == NOTOK)
- adios(msgs2[msgnum], "unable to stat draft file");
+ for (msgnum = 0; msgnum < nfiles; msgnum++)
+ if (stat(files[msgnum], &st) == NOTOK)
+ adios(files[msgnum], "unable to stat draft file");
if ((annotext = getenv("mhannotate")) == NULL || *annotext == 0)
annotext = NULL;
if ((annotext = getenv("mhannotate")) == NULL || *annotext == 0)
annotext = NULL;
@@
-261,8
+259,8
@@
main(int argc, char **argv)
vec[0] = mhbasename(postproc);
closefds(3);
vec[0] = mhbasename(postproc);
closefds(3);
- for (msgnum = 0; msgnum < msgp2; msgnum++) {
- switch (sendsbr(vec, vecp, msgs2[msgnum], &st, 1)) {
+ for (msgnum = 0; msgnum < nfiles; msgnum++) {
+ switch (sendsbr(vec, vecp, files[msgnum], &st, 1)) {
case DONE:
done(++status);
case NOTOK:
case DONE:
done(++status);
case NOTOK: