aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/upas/nfs/imap.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2007-06-23 06:12:50 +0000
committerrsc <devnull@localhost>2007-06-23 06:12:50 +0000
commitbb70a84b1ffa914a1043f521940d8293423aab1b (patch)
tree03e4b68af38b6bb61d8519b71aff798f3f838ac0 /src/cmd/upas/nfs/imap.c
parent9ec386fef4927034303b7e477f1570c09fba527f (diff)
downloadplan9port-bb70a84b1ffa914a1043f521940d8293423aab1b.tar.gz
plan9port-bb70a84b1ffa914a1043f521940d8293423aab1b.tar.bz2
plan9port-bb70a84b1ffa914a1043f521940d8293423aab1b.zip
bug fixes:
list message 1. give correct contents for raw, rawheader, rawbody. provide filename and charset in mime attachments. only rename mailboxes named mbox* not mbox*.
Diffstat (limited to 'src/cmd/upas/nfs/imap.c')
-rw-r--r--src/cmd/upas/nfs/imap.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/cmd/upas/nfs/imap.c b/src/cmd/upas/nfs/imap.c
index 1caa97b2..e9d56b93 100644
--- a/src/cmd/upas/nfs/imap.c
+++ b/src/cmd/upas/nfs/imap.c
@@ -1201,6 +1201,14 @@ unexpected(Imap *z, Sx *sx)
}
}
+static int
+alldollars(char *s)
+{
+ for(; *s; s++)
+ if(*s != '$')
+ return 0;
+ return 1;
+}
static void
xlist(Imap *z, Sx *sx)
@@ -1220,7 +1228,7 @@ xlist(Imap *z, Sx *sx)
* Rename any existing mbox by appending a $.
*/
inbox = 0;
- if(strncmp(s, "mbox", 4) == 0){
+ if(strncmp(s, "mbox", 4) == 0 && alldollars(s+4)){
t = emalloc(strlen(s)+2);
strcpy(t, s);
strcat(t, "$");
@@ -1588,6 +1596,7 @@ xmsgbodydata(Msg *msg, Sx *k, Sx *v)
/* now name is something like 1 or 3.2.MIME - walk down parts from root */
part = msg->part[0];
+
while('1' <= name[0] && name[0] <= '9'){
i = strtol(name, &p, 10);
if(*p == '.')
@@ -1603,6 +1612,7 @@ xmsgbodydata(Msg *msg, Sx *k, Sx *v)
name = p;
}
+
if(cistrcmp(name, "") == 0){
free(part->raw);
part->raw = nstring(v);